Exemplo n.º 1
0
 def onOrder(self, order):
     #print "onOrder"
     # order object contains names
     # orderstate object contains actual objects
     # XXX These assertions should be accept/rejects
     assert not self.ordersByClOrdID.has_key( order.clOrdID)
     assert not self.openOrdersByClOrdID.has_key( order.clOrdID)
     os = OrderState(order)
     #account = self.accountManager.getUnique( lambda x: x.name==order.account)
     #os.account = account
     print "Type of security is %s %s" % (type(order.security), order.security )
     #security = self.securityManager.getUnique( lambda x:  order.security.upper() in [ x.ticker.upper(), x.ric.upper() ] )
     #os.security = security
     os.setPortfolios( self.portfolioManager.portfoliosForOrder( os ) )
     self.ordersByClOrdID[ order.clOrdID ] = os
     self.openOrdersByClOrdID[ order.clOrdID ] = os
     self.numOrders += 1
     
     if not self.recoveryManager.inRecovery:
         self.fixApplication.send_order(order)
         self.persister.writeObject( order )
     if self.orderStateListener:
         self.orderStateListener.notify( os )
Exemplo n.º 2
0
    def getCopyableState(self):
        d = self.__dict__
        d['security'] = d['security'].ric
        d['account'] = d['account'].name
        d['broker'] = d['broker'].name

    def __repr__(self):
        return "Order: %s %s %s %s %s %s" % (self.clOrdID, self.side.name,
                                             self.orderQty, self.security,
                                             self.px, self.account)


if __name__ == '__main__':
    o1 = Order('order1', 'MSFT', 100, Side.BUY)
    o2 = Order('order2', 'MSFT', 200, Side.SELL)
    os1 = OrderState(o1)
    os2 = OrderState(o2)

    e1 = Execution(ExecType.PARTIAL_FILL, 'exec1', 'order1', Side.BUY, 50,
                   'MSFT', 40.25)
    e2 = Execution(ExecType.FILL, 'exec2', 'order1', Side.BUY, 50, 'MSFT',
                   41.0)
    e3 = Execution(ExecType.FILL, 'exec3', 'order2', Side.SELL, 100, 'MSFT',
                   41.0)
    e4 = Execution(ExecType.FILL, 'exec4', 'order2', Side.SELL, 50, 'MSFT',
                   40.5)
    e5 = Execution(ExecType.FILL, 'exec5', 'order2', Side.SELL, 50, 'MSFT',
                   41.5)

    #e6 = Execution()
    os1.apply(e1)
Exemplo n.º 3
0
        self.sender    = sender
        #self.volume    = 0.0

    def getCopyableState(self):
        d = self.__dict__
        d['security'] = d['security'].ric
        d['account']  = d['account'].name
        d['broker']   = d['broker'].name

    def __repr__(self):
        return "Order: %s %s %s %s %s %s" % ( self.clOrdID, self.side.name, self.orderQty, self.security, self.px, self.account)

if __name__=='__main__':
    o1 = Order( 'order1', 'MSFT', 100, Side.BUY)
    o2 = Order( 'order2', 'MSFT', 200, Side.SELL)
    os1 = OrderState(o1)
    os2 = OrderState(o2)
    
    e1 = Execution( ExecType.PARTIAL_FILL, 'exec1', 'order1', Side.BUY,  50, 'MSFT', 40.25)
    e2 = Execution( ExecType.FILL,         'exec2', 'order1', Side.BUY,  50, 'MSFT', 41.0)
    e3 = Execution( ExecType.FILL,         'exec3', 'order2', Side.SELL, 100, 'MSFT', 41.0)
    e4 = Execution( ExecType.FILL,         'exec4', 'order2', Side.SELL, 50, 'MSFT',  40.5)
    e5 = Execution( ExecType.FILL,         'exec5', 'order2', Side.SELL, 50, 'MSFT',  41.5)

    #e6 = Execution()
    os1.apply(e1)
    os1.apply(e2)
    os2.apply(e3)
    os2.apply(e4)
    os2.apply(e5)