安装与快速入门

本章带你从零开始:安装 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 程序都必须传入快期账户(免费注册),它用于身份认证和行情权限管理。

  1. 访问 快期账户注册
  2. 用手机号注册,设置密码
  3. 注册时的手机号 / 用户名 / 邮箱都可以用来登录

快期账户还用于绑定实盘期货账户(最多 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_quoteget_kline_serial 拿到实时数据,你就跨过了第一道门槛。接下来深入理解 TqSdk 的核心运行机制: Python 策略结构