示例#1
0
 def cancel(self):
     """ If we are asked to be cancelled, we mark ourselves as cancelled 
     and the make the real order also cancelled 
     """
     Base.cancel(self)
     if self._current:
         self._book.process(Cancel(self._current))
示例#2
0
 def __init__(self, side, price, volume):
     """ Initializes order with price and volume
     price is a limit price on which order can be traded
     if there are no suitable orders, the limit order remains in the order book
     """
     Base.__init__(self, side, volume)
     self._price = price
示例#3
0
 def __init__(self, traders = [], strategy = None, PnL = 0, label = None, timeseries = []):
     Base.__init__(self, PnL, timeseries)
     self._traders = []
     self.traders = traders
     self.strategy = strategy
     self._label = label if label else getLabel(self)
     self.label = self._label
     self._alias = [self._label]
示例#4
0
 def __init__(self, orderBook, strategy, label=None, amount = 0, PnL=0, timeseries = []):
     Base.__init__(self, PnL, timeseries)
     self._orderBook = orderBook
     self._amount = amount
     self.strategy = strategy
     self._label = label
     self.label = self._label
     self._alias = [self._label]
示例#5
0
 def onOrderMatched(self, order, price, volume):
     """ Called when a trader's 'order' is traded against 'other' order 
     at given 'price' and 'volume'
     Trader's amount and P&L is updated and listeners are notified about the trade   
     """
     dVolume = volume if order.side == Side.Buy else -volume
     self._amount += dVolume
     Base.onOrderMatched(self, order, price, volume)
示例#6
0
 def __init__(self, side, price, volume):
     """ Initializes order with 'price' and 'volume'
     'limitOrderFactory' tells how to create limit orders
     """
     Base.__init__(self, side, volume)
     # we create a limit order
     self._order = LimitFactory(side)(price, volume)
     # translate its events to our listeners
     self._order.on_matched += self.on_matched.fire
示例#7
0
 def __init__(self, orderBook, strategy, label=None, amount = 0, PnL=0, timeseries = []):
     Base.__init__(self, PnL, timeseries)
     self._orderBook = orderBook
     self._amount = amount
     self._strategy = strategy
     self._subscription = event.subscribe(strategy.on_order_created, _(self).send, self)
     self._label = label
     self.label = self._label
     self._alias = [self._label]
示例#8
0
 def __init__(self, order, delay, sched):
     """ Initializes order with 'price' and 'volume'
     'limitOrderFactory' tells how to create limit orders
     """
     Base.__init__(self, order.side, order.volume)
     self._delay = delay
     # we create a limit order
     self._order = order
     # translate its events to our listeners
     self._order.on_matched += self.on_matched.fire
     self._scheduler = sched
示例#9
0
 def __init__(self, volumeLimit, orderFactory, *args):
     """ Initializes iceberg order
     volumeLimit -- maximal volume for order that can be sent
     orderFactory -- factory to create real orders: *args -> Order
     *args -- parameters to be passed to real orders
     """
     self._args = unpack(args)
     # we pretend that we are an order initially having given volume
     Base.__init__(self, None, self._args._volume)
     self._volumeLimit = volumeLimit
     self._orderFactory = orderFactory
     self._current = None
     self._side = None
示例#10
0
 def __init__(self, side, volume):
     """ Initializes order with volume to trade
     """
     Base.__init__(self, side, volume)
示例#11
0
    def __init__(self, side, orderFactoryT, volume):
        
        Base.__init__(self, side, volume)

        self._factory = orderFactoryT(side)
        self._current = None
示例#12
0
 def send(self, order):
     Base.send(self, self._orderBook, order)
示例#13
0
 def send(self, order, unused = None):
     Base.send(self, self._orderBook, order)
示例#14
0
 def copyTo(self, dst):
     Base.copyTo(self, dst)
     dst._price = self._price