news 2026/6/5 13:32:55

多周期期货策略何时算新 K 线:各周期 datetime 分开触发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多周期期货策略何时算新 K 线:各周期 datetime 分开触发

前言

多周期策略在国内期货里很常见:例如用30 分钟 K 线判断趋势方向(只做多或只做空),用5 分钟 K 线找入场点。两个周期对应两张不同的 K 线表,各有自己的datetime(由行情服务按各自周期写入,表示每根 bar 的时间)。若只订一张 5 分钟表、却用“5 分钟更新了就去读 30 分钟最后一行”,会在 30 分钟 bar 未收盘时误用正在变动的iloc[-1],信号与实盘不一致。

本文说明多周期期货量化里每个周期独立判断datetime是否变化、大周期指标如何缓存、小周期如何读取缓存。基于天勤get_kline_serialduration参数(秒)。不默认你已写过双周期回测代码。

一、场景举例(读者可对号入座)

  • 商品期货:30 分钟定方向,5 分钟进场。
  • 股指:日线过滤,15 分钟交易(日线需另订 serial,周期秒数更大)。

共同点:长周期只在自己的 bar 收盘后更新“方向缓存”;短周期在自己的 bar 收盘后检查是否允许开仓。

二、订阅:两个 duration、两个 datetime

kl5=api.get_kline_serial(symbol,300,data_length=200)# 300 秒=5 分钟kl30=api.get_kline_serial(symbol,1800,data_length=200)# 1800 秒=30 分钟filter30={"trend":None}# 大周期缓存

symbol仍是具体期货合约,如SHFE.rb2510。两张表的datetime互不干扰:5 分钟表每分钟底可能变一次(交易时段内),30 分钟表大约每 30 分钟变一次。

三、大周期:仅在 30 分钟 datetime 变时更新缓存

api.wait_update()ifapi.is_changing(kl30.iloc[-1],"datetime"):ma30=tafunc.ma(kl30.close,30)filter30["trend"]=kl30.close.iloc[-2]>ma30.iloc[-2]

注意用iloc[-2]作为已收盘的 30 分钟 bar,不要用[-1](仍在形成中)。只有is_changing(..., "datetime")为真,才表示新的 30 分钟 K 线开始,此时上一根 30 分钟才收盘。

四、小周期:5 分钟 datetime 变时再读缓存

ifapi.is_changing(kl5.iloc[-1],"datetime"):iffilter30["trend"]isNone:continueifnotfilter30["trend"]:continue# 在 kl5 的 iloc[-2] 上算入场

若 5 分钟触发了但 30 分钟本轮未更新,filter30["trend"]仍是上一次 30 分钟收盘的结论,这是预期行为。

五、错误做法(期货里很常见)

  • 每帧读kl30.iloc[-1]当过滤:30 分钟未收盘,方向闪烁。
  • is_changing(kl5)不处理 kl30:大周期逻辑过期。
  • 两个周期共用一个last_bar_time变量:周期长度不同,不能共用。

六、data_length 与夜盘

大周期均线周期长,kl30data_length要更大;遇 nan 跳过。夜盘休市时各表datetime不推进,不会凭空触发。

总结

多周期期货策略判断“新 K 线”必须分表、分 datetimeis_changing(kl30.iloc[-1], "datetime")更新大周期缓存,is_changing(kl5.iloc[-1], "datetime")驱动入场,决策价用各自iloc[-2]datetime来自天勤各get_kline_serial返回表,不是本地计时。

弄清“哪个周期、哪一行、哪个字段”,比再堆一个指标公式更重要,能避免大量多周期回测与实盘不一致。

FAQ

1)三个周期?

每个周期一条 serial + 独立 datetime 判断。

2)1 分钟 + 日线?

同理;日线 duration 为一天对应秒数(按文档与交易所规则)。

3)跨品种多周期?

每品种一套 kl 字典。

4)回测要对齐吗?

三环境同一触发逻辑即可。

风险提示

本文讨论技术实现,不构成投资建议。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 13:26:43

从街头乞讨到系统工程:工程师思维在现实场景中的极致应用

1. 从一次街头偶遇,看工程师的“客户画像”与“需求分析”那天下午,我拎着刚买的Levis从华强北的茂业百货出来,站在门口等一个朋友。人来人往的电子元器件集散地,空气中都弥漫着一种焦灼而高效的气息。就在我百无聊赖地刷着手机时…

作者头像 李华
网站建设 2026/6/5 13:25:32

如何轻松管理游戏模组:Reloaded-II框架完整入门指南

如何轻松管理游戏模组:Reloaded-II框架完整入门指南 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 你是否厌倦了复杂的模组安装过程…

作者头像 李华