Beispiel #1
0
    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 = {}
Beispiel #2
0
    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)