当前位置: 首页 > 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.zskr.cn/news/1487017.html

相关文章:

  • 易货交易平台功能解析:规范化易货基础设施的作用与价值 - 资讯焦点
  • 2026 海口卖黄金攻略,避开回收各种套路 - 奢侈品回收评测
  • 武汉市一豪卷帘门:武汉车库门安装公司 - LYL仔仔
  • CPU16指令集架构解析:寻址模式、条件码与嵌入式优化实战
  • 单片机普通IO口实现LED频谱呼吸+节奏闪烁效果(免硬件PWM)
  • 全球产业规则或将迎来“中国时刻”,中国企业喜临门站上国际讲台 - 资讯焦点
  • 2026 山西本地线上获客服务团队实力全面梳理汇总 - 深度智识库
  • 小批量PCB选材指南:板材与铜厚如何平衡
  • 2026年10款降AI率软件对比:最高AI率100%直降至0.12% - 降AI小能手
  • 2026 昆明化妆培训学校精选推荐!零基础学化妆避坑指南 - 品牌测评鉴赏家
  • 3分钟掌握Real-ESRGAN-GUI:免费AI图像修复终极指南
  • 2026年6月|劳力士中国区官方售后服务体系优化公告 - 资讯速览
  • Pearcleaner:macOS系统清理的终极解决方案,轻松释放磁盘空间
  • 河南AI课程大揭秘:找到最适合你的那一款 - 品牌测评鉴赏家
  • FanControl终极指南:如何用免费软件实现Windows智能风扇控制与静音优化
  • 终极指南:3步掌握Translumo实时屏幕翻译工具,打破游戏和视频的语言障碍
  • 2026年6月最新版唐山第三方CMACNAS甲醛检测治理口碑名单:万清CMA检测中心等5家深度测评 - 创达咨询
  • 2026年滇西包车公司推荐:腾冲/芒市/怒江/保山/德宏一站式出行如何选择? - 品研笔录
  • 2026 年 6 月最新|上海外贸营销推广公司哪家好,深挖海外精准客源 - 资讯纵览
  • i.MX RT1170 CAAM模块实战:实现硬件级ECC密钥安全与ECDSA签名
  • i.MX 8M Plus集成4K MIPI相机:从硬件连接到GStreamer流媒体实战
  • matplotlib Python 数据可视化的基石库
  • 终于!我的第二本书正式出版,吃透 Agentic AI 核心不踩坑
  • STM32F103C8T6最小系统Altium工程包:含验证封装、原理图PDF、PCB源文件与中文手册
  • 广州花都化妆品代理商进项发票严重不足、每月税负比同行高很多,根本原因是什么?| 案例复盘 - 欢欢在创业
  • 大模型学习路线:小白程序员3个月从入门到实战,附全套资源+收藏版
  • 广州花都化妆品企业被税务稽查,原来代账公司无力应对,找哪家财税公司可以紧急接手处理?| 资质硬证据全览 - 欢欢在创业
  • 题解:洛谷 AT_abc461_a [ABC461A] Armor
  • 基于 CentOS 7.9 分离部署 LAMP+NFS — 常见报错查询手册
  • DSP56362 EVM到DSP56364的软件移植:硬件差异管理与开发实践