def sell(self, btcamount, limit): args = {} args['type'] = 'ask' args['amount_int'] = btcamount * 1e8 args['price_int'] = limit * 1e5 #if limit < self.getLastTradePrice(): # print 'Limit is below current price, market orders not allowed' # return -1 if simulation == 1: print time.ctime( ) + ': Order submitted: SELL %2.2f BTC at $%2.2f' % (btcamount, limit) return 'test_oid_sell' else: data = requester().perform(requester().submitorder, args) if data['result'] == 'success': print time.ctime( ) + ': Order submitted: SELL %2.2f BTC at $%2.2f' % (btcamount, limit) return data['return'] else: print 'Order failed' print data['error'] return -1
def cancel(self, oid): args = {} args['oid'] = oid data = requester().perform(requester().cancelorder, args) if data['result'] == 'success': print 'Order cancelled successfully: %s' % (data['return']['qid']) return (data['return']['qid'], data['return']['oid']) else: print 'Cancel failed' print data['error'] return -1
def cancel(self, oid): args = {} args['oid'] = oid data = requester().perform(requester().cancelorder, args) if data['result'] == 'success': print 'Order cancelled successfully: %s'%(data['return']['qid']) return (data['return']['qid'], data['return']['oid']) else: print 'Cancel failed' print data['error'] return -1
def trackSearch(self, track): page = 1 args = {} args['type'] = 'track' args['terms'] = track args['page'] = page res = json.loads(requester().perform(requester().search, args)) num_results = min(res['info']['limit'], res['info']['num_results']) # Only return exact matches and only need title/artist/album items = [] max_pop = 0 max_pop_idx = 0 while len(items) == 0 and page < 5: for x in range(0, num_results - 1): if re.match('^' + track + '$', res['tracks'][x]['name'], flags=re.IGNORECASE): title = res['tracks'][x]['name'] artist = res['tracks'][x]['artists'][0]['name'] album = res['tracks'][x]['album']['name'] pop = res['tracks'][x]['popularity'] if float(pop) > max_pop: max_pop = float(pop) max_pop_idx = len(items) items.append({ 'title': title, 'artist': artist, 'album': album, 'popularity': pop }) page = page + 1 args['page'] = page res = json.loads(requester().perform(requester().search, args)) num_results = len(res['tracks']) final_results = { 'search_term': track, 'max_pop': max_pop, 'max_pop_idx': max_pop_idx, 'num_results': len(items), 'items': items } if len(items) > 0: print(' - found') else: print(' - not found') return json.dumps(final_results)
def getOrderResult(self, oid): args = {} args['order'] = oid data = requester().perform(requester().openorders, args) idx = -1 for i in range(0, len(data['return'])): if data['return'][i]['oid'] == oid: idx = i if len(data['return']) == 0: return -1 elif idx == -1: return 1 else: return data['return'][idx]
def getOrderResult(self, oid): args = {} args['order'] = oid data = requester().perform(requester().openorders, args) idx = -1 for i in range(0, len(data['return'])): if data['return'][i]['oid'] == oid: idx = i if len(data['return']) == 0: return -1 elif idx == -1: return 1 else: return data['return'][idx]
def buy(self, btcamount, limit): args = {} args['type'] = 'bid' args['amount_int'] = btcamount*1e8 args['price_int'] = limit*1e5 #if limit > self.getLastTradePrice(): # print 'Limit is above current price, market orders not allowed' # return -1 if simulation == 1: print time.ctime() + ': Order submitted: BUY %2.2f BTC at $%2.2f'%(btcamount,limit) return 'test_oid_buy' else: data = requester().perform(requester().submitorder, args) if data['result'] == 'success': print time.ctime() + ': Order submitted: BUY %2.2f BTC at $%2.2f'%(btcamount,limit) return data['return'] else: print 'Order failed' return -1
def trackSearch(self, track): page = 1 args = {} args['type'] = 'track' args['terms'] = track args['page'] = page res = json.loads(requester().perform(requester().search, args)) num_results = min(res['info']['limit'], res['info']['num_results']) # Only return exact matches and only need title/artist/album items = [] max_pop = 0 max_pop_idx = 0 while len(items)==0 and page < 5: for x in range(0, num_results-1): if re.match('^' + track + '$', res['tracks'][x]['name'], flags=re.IGNORECASE): title = res['tracks'][x]['name'] artist = res['tracks'][x]['artists'][0]['name'] album = res['tracks'][x]['album']['name'] pop = res['tracks'][x]['popularity'] if float(pop) > max_pop: max_pop = float(pop) max_pop_idx = len(items) items.append({'title':title, 'artist':artist, 'album':album, 'popularity':pop}) page = page + 1 args['page'] = page res = json.loads(requester().perform(requester().search, args)) num_results = len(res['tracks']) final_results = {'search_term':track, 'max_pop':max_pop, 'max_pop_idx':max_pop_idx, 'num_results':len(items), 'items':items} if len(items)>0: print(' - found') else: print(' - not found') return json.dumps(final_results)
def getTickerData(self): return requester().perform(requester().ticker, {})
def getTradeData(self, args={}): return requester().perform(requester().trades, args)
def getAllOrders(self): data = requester().perform(requester().openorders, {}) return data['return']
def getOpenOrders(self): return requester().perform(requester().openorders, {})
def getFinishedOrder(self, thistype, oid): args = {} args['type'] = thistype args['order'] = oid return requester().perform(requester().orderresults, args)
def getAllOrders(self): data = requester().perform(requester().openorders, {}) return data['return']
def getLagData(self): return requester().perform(requester().lag, {})
def getTickerData(self): return requester().perform(requester().ticker, {})
def getTradeData(self, args={}): return requester().perform(requester().trades, args)
def getGenericData(self): return requester().perform(requester().generic, {})
def getGenericData(self): return requester().perform(requester().generic, {})
def getUSDHistory(self, type={}): args = {} args['currency'] = 'USD' args['type'] = type return requester().perform(requester().history, args)
def getDepth(self): return requester().perform(requester().depth, {})
def getOpenOrders(self): return requester().perform(requester().openorders, {})
def getDepth(self): return requester().perform(requester().depth, {})
def getLagData(self): return requester().perform(requester().lag, {})
def getUSDHistory(self, type={}): args = {} args['currency'] = 'USD' args['type'] = type return requester().perform(requester().history, args)
def getFinishedOrder(self, thistype, oid): args = {} args['type'] = thistype args['order'] = oid return requester().perform(requester().orderresults, args)