def __init__(self): """ Initializes trader by order books for the asset from different markets """ MultiAssetStrategy.__init__(self) from blist import sorteddict # order queues ordered by their best asks and bids # something like std::map<Ticks, OrderQueue>[2] self._bests = [sorteddict(), sorteddict()] self._oldBests = {}
def bind_impl(self, context): MultiAssetStrategy.bind_impl(self, context) self._traders = [t for t in self._trader.traders] self._books = [t.orderBook for t in self._trader.traders] def regSide(side): for book in self._books: queue = book.queue(side) event.subscribe(queue.bestPrice, _(self, side)._schedule, self, {}) if not queue.empty: self._bests[side.id][queue.best.signedPrice] = queue self._oldBests[queue] = queue.best.signedPrice regSide(Side.Buy) regSide(Side.Sell)