Exemple #1
0
              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))
Exemple #2
0
    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 = []
Exemple #3
0
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))