Binance API:状态:400,错误代码:-1013,错误消息:过滤器失败:PRICE_FILTER

Binance API: status: 400, error code: -1013, error message: Filter failure: PRICE_FILTER

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 文档中的 exchangeInfo