某些符号的币安意外百分比价格错误

问题描述

我在尝试提交 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,但不知道在哪里提交。

任何建议将不胜感激!

解决方法

数量和价格应采用特定的字符串格式,以使其始终如一地工作。 Binance 相关文档为 here

您可以使用此语法来应用格式:

amt_str = "{:0.0{}f}".format(amount,precision)

请注意,此示例中的 precision 是一个整数,而不是步长。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...