status: 400, error code: -1013, error message: Filter failure: PRICE_FILTER
Я пытаюсь создать новый заказ на продажу всех SCRT
, которые есть на моем аккаунте, и я не могу понять, в чем проблема.
Фильтры для SCRTBUSD
:
{'filterType': 'PRICE_FILTER', 'minPrice': '0.00100000', 'maxPrice': '1000.00000000', 'tickSize': '0.00100000'}
Код, который я использую:
client = Spot(key=key, secret=secret)
account = client.account()
for asset in account['balances']:
if asset['asset'] == 'SCRT':
quantity = asset['free']
break
# price = client.ticker_price('SCRTBUSD')['price']
price = client.avg_price('SCRTBUSD')['price']
params = {
"symbol": 'SCRTBUSD',
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"quantity": quantity,
"price": round(float(price) * float(quantity), 8)
}
try:
response = client.new_order(**params)
except ClientError as error:
print(f"Found error. status: {error.status_code}, error code: {error.error_code}, error message: {error.error_message}")
Окончательная цена (round(float(price) * float(quantity), 8)
) 30.68230251
.
Я также подумал, что, возможно, под «ценой» они имеют в виду цену за 1 BUSD
, и я поставил "price": float(price)
, и у меня такая же ошибка.
Я пробовал как avg_price, так и ticker_price. Любые идеи о том, как установить правильную цену?
tickSize
для SCRTBUSD
: 0,001.
Следовательно, вам нужно округлить количество до следующего 0,001. Например:
round(30.68230251, 3)
Для получения дополнительной информации о tickSize
см. обменинформация в документации Binance API.