新手请教个关于多周期策略回测的问题。
比如,策略是 观察到价格在 1分钟, 5 分钟 同时发生MACD 金叉时买入。
设计如下程序
主程序 为 程序每分钟循环一次。每次循环都计算1分钟MACD 判断是否金叉 。 数据采集使用的函数,参数为 records = $.GetRecords(exchange, 1) 如果到了5分钟整数倍, 就多计算一次5分钟 MACD ,判断是否金叉。 数据采集函参为 。 records = $.GetRecords(exchange, 5)
循环休息时间 为1 分钟 sleep(60000) // 60秒。
回测时 采用周期律为 1分钟。 但出现的问题是 : 程序在回测时5分钟 MACD 总是计算不对。 而1分钟MACD没有问题。
请教下高手, 这个问题怎么解决?
另外, 如果用 sleep(6000) 设定休息间隔, 会遇到循环体计算时间长, 可能带来无法时间整点对齐 问题。
比如 希望程序唤醒时间是 10:00:00 , 10:01 :00 , 10:02:00 … . 但实际唤醒时间后延到 10:00:02 , 10:01:05 … 这样累计时间误差大。
请高手指点一二。
caitouwh 谢谢小梦的回复! 另外有关多周期回测,我后来发现如果用策略广场的高精度回测模板, 可以在短周期内可以从1分钟K线中过滤出5分钟或10分钟K线, 部分满足多周期测试的需求 。