期货多品种轮动标的池:天勤 query_quotes 筛品种写法 前言国内期货多品种轮动策略逻辑是每周或每月从几十个商品里挑「当前活跃」的品种做趋势天勤程序给每个入选品种订 5 分钟 K 线算动量或均线信号再对各品种的TargetPosTask调仓。标的池若靠手工维护symbols.txt很快过期——新合约上市、旧合约下市、主力从m2509换到m2511都要人工改文件。春节后忘了换豆粕主力、程序还在远月挂单一周几乎不成交是实盘里真实发生过的低级事故。天勤api.query_quotes可向合约服务按ins_class期货/主连等、exchange_id、product_id、expired、has_night等条件批量查询返回当前可交易的 symbol 列表适合作为盘前自动刷池的第一道筛子再叠加quote.open_interest、volume二次过滤。下面说明参数用法和与主循环的衔接。一、query_quotes 参数摘要见api.py参数示例作用ins_classFUTURE只要期货exchange_idSHFE或列表交易所product_idrb品种代码expiredFalse排除已下市has_nightTrue只要含夜盘品种返回SymbolList可迭代合约代码字符串如SHFE.rb2510。二、构建标的池示例fromtqsdkimportTqApi,TqAuth apiTqApi(authTqAuth(账户,密码))api.wait_update()# 上期所、大商所、郑商所未下市期货poolapi.query_quotes(ins_classFUTURE,exchange_id[SHFE,DCE,CZCE],expiredFalse,)注意query_quotes返回的是合约级代码不是主连。轮动若跟主力还需按持仓量或成交量选具体月份或订阅KQ.m做信号、映射到主力月份下单。三、二次过滤成交量与持仓对池内每个 symbol 订quote注意订阅数量在wait_update后读quote.volume当日成交量quote.open_interest持仓量quote.expire_rest_days排除临期defrank_by_oi(api,symbols,top_n10):rows[]forsinsymbols:qapi.get_quote(s)api.wait_update()forsinsymbols:qapi.get_quote(s)ifq.open_interestq.open_interest:rows.append((s,q.open_interest))rows.sort(keylambdax:-x[1])return[sfors,_inrows[:top_n]]全市场扫一遍成本高可先按product_id选品种再取各品种主力合约。四、与策略主循环集成标的池刷新频率日频或周频即可放在开盘前任务不要每分钟query_quotes。刷新后重建TargetPosTask需停机发版规则换月窗口集中切换。池外品种必须cancel订阅降低 CPU。五、和 DataDownloader 分工历史研究用DataDownloader或get_kline_data_series拉长期数据query_quotes管「当前有哪些合约可交易」。两者结合quotes 出池downloader 出回测样本。六、按 product_id 聚类再选主力全市场query_quotes可能返回数百合约。先按product_id分组每组只保留持仓量最大的一两个月份进池能把订阅数从几百降到几十。七、池刷新与 task 重建池变化意味着trade_symbol变化须走停机发版平旧月、建新TargetPosTask、更新配置 VERSION。不要在持仓中在线改 symbol。八、has_night 筛选只做夜盘策略时用has_nightTrue避免把无夜盘品种放进池浪费 CPU。日盘策略可设False或None。九、盘前检查清单运行query_quotes确认无已下市合约混入各品种主力open_interest排名前二是否变化expire_rest_days小于阈值的合约已剔除池内合约数与 CPU 占用可接受配置文件pool_version递增并提交旧月TargetPosTask已平、新月 task 已建日志记录今日池与昨日 diff总结多品种轮动离不开可维护的标的池。天勤query_quotes按交易所、品种、是否下市、是否有夜盘等条件批量拉合约列表再叠加quote.open_interest、volume、expire_rest_days做主力与流动性筛选比手写月份表更抗换月。控制刷新频率与订阅数量把池更新放在盘前任务里轮动策略才能长期跑而不被合约生命周期拖垮。标的池不是越全越好能成交、能解释、能换月三张表缺一不可。FAQ1query_quotes 要 wait_update 吗调用后建议wait_update再读结果确保列表到齐。2能筛股指国债吗exchange_idCFFEXproduct_id如IF。3返回含期权吗ins_classOPTION单独查别与期货混池。4主连 CONT 怎么查ins_classCONT下单仍用具体月份。本文基于天勤 TqSdk 公开 API 整理不构成投资建议。