我在尝试提交 ETHUSDT 订单时遇到了意外的 Binance API 错误。错误看起来很标准:
{'code': -1013, 'msg': 'Filter failure: PERCENT_PRICE'}
我正在传递一个平均价格,该价格是一秒钟前使用 API 的符号价格代码函数检索到的。我的订单功能如下:
params = {
"symbol": "ETHUSDT",
"side": "BUY",
"type": "LIMIT",
"quantity" : 0.1,
"timeInForce" : "GTC",
"price" : 3391, #A price from GET /api/v3/ticker/price
"recvWindow" : 40000
}
response = send_signed_request('POST', '/api/v3/order', params)
print(response)
但是当价格低了十倍时,订单就完成了,没有任何错误。此外,使用相同的管道,其他符号也不会引发任何错误。我究竟做错了什么?看起来是个bug,但不知道在哪里提交。
任何建议将不胜感激!
答案 0 :(得分:-1)
数量和价格应采用特定的字符串格式,以使其始终如一地工作。 Binance 相关文档为 here。
您可以使用此语法来应用格式:
amt_str = "{:0.0{}f}".format(amount, precision)
请注意,此示例中的 precision
是一个整数,而不是步长。