实盘的时候,比如策略订阅的是rb2310,那初始化用的数据,是从vnpy默认的sqilite3里面的rb2310数据(也就是做回测的历史数据)来初始化么?那回测历史数据的合约代码要和实盘一模一样了,比如都要写rb2310.SHFE,而不能写RB2310.SHFE?
还有一个更重要的问题,就是我12日把策略放到仿真里面跑,两天过去都没交易。但是我放在回测里跑,12日当天是有交易的,为什么仿真和回测的结果不一样呢?策略本身是一模一样的,可能有哪些原因呢?
实盘的时候,比如策略订阅的是rb2310,那初始化用的数据,是从vnpy默认的sqilite3里面的rb2310数据(也就是做回测的历史数据)来初始化么?那回测历史数据的合约代码要和实盘一模一样了,比如都要写rb2310.SHFE,而不能写RB2310.SHFE?
还有一个更重要的问题,就是我12日把策略放到仿真里面跑,两天过去都没交易。但是我放在回测里跑,12日当天是有交易的,为什么仿真和回测的结果不一样呢?策略本身是一模一样的,可能有哪些原因呢?
一般来说程序是先尝试调取datafeed,然后是database
看一下你的策略,或许仿真那边没有启动策略引擎
间客有福 wrote:
实盘的时候,比如策略订阅的是rb2310,那初始化用的数据,是从vnpy默认的sqilite3里面的rb2310数据(也就是做回测的历史数据)来初始化么?那回测历史数据的合约代码要和实盘一模一样了,比如都要写rb2310.SHFE,而不能写RB2310.SHFE?
是的
还有一个更重要的问题,就是我12日把策略放到仿真里面跑,两天过去都没交易。但是我放在回测里跑,12日当天是有交易的,为什么仿真和回测的结果不一样呢?策略本身是一模一样的,可能有哪些原因呢?
可以自己打印一下策略指标和交易状态看看是不是历史数据不够策略初始化导致的
好的,谢谢两位,我再检查下。
xiaohe wrote:
可以自己打印一下策略指标和交易状态看看是不是历史数据不够策略初始化导致的
没错,是初始化的问题。原来回测的load_bar少了,会自动用所有历史数据来初始化,所以初始化没问题,但实盘就以load_bar多少数据来初始化,我之前就是load_bar太少了,导致仿真一直没交易。感谢。