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"]})
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
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)