Closed slashqiang closed 6 years ago
国内商品期货,夜盘时间属于下一个交易日。 所以,对于有夜盘的品种,每个交易日范围开始是上一交易如日的夜盘开盘,到本日下午收盘。tushare的bar()方法返回中用两个字段标识这种区别:date(物理时间)和trade_date(所属交易日) 所以,回测中以1M的bar为例,D日的第一个到达的quote应该是trade_date==D交易日的210100(物理时间date是D-1日的210100),最后一个是trade_date==D交易日的150000。
而现在回测框架中,似乎把两个时间混淆了。回测中第一个到达的quote是trade_date==D日的90000,最后一个是trade_date==D日的夜盘收盘。这样造成了同一个交易日的日盘和夜盘两段时间到达相反了,应该是“先夜后日”,变成了“先日后夜”。
建议直接遵循tushare中bar()方法返回DataFrame的顺序,是按实际发生顺序排列的。
感谢反馈,由于在df.groupby()函数中会默认sort,导致本来按实际发生顺序排列的quotes出错。
df.groupby()
目前已经修复。
赞及时! 已经提交了吗?貌似从master上clone下来的还是有问题……
今晚会提交,提交后在issue里@你
@slashqiang 已经提交
thx a lot~~
国内商品期货,夜盘时间属于下一个交易日。 所以,对于有夜盘的品种,每个交易日范围开始是上一交易如日的夜盘开盘,到本日下午收盘。tushare的bar()方法返回中用两个字段标识这种区别:date(物理时间)和trade_date(所属交易日) 所以,回测中以1M的bar为例,D日的第一个到达的quote应该是trade_date==D交易日的210100(物理时间date是D-1日的210100),最后一个是trade_date==D交易日的150000。
而现在回测框架中,似乎把两个时间混淆了。回测中第一个到达的quote是trade_date==D日的90000,最后一个是trade_date==D日的夜盘收盘。这样造成了同一个交易日的日盘和夜盘两段时间到达相反了,应该是“先夜后日”,变成了“先日后夜”。
建议直接遵循tushare中bar()方法返回DataFrame的顺序,是按实际发生顺序排列的。