VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 38
声望: 1

` 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秒了,有没有出现这种可能呢?
这是不是有问题呢?

Member
avatar
加入于:
帖子: 38
声望: 1

https://github.com/vnpy/vnpy_ctp/issues/34
我在github上也发了这个疑问,担心github没人看,所以发在论坛希望有人能解惑,

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】