期货量化价差合约怎么订:天勤 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@ 混淆?

完全不同,勿混用代码。

风险提示

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

相关推荐
yaoxin5211233 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
中微极客4 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz4 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
Ulyanov5 小时前
雷达导引头Python仿真框架:GPU加速、6-DOF模型与半实物仿真接口
开发语言·python·雷达信号处理·雷达导引头
磐链科技6 小时前
技术服务:交易所从流量竞争到生态竞争的核心变量
区块链
列逍6 小时前
博客系统测试
自动化测试·python·性能测试
星云开发7 小时前
拒绝无效加班!用Python打造自动化办公流,附Word/PDF互转硬核代码
python
dream_home84077 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
AIGS0017 小时前
跨越语义鸿沟:企业本体语义平台的构建与落地
java·人工智能·python·机器学习·人工智能ai大模型应用
李可以量化7 小时前
PTrade 量化策略实战:二八轮动策略深度解析(下)
python