CTA回测成交记录异常,如下图所示,红色框框内累计开仓7手,self.pos=7(之前持仓已经全部平仓),然后策略全部平仓,怎么平仓了4手,6手,7手?根本持仓只有7手。然后又多平10手才恢复正常
CTA回测成交记录异常,如下图所示,红色框框内累计开仓7手,self.pos=7(之前持仓已经全部平仓),然后策略全部平仓,怎么平仓了4手,6手,7手?根本持仓只有7手。然后又多平10手才恢复正常
这个需要自己在策略内部先基于策略逻辑和委托请求打印排查,看看策略行为是按照策略逻辑正常执行请求还是回测框架错误执行了策略请求
xiaohe wrote:
这个需要自己在策略内部先基于策略逻辑和委托请求打印排查,看看策略行为是按照策略逻辑正常执行请求还是回测框架错误执行了策略请求
如下图所示,打印委托记录如下,发现是回测框架错误执行了策略请求,,累计开仓7手,self.pos=7(之前持仓已经全部平仓),然后策略全部平仓,怎么平仓了4手,6手,7手? 持仓共计只有7手啊,怎么可能持仓7手,可以平仓17手出来。 这种情况很少出现,13年回测数据,只有出现2次。看了一下k线图表,如下图所示,开仓与平仓时行情很极端,都是在1分钟内开仓后然后平仓,并且平仓使用的是停止单,开仓是同时挂出平仓止损止盈的停止单。 感觉像是平仓时获取到的self.pos有延迟造成的,,这个问题该如何解决呢? 这个是否属于回测框架的问题,还是策略逻辑的问题?
打印策略逻辑和委托请求,不是委托记录
xiaohe wrote:
打印策略逻辑和委托请求,不是委托记录
经排查发现是使用的vnpy3.9版本自带的海龟策略,在on_trade里面添加了止损逻辑,10分钟k线周期内,同时触发了开仓与平仓的停止单,导致回测异常,,,该如何避免这种极端行情下的这类现象呢?望指导一下
那就需要自己优化策略逻辑了