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 )