从数据库查询数据的时候:
s: ModelSelect = (
DbBarData.select().where(
(DbBarData.symbol == symbol)
& (DbBarData.exchange == exchange.value)
& (DbBarData.interval == interval.value)
& (DbBarData.datetime >= start)
& (DbBarData.datetime <= end)
).order_by(DbBarData.datetime)
)
order_by(DbBarData.datetime)其实可以改成order_by(DbBarData.id),个人觉得有如下几个好处
1, 从行情数据的角度, 有时候会对历史数据的datetime改成TradingDate, 而不是ActionDate(vnpy统一用的是ActionDate), 如果改成order_by(DbBarData.id)会兼容TradingDate和ActionDate两种日期
2, 即便开启行情记录引擎, 虽然TradingDate的行情和ActionDate的行情会混杂, 但是用order_by(DbBarData.id)排序的话, 并不会影响诸如K线图生成(需要在manager那里注释掉按日期排序)/回测(需要在manager那里注释掉按日期排序)/大于一分钟K线的合成
个人见解, 欢迎大家补充如果改成DbBarData.id有可能带来的影响