期货量化价差合约怎么订:天勤 SP 组合代码与订阅注意点

前言

做跨期套利、日历价差时,有人订近月、远月两个具体合约自己算 spread,有人直接订交易所的组合合约(代码里常带 SPSPD 等)。我踩过的坑是:组合合约的行情字段、成交规则与单腿不同,却套用单腿策略去 insert_order

天勤 TqSdk 订阅组合合约与单腿一样用 get_quoteget_kline_serial,但代码字符串更长、交易所规则各异。下面说明组合代码从哪查、订阅后看哪些字段、和双腿各自订阅的取舍。

一、组合合约与双腿订阅

方式 优点 注意
直接订组合 SP/SPD 交易所定义的价差一口价 代码长、流动性规则特殊
近月+远月分别订 灵活算 spread、可只交易一腿 两腿同步、滑点分开

研究阶段可双腿算 spread;执行若交易所支持组合单,再评估是否改用组合代码(以文档与期货公司为准)。

二、代码从哪来

组合合约完整字符串应在快期客户端或交易所公告里复制,不要手拼。形态示意(非真实挂牌):

text 复制代码
DCE.SP i2509-i2510

实际前缀、空格、大小写以交易所与 TqSdk 文档为准。订不到行情时,先对照客户端「合约代码」字段,与单腿一样注意 CZCE 大小写。

python 复制代码
from tqsdk import TqApi, TqAuth, TqSim

api = TqApi(TqSim(), auth=TqAuth("账户", "密码"))
# symbol 换成你从客户端复制的组合代码
symbol = "DCE.xxx"  # 占位,务必替换
q = api.get_quote(symbol)
while True:
    api.wait_update()
    if api.is_changing(q, "datetime"):
        print(q.last_price, q.bid_price1, q.ask_price1)
        break
api.close()

三、行情字段怎么用

组合 quote 的 last_price 往往表示价差或组合报价,含义与单腿 last 不同。策略里应:

  • 阅读该品种组合合约说明(乘数、最小变动、是否允许单边成交)
  • volume_multiple 等字段前确认对象指向组合而非单腿
  • 日志里标明「组合价」避免与近月价格混淆

双腿 spread 自建时:

python 复制代码
near = api.get_quote("DCE.i2509")
far = api.get_quote("DCE.i2510")
# spread = near.last_price - far.last_price  # 定义要与团队一致

注意两 leg 的 wait_update 后同时读,避免一个旧一个新。

四、下单与 TargetPosTask

若对组合合约下单,一个 TargetPosTask(api, combo_symbol) 管理组合目标仓。若双腿分别交易,通常两个 TargetPosTask,阈值触发时要考虑一腿成交、另一腿失败的残腿风险。

换月时组合代码会变,双腿也要同步换,不能只换近月。

五、性能

组合 + 多腿同时订阅会增加推送量。价差监控可只订组合 quote;要拆腿执行再订单腿。订阅数控制与多品种专题同一原则。

总结

价差交易先要定订阅方式:直接订交易所组合合约(代码常含 SP/SPD,字符串较长),或近远月双腿分别订、自行算 spread。天勤侧 get_quoteget_kline_serial 用法与单腿一致,差异在交易所规则------组合 last_price 往往表示价差或组合价,不能与单腿价格混在同一阈值逻辑里。代码务必从快期客户端复制完整合约名,注意 CZCE 大小写;订不到行情时先对照客户端,不要手拼。

双腿方案要统一 spread 定义(近减远或远减近),并在同一帧 wait_update 后读取两 leg 价格。执行层若用组合单,可用一个 TargetPosTask 管组合 symbol;若分腿交易,两个 task 要处理一腿成交、另一腿失败的残腿风险。换月时组合代码与单腿合约都要同步更新。订阅数增多时注意推送量,监控 spread 可只订组合 quote,拆腿执行再订单腿。

建议模拟盘阶段只订阅、打印 last_price 与买卖盘,确认走势与人工算的 spread 一致,再写档位或阈值;上线前在策略说明里写清「组合价还是双腿价差」,避免复盘时对不上账。

FAQ

1)所有交易所都有 SP 吗?

不是,以挂牌为准。

2)组合能回测吗?

能订就能拉 K 线,撮合规则以回测引擎为准。

3)spread 用 last 还是 mid?

团队统一口径,写进策略说明。

4)组合与指数 KQ.i@ 混淆?

完全不同,勿混用代码。

风险提示

本文用于合约与行情技术说明,不构成投资建议。

相关推荐
用户8356290780511 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟9 小时前
乐企版式文件生成平台
java·后端·python
学测绘的小杨1 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3101 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐1 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海2 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱2 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict