QMT get_full_tick 回测为什么不能用
回测里调 get_full_tick 拿不到像样的盘口,或策略表现和盘中完全两样——这是机制问题。
结论
get_full_tick 面向当前全推行情,不是按历史 K 线回放的接口。回测应使用 get_market_data_ex(或手册里的历史行情接口)按 bar 取数。
| 接口 | 回测 | 盘中运行 |
|---|---|---|
get_market_data_ex | 可以(本地行情要先补数据) | 可以 |
get_full_tick | 不适合当回测主行情 | 可以 |
subscribe_quote | 否 | 可以 |
改法
python
#coding:gbk
def handlebar(C):
if not C.is_last_bar():
return
# 回测 / 通用:按周期取 K 线
data = C.get_market_data_ex(
['close'], ['000001.SZ'], '1d',
count=20, subscribe=False
)
# 盘中要盘口时,再在运行模式里用 get_full_tick盘中要 tick / 盘口,见 如何获取盘口。拿不到实时行情先查 为什么获取不到实时行情。
本地缺历史时,在客户端「数据管理」里按周期补充;subscribe=False 走本地文件,不受订阅数限制,但要先下好数据。
