安装与快速入门
本章带你从零开始:安装 TqSdk → 注册快期账户 → 写出第一个能拿到实时行情的程序。整个过程用 Python,不依赖任何看盘软件。
环境准备
TqSdk 对环境的要求很简单:
- Python >= 3.8(推荐 3.10 或 3.12)
- 操作系统:Windows 7+、macOS、Linux 均可
- 建议使用虚拟环境(venv / conda)隔离项目
安装 TqSdk
打开终端(Windows 用 PowerShell 或 CMD),执行:
pip install tqsdk -U
如果下载慢,用国内清华源加速:
pip install tqsdk -U -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host=pypi.tuna.tsinghua.edu.cn
-U 表示升级到最新版。TqSdk 更新频繁,建议保持最新。
验证安装:在 Python 里执行
import tqsdk; print(tqsdk.__version__),能打印版本号就成功了。
注册快期账户
使用任何 TqSdk 程序都必须传入快期账户(免费注册),它用于身份认证和行情权限管理。
- 访问 快期账户注册
- 用手机号注册,设置密码
- 注册时的手机号 / 用户名 / 邮箱都可以用来登录
快期账户还用于绑定实盘期货账户(最多 3 个),以及登录快期模拟交易系统。
第一个程序:获取实时行情
四行代码拿到一个合约的最新行情:
from tqsdk import TqApi, TqAuth
# 创建 API 实例(填入你的快期账户)
api = TqApi(auth=TqAuth("快期账户", "账户密码"))
# 获取上期所螺纹钢 2410 合约的行情引用
quote = api.get_quote("SHFE.rb2410")
# 循环等待行情更新,打印最新价
while True:
api.wait_update()
if api.is_changing(quote, "last_price"):
print("最新价:", quote.last_price)
运行后你会看到最新价不断刷新。这里有几个关键点:
TqApi(auth=TqAuth(...))创建核心实例,建立到行情服务器的 WebSocket 连接。api.get_quote("SHFE.rb2410")返回一个行情引用对象,它总是指向最新数据。api.wait_update()是阻塞函数,等待收到数据包才返回——它是整个程序的「心跳」。
获取 K 线数据
策略通常需要 K 线序列来计算指标:
from tqsdk import TqApi, TqAuth
api = TqApi(auth=TqAuth("快期账户", "账户密码"))
# 获取 1 分钟 K 线,默认返回 200 根
klines = api.get_kline_serial("SHFE.rb2410", 60)
while True:
api.wait_update()
if api.is_changing(klines.iloc[-1], "datetime"):
print("最新 K 线收盘价:", klines.close.iloc[-1])
get_kline_serial 的第二个参数是周期(秒):60 = 1 分钟线,3600 = 1 小时线,86400 = 日线。返回的是 pandas DataFrame,包含 open / high / low / close / volume 等列。
合约代码格式
TqSdk 使用 交易所代码.合约代码 的格式:
| 交易所 | 代码前缀 | 示例 |
|---|---|---|
| 上期所 | SHFE. | SHFE.au2412(黄金) |
| 大商所 | DCE. | DCE.m2501(豆粕) |
| 郑商所 | CZCE. | CZCE.CF501(棉花) |
| 中金所 | CFFEX. | CFFEX.IF2412(股指期货) |
| 广期所 | GFEX. | GFEX.si2412(工业硅) |
| 主连合约 | KQ.m@ | KQ.m@SHFE.rb(螺纹钢主连) |
主连合约(
KQ.m@开头)是自动换月的连续合约,适合做长期回测。
重要提示
- 必须调用
wait_update():所有网络收发、数据更新都发生在这里,不调用程序就卡死。 - 程序结束前调用
api.close():释放连接资源。推荐用with语句或try/finally。 - 首次运行可能输出 NaN:数据还没收到时,
quote.last_price可能是NaN,等待wait_update()后即正常。
小结
装好 TqSdk、注册快期账户、能用 get_quote 和 get_kline_serial 拿到实时数据,你就跨过了第一道门槛。接下来深入理解 TqSdk 的核心运行机制:
Python 策略结构。