QMT handlebar 和 run_time 怎么选
写 QMT 策略时最常纠结:逻辑放 handlebar 还是 run_time?选错会出现「回测很好、实盘时钟对不上」或「回测里定时根本不跑」。
不构成投资建议。
一句话
| 你想要什么 | 用哪个 |
|---|---|
| 跟 K 线走(均线、突破、收盘调仓) | handlebar |
| 墙上时钟到点就跑(9:31 买、14:50 清) | run_time(仅盘中) |
| 回测里验证「到点」逻辑 | 必须写进 handlebar,用时间过滤 |
run_time 回测不执行,详见 run_time 回测不跑。
对照
| handlebar | run_time | |
|---|---|---|
| 驱动 | 主图 K 线推进 | 系统定时器 |
| 回测 | 可以 | 否 |
| 实盘 | 可以 | 可以 |
| 典型用途 | 信号、仓位、画线 | 定点轮询、拉信号、对时下单 |
还有 subscribe_quote:事件推送,回测也不走。见 运行机制对比。
推荐写法
盘中要 9:31 买、又要能回测:
python
#coding:gbk
def init(C):
C.last_day = ''
# 实盘可再挂 run_time;回测靠下面 handlebar
start = '2019-01-01 09:31:00'
C.run_time('do_buy', '60nSecond', start)
def do_buy(C):
_try_buy(C)
def handlebar(C):
if not C.is_last_bar():
return
# 回测路径:用 K 线时间判断是否到点
_try_buy(C)
def _try_buy(C):
# 日期戳卡住,一天只跑一轮
pass「一天只跑一次」见 只跑一次 / 日期戳。聚宽模拟盘接到本机、用定时拉信号,见 信号同步。
