3.49K 浏览
1

天勤回测时经常出现在开盘时信号本应在开盘的第一个周期结束的收盘价后出现信号,但是回测时却显示出现在前一天收盘,而真实情况是前一天收盘时是没有信号发生的。很多使用crossup,crossdown产生信号的变成都无法得到准确回测结果。如果是收盘时没产生信号,而在开盘时产生的信号,那么开仓价格应该时开盘价格。而实际上回测给的时昨天收盘价开仓。但是明显是开盘前,前一天收盘时时没产生信号的。

lizc9999 编辑评论 2020年6月19日

1.63的版本存在上边的问题,升级到1.8后,这个问题好像解决了,开仓价是用的距离开盘最小K线单位时间间隔的收盘价,如果小于1分钟就是用设定的K线时间,如果大于1分钟使用的是开盘后59秒的价格,不是使用的开盘价,不过这个样比1.63准确度是提高了不少,基本可以使用了。

0

我也遇到同样的问题,而且在夜盘开盘时挂的限价单,会被识别为前一个交易日收盘时的单,如果未成交会被自动撤销。

开盘价3641,挂限价单3631,使用1小时K线行情,准备在22:00主动判断是否成交,但是在系统回测时,自动撤单了。希望解答。

lizc9999 发表新评论 2020年6月19日

升级一下你的TQSDK版本到1.8,可以解决

我用的就是1.8的sdk,这个问题还在的,给我当收盘自动撤单了。

TQSDK里边的 close的使用都涉及到这个问题,close.iloc[-1]我试了很多次都不是真正的信号收盘价,而是信号出现后的第一各最小时间单位K线的收盘价。这个一直是存在的误差。