news 2026/6/10 16:00:47

【期货量化入门】Python同时获取多个期货合约数据(TqSdk教程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【期货量化入门】Python同时获取多个期货合约数据(TqSdk教程)

一、前言

在实际量化交易中,我们经常需要同时监控多个期货合约。比如:

本文将介绍如何使用**天勤量化(TqSdk)**同时订阅多个期货合约数据。

二、为什么选择天勤量化(TqSdk)

在众多期货量化工具中,**天勤量化(TqSdk)**是目前国内最受欢迎的开源期货量化框架之一。本文使用TqSdk获取多合约数据,主要基于以下优势:

特点说明
完全免费开源免费,无需付费即可获取实时行情
多合约支持可同时订阅多个合约,数据统一管理
数据同步支持多合约数据对比、价差计算
上手简单几行Python代码即可实现多合约监控
套利友好非常适合开发跨品种、跨期套利策略

安装方法

pipinstalltqsdk

快期账户:使用TqSdk需要注册快期账户(免费),访问 https://www.shinnytech.com 注册。

三、同时订阅多合约(完整代码)

2.1 基础示例

#!/usr/bin/env python# -*- coding: utf-8 -*-""" 功能:同时订阅多个期货合约 说明:本代码仅供学习参考 """fromtqsdkimportTqApi,TqAuth# 创建API实例api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 同时订阅多个合约的行情quote_rb=api.get_quote("SHFE.rb2501")# 螺纹钢quote_hc=api.get_quote("SHFE.hc2501")# 热卷quote_i=api.get_quote("DCE.i2501")# 铁矿石# 等待数据就绪api.wait_update()# 打印各合约最新价格print("="*50)print("多合约行情数据")print("="*50)print(f"螺纹钢(rb2501):{quote_rb.last_price}")print(f"热卷(hc2501):{quote_hc.last_price}")print(f"铁矿石(i2501):{quote_i.last_price}")api.close()

2.2 使用列表批量订阅

当需要订阅大量合约时,可以使用列表和循环:

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 定义要订阅的合约列表symbols=["SHFE.rb2501",# 螺纹钢"SHFE.hc2501",# 热卷"DCE.i2501",# 铁矿石"DCE.j2501",# 焦炭"DCE.jm2501",# 焦煤]# 批量订阅,存入字典quotes={}forsymbolinsymbols:quotes[symbol]=api.get_quote(symbol)# 等待数据api.wait_update()# 打印所有合约价格print("合约代码\t\t最新价\t\t涨跌幅")print("-"*50)forsymbol,quoteinquotes.items():# 计算涨跌幅ifquote.pre_closeandquote.pre_close!=0:change=(quote.last_price-quote.pre_close)/quote.pre_close*100else:change=0print(f"{symbol}\t{quote.last_price}\t\t{change:.2f}%")api.close()

四、实时监控多合约

3.1 持续监控价格变化

fromtqsdkimportTqApi,TqAuthimportdatetime api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 订阅黑色系主要品种quote_rb=api.get_quote("SHFE.rb2501")quote_i=api.get_quote("DCE.i2501")quote_j=api.get_quote("DCE.j2501")print("开始监控黑色系品种,按Ctrl+C停止...")print("-"*60)whileTrue:api.wait_update()# 检测任一合约价格变化updated=Falseifapi.is_changing(quote_rb,"last_price"):updated=Trueifapi.is_changing(quote_i,"last_price"):updated=Trueifapi.is_changing(quote_j,"last_price"):updated=Trueifupdated:now=datetime.datetime.now().strftime("%H:%M:%S")print(f"[{now}] 螺纹:{quote_rb.last_price:.0f}| "f"铁矿:{quote_i.last_price:.1f}| "f"焦炭:{quote_j.last_price:.1f}")

五、同时获取多合约K线

4.1 获取多个合约的K线数据

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 同时获取两个合约的5分钟K线klines_rb=api.get_kline_serial("SHFE.rb2501",300,100)klines_hc=api.get_kline_serial("SHFE.hc2501",300,100)api.wait_update()print("螺纹钢最近3根K线:")print(klines_rb[["datetime","close"]].tail(3))print()print("热卷最近3根K线:")print(klines_hc[["datetime","close"]].tail(3))api.close()

4.2 计算价差(跨品种套利基础)

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 获取螺纹钢和热卷的行情quote_rb=api.get_quote("SHFE.rb2501")quote_hc=api.get_quote("SHFE.hc2501")print("螺纹钢-热卷 价差监控")print("-"*40)whileTrue:api.wait_update()ifapi.is_changing(quote_rb)orapi.is_changing(quote_hc):# 计算价差spread=quote_rb.last_price-quote_hc.last_priceprint(f"螺纹:{quote_rb.last_price:.0f}- 热卷:{quote_hc.last_price:.0f}= 价差:{spread:.0f}")

六、跨期合约对比

同时订阅同一品种的不同月份合约:

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("你的快期账户","你的密码"))# 订阅螺纹钢不同月份合约quote_01=api.get_quote("SHFE.rb2501")# 近月quote_05=api.get_quote("SHFE.rb2505")# 远月api.wait_update()print("螺纹钢跨期价差分析")print("="*40)print(f"rb2501 (近月):{quote_01.last_price}")print(f"rb2505 (远月):{quote_05.last_price}")print(f"跨期价差:{quote_05.last_price-quote_01.last_price}")api.close()

七、注意事项

事项说明
订阅数量TqSdk免费版有合约订阅数量限制
数据同步不同合约的数据更新时间可能不同步
内存占用订阅过多合约会增加内存占用
网络延迟合约越多,数据推送量越大

八、总结

功能代码
订阅单个合约api.get_quote("SHFE.rb2501")
订阅多个合约多次调用get_quote,分别存储
批量订阅使用循环 + 字典存储
检测变化api.is_changing(quote, "last_price")

同时订阅多合约是构建套利策略、组合策略的基础,掌握这一技能后可以开发更复杂的交易系统。


免责声明:本文仅供学习交流使用,不构成任何投资建议。期货交易有风险,入市需谨慎。

更多资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 9:22:07

性能测试的五个核心指标解析

性能测试是软件测试过程中的重要组成部分,它通过模拟真实用户负载来评估系统的响应能力、稳定性和资源利用效率。对于软件测试从业者而言,掌握关键性能指标是诊断问题、优化性能的基础。以下是性能测试中五个不可或缺的关键指标,每个指标都从…

作者头像 李华
网站建设 2026/6/10 9:24:43

‌《独家揭秘:核电应急机组大修背后的百亿市场链条》

独家揭秘:核电应急机组大修背后的百亿市场链条核电作为一种清洁、高效的能源,在全球能源结构中占据着重要地位。而核电应急机组大修,不仅关系到核电站的安全稳定运行,更催生出了一个规模庞大的市场链条。今天,就让我们…

作者头像 李华
网站建设 2026/6/10 9:18:57

GPT-5.2深度评测:OpenAI如何在AI大战中重夺王座

OpenAI发布GPT-5.2模型,在逻辑推理、目标求解和动态消耗控制方面超越前代,复杂问题表现优异且平均成本更低。尽管归纳洞察能力有所减弱,但GPT-5.2的发布暂时缓解了OpenAI在激烈AI竞争中的压力,巩固了其技术领先地位,为…

作者头像 李华
网站建设 2026/6/10 9:22:28

低秩适应(LoRA):大模型参数高效微调的终极指南

文章介绍了低秩适应(LoRA)技术,一种通过低秩矩阵分解实现参数高效微调的方法。LoRA仅需训练少量低秩参数,就能使大模型在特定任务上表现优异,大幅降低微调资源门槛。文章详细解释了低秩矩阵的数学原理、LoRA的微调策略设计、秩的选取方法以及…

作者头像 李华