コード例 #1
0
 def process(self, symbol):        
     data = self.services.bus.get_market_data()        
     self.services.logger.info("Market data received %s" % (data))
     
     if self.x >= 0:
         self.services.logger.info("Sending Order Now:")
         o = Order()
         o.side = 1
         o.price = data[symbol]["ask-1"]["price"]
         o.size = 5000000
         o.leaves = o.size
         o.symbol = symbol
         o.id = "MyOrder"
         
         self.services.order_dispatcher.new_order(o)           
     
         self.x += 1
     print "!!!!!!!!!!!!!!!!!!! ", data["a"]["event"]
     if data["a"]["event"] == "trade":
         self.services.publisher.publish("DummyAgent", {"bid": data[symbol]["bid-0"]["price"], 
                                                        "ask": data[symbol]["ask-0"]["price"], 
                                                        "bid_size": data[symbol]["bid-0"]["size"], 
                                                        "ask_size": data[symbol]["ask-0"]["size"],
                                                        "price": data[symbol]["last"]["price"],
                                                        "quantity": data[symbol]["last"]["quantity"], 
                                                        "time":  data[symbol]["time"]})
コード例 #2
0
ファイル: TD1_agent.py プロジェクト: nicoxx/simulator
 def process(self, symbol):        
     data = self.services.bus.get_market_data()        
     
     
     pretty(data) #display market data
     
     l = list()
      
     for item1 in data.items():
         if type(item1[1]) is not datetime and type(item1[1]) is not str:
             for item2 in item1[1].items():
                 if (item2[0][:3] == 'ask' and str(self.parameters["side"]).lower() == "buy") or (item2[0][:3] == 'bid' and str(self.parameters["side"]).lower() == "sell") :
                     l.append((item2[1]["price"], item1[0]))
      
     
     if str(self.parameters["side"]).lower() == "buy":
         l.sort(key=lambda x: x[0])
     else:
         l.sort(key=lambda x: -x[0])
     
     print(l)    #display list of prices by market ordered by prices
     
     self.current_size  = self.parameters["size"]
           
     i = 0
     for pair in l:  
         if self.current_size == 0:  #stop if no more deals
             break
         
         
         o = Order()
         o.side = 1 if str(self.parameters["side"]).lower() == "buy" else -1
         o.price = pair[0]
         
     
         #dont buy / sell if the price is too high or too low
         if o.price < self.parameters["price"] and o.side == -1:
             break
         if o.price > self.parameters["price"] and o.side == 1:
             break
                    
         o.size = self.current_size
         o.leaves = o.size
         o.symbol = pair[1]
         o.id = "MyOrder_" + str(i)
         o.timeinforce = "ioc"
         o.parent = self.parameters["id"]
         
         self.services.logger.info("Sending Order " + str(i))
         self.services.order_dispatcher.new_order(o)
         i = i +1
コード例 #3
0
 def process(self, symbol):        
     data = self.services.bus.get_market_data()        
     self.services.logger.info("Market data received %s" % (data))
     
     self.services.logger.info("Sending Order Now:")
     o = Order()
     o.side = 1 if str(self.parameters["side"]).lower() == "buy" else -1
     o.price = self.parameters["price"]
     o.size = self.parameters["size"]
     o.leaves = o.size
     o.symbol = "Euronext"
     o.id = "MyOrder"
     o.timeinforce = "ioc"
     o.parent = self.parameters["id"]
     
     self.services.order_dispatcher.new_order(o)