OmsEngine从消息引擎订阅持仓消息

1. OmsEngine.register_event()注册EVENT_POSITION的处理句柄

    def register_event(self) -> None:
        """"""
        self.event_engine.register(EVENT_TICK, self.process_tick_event)
        self.event_engine.register(EVENT_ORDER, self.process_order_event)
        self.event_engine.register(EVENT_TRADE, self.process_trade_event)
        self.event_engine.register(EVENT_POSITION, self.process_position_event)
        self.event_engine.register(EVENT_ACCOUNT, self.process_account_event)
        self.event_engine.register(EVENT_CONTRACT, self.process_contract_event)

2. 连接网关后得到交易服务器的持仓推送

    def process_position_event(self,event:Event) -> None:
        """  """
        position:PositionData = event.data
        self.positions[position.vt_positionid] = position

        print(f"oms process_position_event ! {datetime.now()}")

3. 每4秒推送一次持仓,可以看到:

运行方式:python -m vnstation

oms process_position_event ! 2020-09-25 08:22:09.572302
oms process_position_event ! 2020-09-25 08:22:13.575021
oms process_position_event ! 2020-09-25 08:22:17.572799
oms process_position_event ! 2020-09-25 08:22:21.576441
oms process_position_event ! 2020-09-25 08:22:25.580222
  ...
  ...