天勤量化 TqSdk 新手实战:一条 pip 命令打通期货实时行情与自动交易 天勤量化 TqSdk 新手实战一条 pip 命令打通期货实时行情与自动交易【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python做期货量化交易最大的门槛往往不是策略本身而是第一步如何稳定、免费地拿到实时行情。天勤量化 TqSdk 是信易科技开源的 Python 量化开发包用几行代码就能完成行情获取、历史数据下载、策略回测与模拟交易让新手也能快速上手期货自动交易开发。从一次手动盯盘翻车说起先讲一个很多期货新手都经历过的场景白天要上班只能趁着午休偷偷刷一眼行情某天螺纹钢突然拉涨等你放下手头的活儿打开软件点位早就冲出去了你只能看着成交回报干瞪眼。也有人尝试自己写行情脚本用 requests 去抓网页数据延迟高、字段乱还时不时被反爬限制想接交易所的原始行情吧又要跨越各种门槛。就算数据搞定了下单又得对接另一套交易接口。折腾一个星期策略代码一行还没写。如果有一个工具能把行情获取、数据存储、回测、模拟、实盘这些环节一次性打包好该多省心这正是天勤量化 TqSdk 的设计初衷。下面我们就从零开始一步一步把它跑起来。天勤量化 TqSdk 是什么一个包装下行情、回测与交易TqSdk 是一个面向期货量化交易的 Python 开发包定位就是开箱即用的完整解决方案。它的核心能力可以概括成四件事实时行情覆盖上期所SHFE、大商所DCE、郑商所CZCE、中金所CFFEX、能源中心INE、广期所GFEX等主流交易所期货、期权、主连合约都能订阅历史数据支持按任意时间段拉取 K 线和 Tick 数据回测、复盘都够用策略回测传入时间区间把策略放到历史行情里跑一遍直接看到资金曲线和各项统计模拟与实盘交易默认自带本地模拟账户练熟了再接入真实账户。对新手来说最友好的地方在于数据不是查一下拿一下而是常驻内存的引用对象。你订阅一个合约后它就像一个贴在墙上的大屏幕行情一变屏幕内容就自动刷新程序里随时读到的都是最新值几乎感知不到取数延迟。三步完成 TqSdk 安装与环境准备第一步确认 Python 环境TqSdk 要求 Python 3.9 及以上版本Windows 7、macOS、Linux 都支持。打开命令行敲一句python --version就能确认。第二步安装开发包安装只需要一条命令pip install tqsdk -U如果下载速度不理想换成国内镜像源会快很多pip install tqsdk -U -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-hostpypi.tuna.tsinghua.edu.cn第三步注册快期账户TqSdk 连接行情服务器需要一组登录凭据也就是快期账户。用手机号在天勤量化官网注册一个即可之后在代码里用账户名和密码登录。注册是免费的模拟盘和行情功能都不花钱。跑通第一段代码连接并订阅期货实时行情环境就绪后我们先写一个最小程序连上服务器订阅螺纹钢 2610 合约然后不断打印它的最新价。from tqsdk import TqApi, TqAuth # 用快期账户登录建立与行情服务器的连接 api TqApi(authTqAuth(你的快期账号, 你的密码)) # 订阅螺纹钢 2610 合约拿到一个行情引用对象 quote api.get_quote(SHFE.rb2610) # 行情是持续更新的程序会一直等新数据 → 打印 while True: api.wait_update() print(quote.datetime, 最新价:, quote.last_price)这段代码里有两个关键点值得细讲api.get_quote(SHFE.rb2610)不会立刻返回一坨数据而是返回一个行情引用对象。之后你随时访问quote.last_price读到的都是这个合约的最新值api.wait_update()是一个阻塞调用可以理解成快递员送货上门。程序执行到这一行就暂停直到服务器发来新的数据包才继续往下走。没有它行情对象永远等不到刷新。跑起来之后你会看到屏幕上每来一条新数据就打印一行时间和价格这就是 TqSdk 最基础的实时行情获取闭环。行情对象里有哪些常用字段get_quote()返回的对象里新手最常打交道的字段是这几个字段含义last_price最新成交价datetime最新行情时间volume当日成交量open_interest持仓量bid_price1买一价ask_price1卖一价从盯一个到盯一群批量订阅多个合约单合约看明白了接下来很自然的诉求是同时盯好几个合约。比如螺纹钢的近月和远月、铁矿主力一起监控。这时候用get_quote_list()就够了from tqsdk import TqApi, TqAuth api TqApi(authTqAuth(你的快期账号, 你的密码)) watch_list [SHFE.rb2610, DCE.i2609, CFFEX.IF2606] quotes api.get_quote_list(watch_list) while True: api.wait_update() for symbol, q in zip(watch_list, quotes): print(f{symbol} 最新价{q.last_price} 成交量{q.volume})一次订阅、一次循环多个合约的行情就能同时出现在屏幕上。这种写法也是后面做多合约价差策略的基础。实战一写一个期货价格越界报警助手学会了订阅行情我们马上做一个有实际用途的小项目价格报警助手。场景是这样的——你没法一直盯着屏幕但想知道螺纹钢什么时候突破某个价位那么让程序替你盯着就好from tqsdk import TqApi, TqAuth api TqApi(authTqAuth(你的快期账号, 你的密码)) quote api.get_quote(SHFE.rb2610) UPPER 3200 # 自定义价格上限 LOWER 3100 # 自定义价格下限 alarmed False # 防止同一个触发点反复报警 while True: api.wait_update() price quote.last_price if price UPPER and not alarmed: print(价格突破上限 {}当前 {}注意风控.format(UPPER, price)) alarmed True elif price LOWER and not alarmed: print(价格跌破下限 {}当前 {}注意风控.format(LOWER, price)) alarmed True elif LOWER price UPPER: alarmed False # 价格回到区间内复位报警状态运行之后程序就一直挂在后台值班。真实项目中把print换成钉钉、企业微信机器人或者短信推送就是一个完整的期货自动盯盘报警系统。实战二从看到做用 TargetPosTask 实现自动调仓报警只是看很多朋友下一步想的是做——让程序自动下单。这里先吃一颗定心丸创建 TqApi 时如果不指定真实账户TqSdk 会自动挂上一个本地模拟账户 TqSim下面的代码在它上面运行不会产生任何真实资金变动可以放心大胆地练。新手自己写判断信号 → 下单 → 撤单 → 处理部分成交这一套逻辑既繁琐又容易出错。TqSdk 提供了一个省心的工具TargetPosTask你只需要告诉它这个合约我最终想持有几手它会自己拆解成一串指令把仓位一点点调到目标值。下面是一个最简单的均线自动交易策略最新价高于短期均线就持有 2 手多单低于就翻成 2 手空单from tqsdk import TqApi, TqAuth, TargetPosTask api TqApi(authTqAuth(你的快期账号, 你的密码)) # 拉取螺纹钢 5 分钟线用于计算均线 klines api.get_kline_serial(SHFE.rb2610, 300, 30) # 创建目标持仓任务由它负责调仓到目标手数 task TargetPosTask(api, SHFE.rb2610) while True: api.wait_update() if api.is_changing(klines): # 只在K线更新时才计算 price klines.close.iloc[-1] ma klines.close.iloc[-5:].mean() print(最新价: {:.0f}, 5周期均线: {:.2f}.format(price, ma)) if price ma: task.set_target_volume(2) # 目标持有多头 2 手 else: task.set_target_volume(-2) # 目标持有空头 2 手注意set_target_volume()里正数代表多头负数代表空头0 表示空仓。你只管报目标中间怎么分批、怎么追单、怎么撤单TargetPosTask都替你处理了。如果你希望模拟账户能长期保存资金和持仓甚至能在快期 App 里查看可以把TqSim换成TqKq登录快期模拟账户用法几乎一样from tqsdk import TqApi, TqAuth, TqKq api TqApi(TqKq(), authTqAuth(你的快期账号, 你的密码))上实盘前先回测用 TqBacktest 验证策略自动交易程序写好了别急着往实盘账户上挂。把同样的策略丢进历史行情里先跑几个月看看资金曲线和回撤情况是成本最低的验证方式。TqSdk 的回测只需要在创建TqApi时多传一个TqBacktest参数from datetime import date from tqsdk import TqApi, TqAuth, TqBacktest api TqApi( backtestTqBacktest(start_dtdate(2025, 1, 1), end_dtdate(2025, 6, 1)), authTqAuth(你的快期账号, 你的密码), )把这段替换到上一节的程序开头策略就会在 2025 年上半年这段历史行情里完整地演一遍最终给出账户权益、总收益、最大回撤等统计结果。回测通过再考虑模拟盘模拟盘顺手再谈实盘。这是新手最不容易亏钱的一条路线。另外提醒一句TqSdk 的实盘交易属于专业版功能需要申请试用或购买授权也支持在部分合作期货公司开户后免费实盘。对新手而言先用好免费的行情、回测和模拟盘就足够入门了。新手高频疑问速查Q1合约代码到底怎么写统一格式是交易所代码.品种代码比如SHFE.rb2610上期所螺纹钢、DCE.i2609大商所铁矿石、CFFEX.IF2606中金所沪深300股指。需要注意大小写是敏感的写错了订阅会失败。Q2行情延迟大吗TqSdk 拿的是交易所实时行情延迟在毫秒级。对绝大多数量化策略来说这个速度完全够用。Q3免费版能用哪些品种免费版就能获取全部期货、商品/金融期权的实时行情以及上证 50、沪深 300 等主流指数的数据。A 股股票行情属于专业版能力。Q4历史数据怎么拿get_kline_serial()可以直接拉取 K 线序列比如api.get_kline_serial(SHFE.rb2610, 300, 30)表示拿 5 分钟线共 30 根想要更长跨度的全量历史数据可以使用tqsdk/tools/downloader.py这个下载工具。Q5程序会误操作真金白银吗只要不在TqApi里传真实账户TqAccount程序就跑在模拟账户上不会产生真实交易。新人建议默认保持这种状态。Q6网络断了怎么办网络抖动在实盘中很常见。TqApi 支持设置自动重连机制配合TqReconnect参数可以让程序在网络恢复后自动续上避免行情断档。学完这些下一步去哪儿这篇实战走完了装环境 → 连行情 → 盯盘报警 → 自动调仓 → 回测验证的完整链路。想继续深入这几个入口值得收藏官方快速入门doc/quickstart.rst十分钟跑通第一套程序API 参考doc/reference/tqsdk.api.rstTqApi的全部接口说明都在这里分步教程示例tqsdk/demo/tutorial/从 t10 最小行情、t30 K 线、t40 下单到 t60 自动交易、t80 目标持仓循序渐进完整策略示例tqsdk/demo/example/双均线、网格交易、海龟、跨期价差等经典策略可直接参考进阶专题doc/advanced/和doc/usage/涉及回测细节、订单管理、多账户、风险控制等深入话题。量化交易这条路重要的是先跑起来再慢慢优化。今天不妨就从pip install tqsdk开始用上面第一段代码打印出你的第一条实时行情。等屏幕上开始滚动价格数字你就已经正式迈进了期货程序化交易的大门。【免费下载链接】tqsdk-python天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考