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

期货策略 tick 与 K 线一起用:订阅顺序与触发规则怎么定

前言

国内期货行情有两层常用粒度:一是 tick(每笔或每次盘口更新,在 quote 的last_price、买卖价量上体现);二是 K 线(按 1 分钟、5 分钟等把价格合成 OHLC,表里有datetime列标记每根 bar 的时间)。有的策略“大方向看 5 分钟 K 线,入场看 tick 突破”;有的“K 线收盘定方向,下单看对价盘口”。若两套节奏没有写进文档,就会出现:K 线还没收盘 tick 已开仓、或 K 线已信号 tick 过滤又把单挡住,两套逻辑互相打架。

下面说明在同一策略里同时用 tick 与 K 线时,先订什么、谁触发谁、主循环怎么组织,基于天勤 TqSdk 的get_quoteget_kline_serial,并给出可落地的分层触发示例。

一、先理解两个数据从哪来

quote=api.get_quote("SHFE.rb2510")# tick/盘口级,字段随 wait_update 更新kl=api.get_kline_serial("SHFE.rb2510",300,data_length=200)# 300秒=5分钟K线
  • quote:last_pricebid_price1ask_price1等在交易时段随成交和挂单变化。
  • kl:每一行一根 K 线;datetime由行情服务写入,当新 5 分钟 bar 生成时,最后一行datetime会变(配合is_changing判断)。

两者都依赖api.wait_update()才会更新;没有 wait_update,任何一层都是旧数据。

二、订阅顺序:先 quote 再 K 线或反之?

天勤里订阅顺序通常不强制,但建议在策略启动时一次性订齐本策略需要的 quote 与 kl,并至少一次wait_update()等到有效datetime和非 nan 的last_price,再进入主循环。避免在循环里反复新建订阅。

多合约时:每个 symbol 各一对quote+kl,不要共用一个 quote 变量。

三、推荐:分层触发,明确主从

原则:K 线层定“是否允许交易方向”,tick 层定“是否在这一刻下单”。

示例流程(5 分钟趋势 + tick 对价过滤):

  1. 仅当is_changing(kl.iloc[-1], "datetime")时,用iloc[-2]更新方向缓存allow_long/allow_short
  2. 每个循环wait_update后,若方向不允许,直接 continue,不读 tick 下单逻辑。
  3. 若方向允许,再用is_changing(quote, "last_price")或盘口价差判断,满足才set_target_volume
bias={"long":False,"short":False}whileTrue:api.wait_update()ifapi.is_changing(kl.iloc[-1],"datetime"):# 用 [-2] 更新 5 分钟趋势 biasc,m=kl.close.iloc[-2],tafunc.ma(kl.close,20).iloc[-2]bias["long"]=c>m bias["short"]=c<mifnot(bias["long"]orbias["short"]):continueifapi.is_changing(quote,"last_price"):spread=quote.ask_price1-quote.bid_price1ifspread>2*quote.price_tick:continue# 点差过大不下ifbias["long"]:task.set_target_volume(1)

切忌:用每个 tick 重算 5 分钟均线(应用上一节的 datetime 触发);切忌:K 线未更新方向却每个 tick 开平仓。

四、tick 级策略若也要参考 K 线

若主逻辑是 tick,K 线只作过滤(例如“只在 5 分钟均线多头时做 tick 突破”),仍应 K 线 datetime 变时更新缓存,tick 触发时只读缓存,不要每 tick 重算整段 K 线指标。

五、执行层注意

TargetPosTaskwait_update里发单;tick 触发频繁时,避免每个 tick 都set_target_volume改目标(会频繁撤单)。可设“本 5 分钟 bar 只 set 一次”或“目标不变不重复 set”。

总结

tick 和 K 线并用本身没有问题,问题通常出在两套节奏缺少明确主从关系,最后导致重复触发或错过该做与不该做的时机。把 K 线放在“方向/过滤”层,用 datetime 变更来更新缓存;把 tick 放在“进入/执行”层,用 quote 字段做当前时点的细节判断,并在同一个 wait_update 主循环里串起来。这样一来,策略的行为会从“看起来很忙”变成“有节奏、可复盘”:你能解释为什么某分钟触发、为什么某 tick 没触发,也能在回放与实盘对照时快速定位差异来自哪里。

FAQ

1)dur_sec=0 是 tick 吗?

实时用 quote;历史 tick 下载见 DataDownloader 的 dur_sec=0(专业版能力)。

2)能否只订 K 线不订 quote?

执行要价格时仍建议订 quote,尤其用 ACTIVE 对价下单。

3)多周期 K 线 + tick?

每个周期独立 datetime 缓存,再统一 tick 入场,见多周期专题。

4)回测 tick+K 线?

逻辑可一致,回测帧密度与实盘不同,需模拟验证。

风险提示

本文讨论程序结构,不构成投资建议。

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

相关文章:

  • 2026 山西地区互联网广告优质服务商实力盘点与参考 - 深度智识库
  • Ucupaint:掌握Blender纹理图层的专业解决方案
  • Vazirmatn字体:从零开始掌握波斯语/阿拉伯语开源字体解决方案
  • R语言空间机器学习实战:让算法真正理解地理依赖
  • 030、实时反馈循环:修改到验证到迭代的快速闭环,减少 AI 生成幻觉的工程方法
  • 2026年集团数据资产全生命周期管理,大型企业统一系统软件推荐 - 品牌2026
  • i.MX RT1010 FlexIO模块模拟6800并行总线实战指南
  • 易货交易平台功能解析:规范化易货基础设施的作用与价值 - 资讯焦点
  • NXP RW61x无线MCU三模共存机制:硬件PTA与天线配置实战
  • MSC8101双FCC以太网驱动开发:从硬件配置到性能调优全解析
  • 2026 海口卖黄金攻略,避开回收各种套路 - 奢侈品回收评测
  • DCIM管理系统的应用价值是什么?
  • C++noi系列赛事(CSP-J/S篇)
  • NXP K32W041AM双模无线MCU射频测试深度解析与设计指南
  • 055、NPU的归一化单元:BatchNorm与LayerNorm的硬件加速
  • 2026广州青少年防控配眼镜排行榜,哪家服务更专业? - 资讯快报
  • 武汉市一豪卷帘门:武汉车库门安装公司 - LYL仔仔
  • 2026 山西本地线上获客服务团队实力全面梳理汇总 - 深度智识库
  • 全球产业规则或将迎来“中国时刻”,中国企业喜临门站上国际讲台 - 资讯焦点
  • 新手出手黄金必看,2026 成都回收行业内幕与选店技巧分享 - 奢侈品回收测评
  • UNI AI 靠谱吗?从技术架构解析这款 AI3.0 主流应用 - 资讯快报
  • 单片机普通IO口实现LED频谱呼吸+节奏闪烁效果(免硬件PWM)
  • CPU16指令集架构解析:寻址模式、条件码与嵌入式优化实战
  • KirikiriTools:视觉小说游戏资源处理终极指南
  • 5大优势解析:如何用ChanlunX缠论插件轻松实现股市技术分析可视化
  • Windows Precision Touchpad驱动:让Apple触控板在Windows系统上重获精准体验
  • 小批量PCB选材指南:板材与铜厚如何平衡
  • 东莞弘创激光科技:东莞激光打标设备哪家靠谱 - LYL仔仔
  • 图片规格调整实用指南 多种方式适配不同使用场景 - 软件工具教程方法
  • 3分钟掌握Real-ESRGAN-GUI:免费AI图像修复终极指南