filename1) with open(filepath, 'r') as f: data = f.read() if data == "": data = {} else: data = json.loads(data) data1 = {} timeStr = datetime.datetime.now( datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%f%Z") orders = client.get_order_book(ticker, limit=999999) #print("Orders:", orders) recent_orders = client.get_recent_orders(ticker, limit=99999) #print("recent orders", recent_orders) #print(recent_orders) data[timeStr] = {"buys": orders['BUY'], "sells": orders['SELL']} data1[timeStr] = np.array(recent_orders) #print(f'DEBUG writing data: {data} \n data1: {data1}') with open(filepath, 'w') as f: f.write(json.dumps(data)) f.close() with open(filepath1, 'a') as f1: f1.write(str(data1))
return sum([(w1 * aprice), (w2 * bprice)]) client = Client(api_key='5b35631b09e5a168abec621a', api_secret='d564e70a-f45e-49cd-b13c-a31fa5bbbb9d') starttime = datetime.datetime.now( datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%f%Z") hist_bestBid, hist_bestAsk, hist_spread, hist_midpoint, hist_volume, hist_midpointVolume, hist_gravity = [], [], [], [], [], [], [] n = 60 while (1): time = datetime.datetime.now( datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%f%Z") market_data = client.get_order_book('OMX-BTC', limit=9999) recent_orders = client.get_recent_orders('OMX-BTC', limit=9999) print(recent_orders) break buys, sells = market_data['BUY'], market_data['SELL'] hist_bestBid.append(buys[0][0]) hist_bestAsk.append(sells[0][0]) hist_midpoint.append(np.mean([hist_bestAsk[-1], hist_bestBid[-1]])) hist_spread.append(hist_bestAsk[-1] - hist_bestBid[-1]) hist_volume.append( sum([order[2] for order in buys]) + sum([order[2] for order in sells])) hist_midpointVolume.append(sum([buys[0][2], sells[0][2]])) hist_gravity.append( gravity(buys[0][2], sells[0][2], buys[0][0], sells[0][0])) buy_cnt, sell_cnt = 0, 0 exec_orderVol = []
class KucoinApi(PyexAPI): """kucoin API interface. """ logger = logging.getLogger() def __init__(self, api_server: str, api_key: str, secret_key: str, timeout: float, requests_params=None): assert (isinstance(api_server, str)) assert (isinstance(api_key, str)) assert (isinstance(secret_key, str)) assert (isinstance(timeout, float)) self.api_server = api_server self.api_key = api_key self.secret_key = secret_key self.timeout = timeout self.client = Client(api_key, secret_key) def get_markets(self): return self.client.get_trading_markets() def ticker(self, pair: str): assert (isinstance(pair, str)) return self.client.get_tick(pair) def get_balances(self): return self.client.get_all_balances() def get_fiat_balance(self, fiat: str): assert (isinstance(fiat, str)) return self.client.get_total_balance(fiat) def get_balance(self, coin: str): assert (isinstance(coin, str)) return self.client.get_coin_balance(coin) def get_coin_info(self, coin: str): assert (isinstance(coin, str)) return self.client.get_coin_info(coin) def get_user_info(self): return self.client.get_user() def order_book(self, pair: str, limit=None): assert (isinstance(pair, str)) return self.client.get_order_book(pair, limit) def get_orders(self, pair: str) -> List[Order]: assert (isinstance(pair, str)) orders = self.client.get_active_orders(pair) sell_orders = list( map(lambda item: Order.from_list(item, pair, True), orders[self.client.SIDE_SELL])) buy_orders = list( map(lambda item: Order.from_list(item, pair, False), orders[self.client.SIDE_BUY])) return sell_orders + buy_orders def place_order(self, pair: str, is_sell: bool, price: Wad, amount: Wad) -> str: assert (isinstance(pair, str)) assert (isinstance(is_sell, bool)) assert (isinstance(price, Wad)) assert (isinstance(amount, Wad)) side = self.client.SIDE_SELL if is_sell else self.client.SIDE_BUY self.logger.info(f"Placing order ({side}, amount {amount} of {pair}," f" price {price})...") result = self.client.create_order(pair, side, price, amount) order_id = result['orderOid'] self.logger.info(f"Placed order as #{order_id}") return order_id def cancel_order(self, order_id: str, is_sell: bool, pair: str): assert (isinstance(order_id, str)) assert (isinstance(is_sell, bool)) assert (isinstance(pair, str)) side = self.client.SIDE_SELL if is_sell else self.client.SIDE_BUY self.logger.info(f"Cancelling order #{order_id} of type {side}...") try: self.client.cancel_order(order_id, side, pair) self.logger.info(f"Canceled order #{order_id}...") return True except Exception as e: self.logger.error(f"Failed to cancel order #{order_id}... {e}") return False def get_trades(self, pair: str, page_number: int = 1) -> List[Trade]: assert (isinstance(pair, str)) assert (isinstance(page_number, int)) page_number = page_number - 1 limit = 100 result = self.client.get_symbol_dealt_orders(pair, page_number, limit) return list( map(lambda item: Trade.from_dict(pair, item), result['datas'])) def get_all_trades(self, pair: str, page_number: int = 1) -> List[Trade]: assert (isinstance(pair, str)) assert (page_number == 1) result = self.client.get_recent_orders(pair, 50) return list(map(lambda item: Trade.from_list(pair, item), result))