Closed kkqy closed 2 years ago
def onRtnDepthMarketData(self, data: dict) -> None: """行情数据推送""" # 过滤没有时间戳的异常行情数据 if not data["UpdateTime"]: return # 过滤还没有收到合约数据前的行情推送 symbol: str = data["InstrumentID"] contract: ContractData = symbol_contract_map.get(symbol, None) if not contract: return # 对大商所的交易日字段取本地日期 if not data["ActionDay"] or contract.exchange == Exchange.DCE: date_str: str = self.current_date else: date_str: str = data["ActionDay"]
几大交易所的TradingDay和ActionDay定义都不一样, 看了一下,因为大商所的ActionDay比较特殊,它实际上应该是TradingDay,所以vnpy的CTP模块的源码里,如果是大商所的行情,日期就取本地日期。 但是这样做是否会有隐患? 虽然联网的电脑或者服务器都有网络时间校准,但是也有极端情况 比如行情是 1号 晚上23点59分59秒:500毫秒 的,但是到达本地的时候,因为网络延迟或者本地时间误差,本地时间已经是2号0点了,如果替换成本地日期,那就变成 2号 23点59分59秒了,有没有出现这种可能呢? 这是不是有问题呢?
大商所合约目前没有越过夜盘12点的
几大交易所的TradingDay和ActionDay定义都不一样, 看了一下,因为大商所的ActionDay比较特殊,它实际上应该是TradingDay,所以vnpy的CTP模块的源码里,如果是大商所的行情,日期就取本地日期。 但是这样做是否会有隐患? 虽然联网的电脑或者服务器都有网络时间校准,但是也有极端情况 比如行情是 1号 晚上23点59分59秒:500毫秒 的,但是到达本地的时候,因为网络延迟或者本地时间误差,本地时间已经是2号0点了,如果替换成本地日期,那就变成 2号 23点59分59秒了,有没有出现这种可能呢? 这是不是有问题呢?