VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 3
声望: 0

各位大神,在使用CSV文件进行回测时,请问为啥历史数据会重复交易?为啥到了end date没停下来?
为了debug策略统计指标都为零的问题,设置的回测周期只有两个月,发现历史数据会重复交易。
start = datetime(2008, 1, 2),
end = datetime(2008, 2, 24),
根据交易结果,第一笔是在2008, 1, 11, 9, 3,按照设置的日期,最后一笔交易应该是在2008, 2, 22, 9。
但是发现完成2008, 2, 22, 9交易后,系统又有2008, 1, 2, 9, 5交易,并且在2008, 1, 11, 9, 3出现重复交易记录
self.trades['BACKTESTING.1']
Out [14]: TradeData(gateway_name='BACKTESTING', extra=None, symbol='a', exchange=<Exchange.DCE: 'DCE'>, orderid='1', tradeid='1', direction=<Direction.LONG: '多'>, offset=<Offset.OPEN: '开'>, price=4798.789, volume=1, datetime=datetime.datetime(2008, 1, 11, 9, 35))

self.trades['BACKTESTING.43']
Out [16]: TradeData(gateway_name='BACKTESTING', extra=None, symbol='a', exchange=<Exchange.DCE: 'DCE'>, orderid='44', tradeid='43', direction=<Direction.LONG: '多'>, offset=<Offset.OPEN: '开'>, price=4798.789, volume=1, datetime=datetime.datetime(2008, 1, 11, 9, 35))

感谢感谢。

Member
avatar
加入于:
帖子: 1472
声望: 105

如果你的策略逻辑中,同时下了多个委托,并且在同一时间点满足成交条件,就会存在上述情况,这个是正常的回测结果

想要避免的话就要自己在策略逻辑中加控制,确保每个时刻只有自己想要的委托挂在外面,其他的应该撤掉

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】