Почему HITBTC V2 REST API возвращает ошибку 2001 года (неверная пара)? - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь разместить заказ, используя V2 API HITBTC (документы здесь ).Я пытаюсь разместить заказ через POST-запрос, и все в порядке с авторизацией, но после размещения заказа следующая функция возвращает то, что сервер отправляет обратно, а это следующий JSON:

{'error': {'code': 2001, 'message': 'Symbol not found', 'description': 'Try get /api/2/public/symbol, to get list of all available symbols.'}}

Моя проблема возникает из-за того, что я передаю пару, которую хочу заказать, в формате, указанном этим вызовом для символов, который возвращает JSON следующим образом:

{"id":"NOAHBTC","baseCurrency":"NOAH","quoteCurrency":"BTC","quantityIncrement":"1000","tickSize":"0.000000001","takeLiquidityRate":"0.001","provideLiquidityRate":"-0.0001","feeCurrency":"BTC"}

Я передаю строку, отформатированную точно так же, как отформатирован 'id'.

def HITBTCorder(pair, side, quantity, price, session): 
'''
Creates an order on HITBTC, returns status (filled or not filled)
Side: 'buy' or 'sell'
'''
orderData = json.dumps({'symbol': pair, 'side': side, 'quantity': quantity, 'price': price})
print(orderData)
response = session.post('https://api.hitbtc.com/api/2/order', data = orderData)
responseDict = json.loads(response.text)
return responseDict

Код, который я запускаю, выглядит следующим образом:

session = requests.session()
session.auth = ('APIPUBLIC', 'APISECRET')

response = trade.HITBTCorder("NOAHBTC", 'buy', 1000, tickers.HITBTCprice("NOAHBTC"), session)

Есть идеи, как заставить это работать?

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Данные должны быть URL-адресом, закодированным в теле запроса (количество = 1 & символ = ETHBTC ...), а не JSON, который будет принят сервером, надеюсь, это поможет:)

import urllib.parse as parse;
data = parse.urlencode(yourparamsasdict);
0 голосов
/ 25 июня 2018

Вы можете заменить

orderData = json.dumps({'symbol': pair, 'side': side, 'quantity': quantity, 'price': price})

на:

orderData = json.dumps({'symbol': pair.lower(), 'side': side, 'quantity': quantity, 'price': price})

, поскольку symbol необходимо отправить как в нижнем регистре .

...