def update_orders(self): fee = .01*self.queryManager.get_account()['fee'] span = calcSpan(self.vertex,fee) bidPrice = self.vertex-span['bid'] askPrice = self.vertex+span['ask'] bidId = self.__getId(bidPrice) askId = self.__getId(askPrice) if not askId and not bidId: bidId = self.queryManager.buy_btc(self.amount, bidPrice)['id'] askId = self.queryManager.sell_btc(self.amount, askPrice,)['id'] elif not askId: self.vertex = askPrice span = calcSpan(self.vertex,fee) bidPrice = self.vertex-span['bid'] askPrice = self.vertex+span['ask'] bidId = self.queryManager.buy_btc(self.amount, bidPrice)['id'] askId = self.queryManager.sell_btc(self.amount, askPrice,)['id'] elif not bidId: self.vertex = bidPrice span = calcSpan(self.vertex,fee) bidPrice = self.vertex-span['bid'] askPrice = self.vertex+span['ask'] bidId = self.queryManager.buy_btc(self.amount, bidPrice)['id'] askId = self.queryManager.sell_btc(self.amount, askPrice,)['id'] orders = self.queryManager.get_orders() for order in orders: if (order['id'] != bidId) and (order['id'] != askId): self.queryManager.cancel_order(order['id'])
def update_orders(self): pct = self.pct accountQry = self.queryManager.get_account() fee = 0.004 usd = accountQry['balance']['usd'] btc = accountQry['balance']['btc'] vertex = (usd/pct-usd)/btc span = calcSpan(vertex,fee) if (vertex%span['bid']) <= (span['bid']/2): vertex -= vertex%span['bid'] else: vertex += span['bid'] - (vertex%span['bid']) span = calcSpan(vertex,fee) bidPrice = vertex-span['bid'] askPrice = vertex+span['ask'] fee = -.001 bidAmount = (usd-pct*usd-pct*btc*bidPrice)/bidPrice bidAmount -= .5*bidAmount*fee askAmount = fabs((usd-pct*usd-pct*btc*askPrice)/askPrice) askAmount -= .5*askAmount*fee oldOrders = self.queryManager.get_orders() bidId = '' askId = '' for order in oldOrders: if fabs(order['price']-bidPrice)<0.001: bidId = order['id'] if fabs(order['price']-askPrice)<0.001: askId = order['id'] if not bidId: bidQry = self.queryManager.buy_btc(bidAmount, bidPrice) bidId = bidQry['id'] if not askId: askQry = self.queryManager.sell_btc(askAmount, askPrice) askId = askQry['id'] idList = [] for order in oldOrders: idList.append(order['id']) for oid in idList: if (oid != bidId) and (oid != askId): self.queryManager.cancel_order(oid)
def update_orders(self): pct = self.pct accountQry = self.queryManager.get_account() fee = 0.01 * (accountQry["fee"]) usd = accountQry["balance"]["usd"] btc = accountQry["balance"]["btc"] vertex = (usd / pct - usd) / btc span = calcSpan(vertex, fee) if (vertex % span["bid"]) <= (span["bid"] / 2): vertex -= vertex % span["bid"] else: vertex += span["bid"] - (vertex % span["bid"]) span = calcSpan(vertex, fee) bidPrice = vertex - span["bid"] * 1.5 askPrice = vertex + span["ask"] * 1.5 bidAmount = (usd - pct * usd - pct * btc * bidPrice) / bidPrice bidAmount -= 0.5 * bidAmount * fee askAmount = fabs((usd - pct * usd - pct * btc * askPrice) / askPrice) askAmount -= 0.5 * askAmount * fee oldOrders = self.queryManager.get_orders() bidId = "" askId = "" for order in oldOrders: if fabs(order["price"] - bidPrice) < 0.001: bidId = order["id"] if fabs(order["price"] - askPrice) < 0.001: askId = order["id"] if not bidId: bidQry = self.queryManager.buy_btc(bidAmount, bidPrice) bidId = bidQry["id"] if not askId: askQry = self.queryManager.sell_btc(askAmount, askPrice) askId = askQry["id"] idList = [] for order in oldOrders: idList.append(order["id"]) for oid in idList: if (oid != bidId) and (oid != askId): self.queryManager.cancel_order(oid)
def testSpan(): fee = 0.006 i = 0 random.seed() passed = True while i < 100: randPrice = float(random.randrange(100,1000))/100 span = calcSpan(randPrice, fee) askspan = (randPrice+span)*fee*2 msg = '@ '+str(randPrice)+' span >'+str(askspan)+'... :'+str(span) print msg if not (span>askspan): passed = False i += 1 print passed
def printDepth(): depth = translator.getDepth() for key in depth.keys(): print key for order in depth[key]: print str(order) def printOrders(): orderList = translator.getOrders() for order in orderList: print order def testSpan(): fee = 0.006 i = 0 random.seed() passed = True while i < 100: randPrice = float(random.randrange(100,1000))/100 span = calcSpan(randPrice, fee) askspan = (randPrice+span)*fee*2 msg = '@ '+str(randPrice)+' span >'+str(askspan)+'... :'+str(span) print msg if not (span>askspan): passed = False i += 1 print passed print calcSpan(5.6,.006)