前言国内期货量化趋势程序里信号多在 K 线收盘后产生天勤get_kline_serial订 5 分钟线价格向上突破 20 日均线时策略层调用TargetPosTask.set_target_volume(n)做多。执行层若用priceACTIVE对价会按当前买卖盘报价成交。农产品远月、小品种或非主力月份上常出现「K 线收出一根漂亮突破 bar但买一卖一各只有一两手、点差占了好几个最小变动价位」——信号像真突破盘口却撑不住追进去下一根 bar 价格又回到区间里滑点却已经发生。过滤薄盘口假突破不能只看 K 线阴阳线要在发set_target_volume之前读天勤api.get_quote(symbol)上的五档买卖量与price_tick。下面说明字段含义、阈值怎么配、和TargetPosTask价格模式怎么配合。一、quote 里和流动性相关的字段天勤api.get_quote(symbol)返回的Quote对象见objs.py包含五档买卖价量字段含义过滤用途bid_price1/ask_price1买一、卖一价算点差bid_volume1/ask_volume1买一、卖一量厚度门槛bid_volume25等更深档位大单冲击评估price_tick最小变动价位点差换算成 tick 数last_price最新价与均线比较volume当日成交量品种活跃度点差tick 数可近似为spread_ticks(quote.ask_price1-quote.bid_price1)/quote.price_tick注意price_tick为 nan 或买卖价为 0 时应跳过本帧不下单。二、薄盘假突破的典型形态结合实盘经验下列组合值得在程序里挡一层突破信号出现但bid_volume1 ask_volume1低于品种阈值如螺纹钢主力常设几十手远月可能只有 15 手。spread_ticks大于 23对价进出成本过高。五档合计量仍很小但 K 线 amplitude 很大多为扫单或错价成交。夜盘刚开盘几分钟盘口未稳指标与 quote 同时触发。过滤应写在信号层与执行层之间信号可以记录「理论突破」执行层读 quote 决定本帧是否set_target_volume。三、和 TargetPosTask 价格模式的配合TargetPosTask的price参数支持ACTIVE对价、PASSIVE排队或自定义函数。薄盘时ACTIVE容易吃穿几档滑点放大可改用PASSIVE或限价函数但成交变慢。若 spread 过大直接本帧不调仓等下一根wait_update再评估。远月合约即使订阅了行情也应在执行前用 quote 过滤避免长期ALIVE挂单与远月流动性专题同一思路。自定义价格函数示例仅示意逻辑defpassive_if_thin(quote):spread(quote.ask_price1-quote.bid_price1)/quote.price_tickifspread3orquote.bid_volume1quote.ask_volume110:returnquote.bid_price1# 排队买returnquote.ask_price1# 正常对价买taskTargetPosTask(api,symbol,pricepassive_if_thin)四、多档深度与加权评估仅看一档在有些品种够用若策略手数较大可算前五档可成交量defdepth_sum(quote,sideask,levels5):total0foriinrange(1,levels1):totalgetattr(quote,f{side}_volume{i},0)or0returntotal当计划开仓手数大于depth_sum的一定比例时延迟调仓或启用max_volume拆分。五、参数怎么落到配置建议按品种维护 YAML 或 JSONmin_depth1买一卖一量之和下限max_spread_ticks允许的最大点差min_day_volume当日成交量下限用quote.volume回测阶段若用主连或TqBacktest盘口字段可能与实盘有差异过滤规则应在TqSim/TqKq上复验。六、过滤日志字段被挡信号应记eventfiltered、reasonthin_book、spread_ticks、depth1、symbol便于复盘「没做」还是「不能做」。七、与涨跌停区别涨跌停时 spread 也可能很大但原因不同应先看quote涨跌停相关字段若有再决定是流动性过滤还是风控熔断避免把涨停误当薄盘。八、主力与远月阈值分表主力min_depth130、远月min_depth15可能仍太松远月更建议直接不在执行池而非低阈值硬做。总结薄盘口假突破的核心矛盾是 K 线信号按历史成交汇总而你的下一笔成交发生在当下这几档买卖盘上。天勤quote提供五档价量与price_tick足够在set_target_volume前做 spread 与深度门槛配合TargetPosTask的price与拆分参数可以在不改信号公式的情况下降低远月、夜盘初段的无意义追价。把阈值写进配置并在日志里记录被过滤原因复盘时才能区分是真突破没做还是风控正确地挡了一次薄盘陷阱。FAQ1只有一档量为 0 怎么办买卖价为 0 或 nan 多出现在停牌、刚订阅未收到首帧应wait_update等到有效盘口再交易。2过滤会不会错过真突破会这是用错过行情换滑点可控。阈值需按品种回测与模拟权衡。3tick 策略能用同样逻辑吗可以在 tick 触发分支里读同一quote对象注意is_changing降频。4组合合约 SP 怎么看深度组合合约 quote 反映组合盘口单腿仍要分别核对避免组合价突破但腿薄。本文基于天勤 TqSdk 公开 API 整理不构成投资建议。
期货量化薄盘口假突破怎么过滤:天勤 quote 五档量与点差阈值
前言国内期货量化趋势程序里信号多在 K 线收盘后产生天勤get_kline_serial订 5 分钟线价格向上突破 20 日均线时策略层调用TargetPosTask.set_target_volume(n)做多。执行层若用priceACTIVE对价会按当前买卖盘报价成交。农产品远月、小品种或非主力月份上常出现「K 线收出一根漂亮突破 bar但买一卖一各只有一两手、点差占了好几个最小变动价位」——信号像真突破盘口却撑不住追进去下一根 bar 价格又回到区间里滑点却已经发生。过滤薄盘口假突破不能只看 K 线阴阳线要在发set_target_volume之前读天勤api.get_quote(symbol)上的五档买卖量与price_tick。下面说明字段含义、阈值怎么配、和TargetPosTask价格模式怎么配合。一、quote 里和流动性相关的字段天勤api.get_quote(symbol)返回的Quote对象见objs.py包含五档买卖价量字段含义过滤用途bid_price1/ask_price1买一、卖一价算点差bid_volume1/ask_volume1买一、卖一量厚度门槛bid_volume25等更深档位大单冲击评估price_tick最小变动价位点差换算成 tick 数last_price最新价与均线比较volume当日成交量品种活跃度点差tick 数可近似为spread_ticks(quote.ask_price1-quote.bid_price1)/quote.price_tick注意price_tick为 nan 或买卖价为 0 时应跳过本帧不下单。二、薄盘假突破的典型形态结合实盘经验下列组合值得在程序里挡一层突破信号出现但bid_volume1 ask_volume1低于品种阈值如螺纹钢主力常设几十手远月可能只有 15 手。spread_ticks大于 23对价进出成本过高。五档合计量仍很小但 K 线 amplitude 很大多为扫单或错价成交。夜盘刚开盘几分钟盘口未稳指标与 quote 同时触发。过滤应写在信号层与执行层之间信号可以记录「理论突破」执行层读 quote 决定本帧是否set_target_volume。三、和 TargetPosTask 价格模式的配合TargetPosTask的price参数支持ACTIVE对价、PASSIVE排队或自定义函数。薄盘时ACTIVE容易吃穿几档滑点放大可改用PASSIVE或限价函数但成交变慢。若 spread 过大直接本帧不调仓等下一根wait_update再评估。远月合约即使订阅了行情也应在执行前用 quote 过滤避免长期ALIVE挂单与远月流动性专题同一思路。自定义价格函数示例仅示意逻辑defpassive_if_thin(quote):spread(quote.ask_price1-quote.bid_price1)/quote.price_tickifspread3orquote.bid_volume1quote.ask_volume110:returnquote.bid_price1# 排队买returnquote.ask_price1# 正常对价买taskTargetPosTask(api,symbol,pricepassive_if_thin)四、多档深度与加权评估仅看一档在有些品种够用若策略手数较大可算前五档可成交量defdepth_sum(quote,sideask,levels5):total0foriinrange(1,levels1):totalgetattr(quote,f{side}_volume{i},0)or0returntotal当计划开仓手数大于depth_sum的一定比例时延迟调仓或启用max_volume拆分。五、参数怎么落到配置建议按品种维护 YAML 或 JSONmin_depth1买一卖一量之和下限max_spread_ticks允许的最大点差min_day_volume当日成交量下限用quote.volume回测阶段若用主连或TqBacktest盘口字段可能与实盘有差异过滤规则应在TqSim/TqKq上复验。六、过滤日志字段被挡信号应记eventfiltered、reasonthin_book、spread_ticks、depth1、symbol便于复盘「没做」还是「不能做」。七、与涨跌停区别涨跌停时 spread 也可能很大但原因不同应先看quote涨跌停相关字段若有再决定是流动性过滤还是风控熔断避免把涨停误当薄盘。八、主力与远月阈值分表主力min_depth130、远月min_depth15可能仍太松远月更建议直接不在执行池而非低阈值硬做。总结薄盘口假突破的核心矛盾是 K 线信号按历史成交汇总而你的下一笔成交发生在当下这几档买卖盘上。天勤quote提供五档价量与price_tick足够在set_target_volume前做 spread 与深度门槛配合TargetPosTask的price与拆分参数可以在不改信号公式的情况下降低远月、夜盘初段的无意义追价。把阈值写进配置并在日志里记录被过滤原因复盘时才能区分是真突破没做还是风控正确地挡了一次薄盘陷阱。FAQ1只有一档量为 0 怎么办买卖价为 0 或 nan 多出现在停牌、刚订阅未收到首帧应wait_update等到有效盘口再交易。2过滤会不会错过真突破会这是用错过行情换滑点可控。阈值需按品种回测与模拟权衡。3tick 策略能用同样逻辑吗可以在 tick 触发分支里读同一quote对象注意is_changing降频。4组合合约 SP 怎么看深度组合合约 quote 反映组合盘口单腿仍要分别核对避免组合价突破但腿薄。本文基于天勤 TqSdk 公开 API 整理不构成投资建议。