在线咨询 400-826-1668
回到顶部
ARTICLE DETAIL

资讯详情

深耕国风建站与运营引流的一线实战洞察。

别再手动盯盘了:用天勤TqSdk 5分钟搞定期货实时行情数据获取

别再手动盯盘了:用天勤TqSdk 5分钟搞定期货实时行情数据获取 别再手动盯盘了用天勤TqSdk 5分钟搞定期货实时行情数据获取【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python期货实时行情数据获取听起来是量化机构的专属活其实一个开源库就能让你在几分钟内做到。这篇文章不按介绍—安装—FAQ的老套路写而是陪你走一遍真实场景从错过行情的痛点出发用天勤量化TqSdk亲手做出一个会提醒你的行情监控程序再顺手把它升级成能自动交易的最小策略。文中所有代码都取自项目自带的官方示例你只需要一个 Python 环境和 5 分钟耐心。一、那个下午他错过了螺纹钢的一波急涨朋友老周做螺纹钢现货贸易平时看盘靠手机行情软件。那天午休起来螺纹钢主力合约已经拉了一根大阳线他愣是没赶上高位出货的窗口。他跟我抱怨盯盘不是技术问题是时间问题——人不能一直盯着屏幕而行情不会等人。他试过两个替代方案都失败了写爬虫抓网站数据页面改版就失效延迟高还随时可能被反爬封 IP。买商业行情接口稳定是稳定一年大几千块个人玩玩实在肉疼。他真正需要的是一个能替人盯盘的程序价格突破阈值就报警数据稳定不折腾还最好免费。顺着这个需求他找到了天勤量化TqSdk。如果你也有同样的困扰下面这套流程可以直接照抄。二、先认识一下TqSdk 凭什么顺便解决这个难题天勤量化TqSdk 是信易科技开源的 Python 量化交易开发包覆盖了历史数据 → 实时行情 → 策略回测 → 模拟交易 → 实盘交易的完整链路。它处理盯盘这件事靠的是三个关键设计设计作用直观感受内存数据库行情与交易数据全在内存中存取无访问延迟不用自己建库引用对象get_quote()返回一个自动更新的行情对象拿到手数据自己长事件循环wait_update()统一驱动数据刷新一套结构走遍所有功能它的底层架构也很清晰行情网关负责推送实时行情与历史数据交易中继网关负责对接期货公司交易系统两者以 Diff 协议统一对外服务。用户侧你几乎感知不到这些只需记住四句口诀创建 TqApi 实例 → 用get_quote()等函数拿数据引用 → 在循环里wait_update()等待数据包 → 从引用对象读取最新值。这也正是项目doc/quickstart.rst十分钟快速入门里反复强调的核心结构。下面这句过渡很关键理解它后面所有功能都不再是新东西。三、5分钟动手做一个螺纹钢价格提醒器光说不练假把式。这一节我们用三步把盯盘这个需求真正跑通。第 1 步安装 TqSdk 并注册快期账户TqSdk 要求Python 3.9 及以上Windows 7/macOS/Linux 均可。安装就一条命令pip install tqsdk -U下载慢的话换清华源一行搞定pip install tqsdk -U -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-hostpypi.tuna.tsinghua.edu.cn装完后去天勤官网注册一个快期账户手机号、用户名或邮箱均可登录。它是连接行情服务器的通行证注册免费属于所有 TqSdk 程序的前置条件。第 2 步跑通最小行情示例安装好后先不要急着写大程序而是把官方教程里最小示例对应tqsdk/demo/tutorial/t10.py跑通。代码不到十行from tqsdk import TqApi, TqAuth # 创建 API 实例传入自己的快期账户 api TqApi(authTqAuth(快期账户, 账户密码)) # 订阅上期所镍 2607 合约行情quote 会随行情自动更新 quote api.get_quote(SHFE.ni2607) while True: api.wait_update() # 阻塞等待行情数据包 print(quote.datetime, quote.last_price) # 打印最新行情时间与最新价如果它能稳定打印出时间和价格说明安装、账户、行情链路全部打通你可以继续往下走了。第 3 步升级成会提醒的监控程序行情对象quote里其实塞满了料常用字段长这样字段含义last_price最新价datetime最新行情时间volume当日成交量open_interest持仓量bid_price1/ask_price1买一价 / 卖一价有了这些字段提醒器的逻辑就很简单最新价突破上轨或跌破下轨就报警。from tqsdk import TqApi, TqAuth api TqApi(authTqAuth(快期账户, 账户密码)) quote api.get_quote(SHFE.rb2610) # 订阅螺纹钢 2610 合约 upper, lower 3500, 3300 # 设定提醒的价格区间 while True: api.wait_update() price quote.last_price if price upper: print(f【提醒】价格 {price} 突破上轨 {upper}注意追高风险) upper price # 上轨跟随上移避免重复报警 elif price lower: print(f【提醒】价格 {price} 跌破下轨 {lower}留意支撑位) lower price把这段脚本挂在一台常开的电脑上你就拥有了一个 7×24 小时的行情哨兵。从人盯盘变成程序盯盘体验的差别是质变的——这也正是get_quote()引用对象 wait_update()事件循环这套设计带来的红利你只管设规则数据自己会送上门。四、从看行情到会交易进阶四招提醒器只是起点。顺着同一套结构你可以一路滑向自动化。下面四招由浅入深全部基于官方文档与示例tqsdk/demo/tutorial/下都有完整版本。招式一多合约同时监控做跨品种或跨月价差需要同时盯多个合约。用get_quote_list()一次订阅一批symbols [SHFE.rb2610, SHFE.rb2701, DCE.i2609] quotes api.get_quote_list(symbols) # 一次订阅多个合约 while True: api.wait_update() for symbol, quote in zip(symbols, quotes): print(symbol, quote.last_price)招式二K线 均线信号K 线序列是 pandas 的 DataFrame天然适合算指标。比如 60 秒 K 线突破 15 根均线就提示开仓信号klines api.get_kline_serial(SHFE.rb2610, 60) # 60 秒 K 线 while True: api.wait_update() if api.is_changing(klines): # 仅在 K 线更新时才处理 ma sum(klines.close.iloc[-15:]) / 15 # 最近 15 根收盘价均值 if klines.close.iloc[-1] ma: print(最新价上穿 MA出现买入信号)注意这里多了一个api.is_changing()用来判断到底是哪个对象在本次更新中变化了避免每次循环都重复触发逻辑。招式三让 TargetPosTask 自动调仓手动下单撤单很繁琐TqSdk 提供了TargetPosTask你只需声明我要持有几手它自动帮你把单子拆好、发出去。经典价差策略只需十几行from tqsdk import TqApi, TqAuth, TargetPosTask api TqApi(authTqAuth(快期账户, 账户密码)) q_near api.get_quote(SHFE.rb2610) q_far api.get_quote(SHFE.rb2701) t_near TargetPosTask(api, SHFE.rb2610) # 近月调仓工具 t_far TargetPosTask(api, SHFE.rb2701) # 远月调仓工具 while True: api.wait_update() spread q_near.last_price - q_far.last_price if spread 250: t_near.set_target_volume(-1) # 空近月 1 手 t_far.set_target_volume(1) # 多远月 1 手 elif spread 200: t_near.set_target_volume(0) # 价差回归全部清仓 t_far.set_target_volume(0)招式四回测、模拟、实盘一条龙程序写好先别直接上真金白银。TqSdk 让验证成本降到最低策略回测创建 API 时传入TqBacktest就能在指定历史区间内跑完整策略from datetime import date from tqsdk import TqApi, TqAuth, TqBacktest api TqApi(backtestTqBacktest(start_dtdate(2018, 5, 1), end_dtdate(2018, 10, 1)), authTqAuth(快期账户, 账户密码))模拟交易不传账户时 TqSdk 会自动创建临时模拟账号TqSim想长期保存资金与持仓可用TqKq()登录快期模拟账户模拟结果在快期客户端里互通可见。实盘交易传入TqAccount(期货公司, 账号, 密码)即可连接实盘账户这是专业版功能支持市场绝大多数期货公司以及 CTP 直连等多种柜台。五、写给新手的避坑清单按上面流程走大概率一路绿灯。但有几个坑提前知道能省半天时间合约代码有格式一律是交易所.合约比如SHFE.rb2610上期所螺纹钢、DCE.i2609大商所铁矿石、CFFEX.IF2406中金所沪深300。写错一个字母数据就静默拿不到。循环必须由wait_update()驱动千万别自己写time.sleep()空转行情推送全靠这个阻塞函数。下单后别立刻退出程序insert_order()只是把指令放入发送队列真正的报单发生在下一次wait_update()时指令没发出去就退出单子就丢了。先用模拟盘练手回测通过只是第一步上模拟盘跑几天确认报单、持仓、风控都符合预期再考虑实盘。想看更多示例项目源码tqsdk/demo/tutorial/下有从 t10 到 t96 的系列教程代码每一个对应一个知识点边跑边改是最好的学习方式。六、下一步就等你这一行代码回头看老周的问题其实不复杂他需要的不是更努力地盯盘而是更聪明的工具。今天你已经拿到了完整的路径——装好 TqSdk、跑通最小示例、把提醒器改造成自己的版本然后再决定要不要滑向多合约、信号、自动交易那一端。每一步都有官方示例兜底成本几乎为零。我的建议很简单别收藏这篇文章就完了。现在打开终端敲下pip install tqsdk -U把上文第 2 步的代码跑起来看到第一行时间 价格打印出来的瞬间你的量化之旅就正式开始了。若中途卡壳项目文档doc/quickstart.rst和示例目录都在等着你用户交流群 611806823 里也有一群同路人。盯盘这件小事从今天起交给程序就好。【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表