quantOS-org / JAQS

http://www.quantos.org/jaqs/
Other
619 stars 343 forks source link

回测框架中quote的到达次序有误(国内期货) #19

Closed slashqiang closed 6 years ago

slashqiang commented 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的顺序,是按实际发生顺序排列的。

deephbz commented 6 years ago

感谢反馈,由于在df.groupby()函数中会默认sort,导致本来按实际发生顺序排列的quotes出错。

目前已经修复。

slashqiang commented 6 years ago

赞及时! 已经提交了吗?貌似从master上clone下来的还是有问题……

deephbz commented 6 years ago

今晚会提交,提交后在issue里@你

deephbz commented 6 years ago

@slashqiang 已经提交

slashqiang commented 6 years ago

thx a lot~~