def on_trade(self, trade_dict):
self.on_debug('????: %s' % str(trade_dict))
if self._data_update_date != date.today():
self._cache.cache_trade(trade_dict)
else:
account = Environment.get_instance().get_account(trade_dict.order_book_id)
if trade_dict.trade_id in account._backward_trade_set:
return
try:
order = self.order_objects[trade_dict.order_id]
except KeyError:
order = Order.__from_create__(trade_dict.order_book_id,
trade_dict.amount, trade_dict.side, trade_dict.style,
trade_dict.position_effect)
commission = cal_commission(trade_dict, order.position_effect)
trade = Trade.__from_create__(
trade_dict.order_id, trade_dict.price, trade_dict.amount,
trade_dict.side, trade_dict.position_effect, trade_dict.order_book_id, trade_id=trade_dict.trade_id,
commission=commission, frozen_price=trade_dict.price)
order.fill(trade)
self._env.event_bus.publish_event(RqEvent(EVENT.TRADE, account=account, trade=trade))
评论列表
文章目录