当前位置: 首页 > news >正文

期货多品种轮动标的池:天勤 query_quotes 筛品种写法

前言

国内期货多品种轮动策略,逻辑是每周或每月从几十个商品里挑「当前活跃」的品种做趋势:天勤程序给每个入选品种订 5 分钟 K 线,算动量或均线信号,再对各品种的TargetPosTask调仓。标的池若靠手工维护symbols.txt,很快过期——新合约上市、旧合约下市、主力从m2509换到m2511,都要人工改文件。春节后忘了换豆粕主力、程序还在远月挂单一周几乎不成交,是实盘里真实发生过的低级事故。

天勤api.query_quotes可向合约服务按ins_class(期货/主连等)、exchange_idproduct_idexpiredhas_night等条件批量查询,返回当前可交易的 symbol 列表,适合作为盘前自动刷池的第一道筛子,再叠加quote.open_interestvolume二次过滤。下面说明参数用法和与主循环的衔接。

一、query_quotes 参数摘要

api.py

参数示例作用
ins_class"FUTURE"只要期货
exchange_id"SHFE"或列表交易所
product_id"rb"品种代码
expiredFalse排除已下市
has_nightTrue只要含夜盘品种

返回SymbolList,可迭代合约代码字符串,如SHFE.rb2510

二、构建标的池示例

fromtqsdkimportTqApi,TqAuth api=TqApi(auth=TqAuth("账户","密码"))api.wait_update()# 上期所、大商所、郑商所未下市期货pool=api.query_quotes(ins_class="FUTURE",exchange_id=["SHFE","DCE","CZCE"],expired=False,)

注意:query_quotes返回的是合约级代码,不是主连。轮动若跟主力,还需按持仓量或成交量选具体月份,或订阅KQ.m@做信号、映射到主力月份下单。

三、二次过滤:成交量与持仓

对池内每个 symbol 订quote(注意订阅数量),在wait_update后读:

  • quote.volume当日成交量
  • quote.open_interest持仓量
  • quote.expire_rest_days排除临期
defrank_by_oi(api,symbols,top_n=10):rows=[]forsinsymbols:q=api.get_quote(s)api.wait_update()forsinsymbols:q=api.get_quote(s)ifq.open_interest==q.open_interest:rows.append((s,q.open_interest))rows.sort(key=lambdax:-x[1])return[sfors,_inrows[:top_n]]

全市场扫一遍成本高,可先按product_id选品种再取各品种主力合约。

四、与策略主循环集成

  • 标的池刷新频率:日频或周频即可,放在开盘前任务,不要每分钟query_quotes
  • 刷新后重建TargetPosTask需停机发版规则:换月窗口集中切换。
  • 池外品种必须cancel订阅,降低 CPU。

五、和 DataDownloader 分工

历史研究用DataDownloaderget_kline_data_series拉长期数据;query_quotes管「当前有哪些合约可交易」。两者结合:quotes 出池,downloader 出回测样本。

六、按 product_id 聚类再选主力

全市场query_quotes可能返回数百合约。先按product_id分组,每组只保留持仓量最大的一两个月份进池,能把订阅数从几百降到几十。

七、池刷新与 task 重建

池变化意味着trade_symbol变化,须走停机发版:平旧月、建新TargetPosTask、更新配置 VERSION。不要在持仓中在线改 symbol。

八、has_night 筛选

只做夜盘策略时用has_night=True,避免把无夜盘品种放进池浪费 CPU。日盘策略可设FalseNone

九、盘前检查清单

  • 运行query_quotes,确认无已下市合约混入
  • 各品种主力open_interest排名前二是否变化
  • expire_rest_days小于阈值的合约已剔除
  • 池内合约数与 CPU 占用可接受
  • 配置文件pool_version递增并提交
  • 旧月TargetPosTask已平、新月 task 已建
  • 日志记录今日池与昨日 diff

总结

多品种轮动离不开可维护的标的池。天勤query_quotes按交易所、品种、是否下市、是否有夜盘等条件批量拉合约列表,再叠加quote.open_interestvolumeexpire_rest_days做主力与流动性筛选,比手写月份表更抗换月。控制刷新频率与订阅数量,把池更新放在盘前任务里,轮动策略才能长期跑而不被合约生命周期拖垮。标的池不是越全越好,能成交、能解释、能换月,三张表缺一不可。

FAQ

1)query_quotes 要 wait_update 吗?

调用后建议wait_update再读结果,确保列表到齐。

2)能筛股指国债吗?

exchange_id="CFFEX"product_idIF

3)返回含期权吗?

ins_class="OPTION"单独查,别与期货混池。

4)主连 CONT 怎么查?

ins_class="CONT",下单仍用具体月份。


本文基于天勤 TqSdk 公开 API 整理,不构成投资建议。

http://www.jsqmd.com/news/992356/

相关文章:

  • 深入解析P89LPC93x系列MCU的ADC模块:从原理到实战应用
  • 3个秘诀:用ZenTimings专业监控AMD内存性能的完整指南
  • 网盘直链下载助手:告别限速困扰,解锁九大网盘真实下载链接的实用技巧
  • 用Python和SymPy手把手推导汽车二自由度模型:从受力分析到微分方程求解
  • [写代码]vscode中接入codex 1.可以添加代码上下文 2.可以浏览代码 3.fork查看代码修改
  • 中国象棋AI助手Vin象棋:让你的棋艺快速提升的免费智能伙伴
  • Java Lambda + 空指针四种主流处理方案
  • 2026年对辊破碎机厂家实力推荐:徐州市恒力破碎机制造有限公司技术领先与服务保障 - 品牌推荐官
  • 2026年深度除氟剂生产厂家实力推荐:巩义永源技术领先与市场口碑双优之选 - 品牌推荐官
  • _Rust 无GC内存模型深度拆解:手写自定义Arena内存池
  • Android Studio中文界面终极配置指南:3步告别英文困扰
  • Yakit实战入门:从零构建你的第一个安全测试工作流
  • MTKClient终极指南:3步教你拯救变砖的联发科设备
  • PCA9575 I/O扩展芯片实战指南:电平转换、中断与混合电压系统设计
  • Sub-1 GHz射频接收器OL2311寄存器配置实战:从原理到调试
  • 如何用5分钟实现专业级图像分层:Layerdivider智能PSD生成终极指南
  • MPC8572E PowerQUICC III处理器硬件设计实战指南
  • Armadillo 3.4.0 C++线性代数库源码包,带Matlab式语法、跨平台构建脚本与完整示例
  • 2026年湖南职称申报服务推荐:湖南筑励咨询职称论文发表与学历提升全流程支持 - 品牌推荐官
  • PCA9553智能LED驱动芯片:I2C总线上的硬件PWM与GPIO扩展实战
  • 用Python和SymPy搞定汽车二自由度模型:从理论方程到代码仿真(保姆级教程)
  • 从文字到CAD的魔法:零基础5分钟变身机械设计师
  • 如何完整备份QQ空间历史记录:GetQzonehistory开源工具终极指南
  • Anthropic发布Claude Fable 5和Mythos 5:分层发售,能力与价格匹配几何?
  • 我用Claude Code写了2万行核心代码,然后亲手把它们全部删掉了
  • 医药企业花千万建系统,却卡在了这件最基础的事上
  • ViT架构解析:从Transformer到视觉识别的跨界革命
  • MPC8314E高速接口电气特性解析与硬件设计实战
  • 免费开源网络速度测试工具OpenSpeedTest™:3分钟搭建专属测速站
  • 【MATLAB】飞行器姿态快速收敛控制算法实现