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
...
...