在CTP的order回报中。关于时间的字段有很多:
///报单日期
TThostFtdcDateType InsertDate;
///委托时间
TThostFtdcTimeType InsertTime;
///激活时间
TThostFtdcTimeType ActiveTime;
///挂起时间
TThostFtdcTimeType SuspendTime;
///最后修改时间
TThostFtdcTimeType UpdateTime;
///撤销时间
TThostFtdcTimeType CancelTime;
自己看了下vnpy的代码,
在object.py 当中定义的OrderData 有两个时间字段,datetime: datetime = None 和 cancel_time: str = ""
在ctp_gateway.py 当中的onRtnOrder里边,有timestamp = f"{data['InsertDate']} {data['InsertTime']}"
疑问1)OrderData 的datetime代表什么?
测试在CTA策略模块里,下委托单后,打印每次收到on_order 里边的datetime,时间是变化的,而且比tick行情的时间早?
例如 09:45:10.400 tick行情触发下单,然后在on_order收到的情况是:09:45:09 提交中;09:45:09 提交中;09:45:10全部成交;
从上面的代码来看,OrderData 当中的datetime应该是委托报单时间才对?这个时间应该是ctp报过来的,不是本地时间对吧?那为什么会实际收到的变化的时间呢?
2)怎么可以在orderdata对象中增加对应CTP里边的CancelTime撤单时间 和 UpdateTime最后更新时间(我理解就是order的全部成交时间)?
在ctp_gateway.py 当中的data有定义data['CancelTime']吗,哪里可以增加这个定义,从而让接口有这个数据? 然后在ctp_gateway.py 的onRtnOrder添加一行 canceltime = data[CancelTime]? 同样的,这笔委托的最后更新时间 updatetime = data[updateTime]?
感谢!