使用 Binance API 的 .create_margin_order() 函数有什么问题
What is wrong with this .create_margin_order() function using the Binance API
我正在尝试对 Binance API 使用 .create_margin_order()
方法,但它不起作用。这是我的订购功能代码:
def limit_order(symbol, side, quantity, price, type=ORDER_TYPE_LIMIT):
try:
order = client.create_margin_order(symbol, side, quantity, price, type)
output = {
'status': True,
'symbol': symbol,
'side': side,
'quantity': quantity,
'price': price
}
print("Sending order:")
print(output)
except:
output = {
'status': False
}
print(symbol, side, quantity, price, type)
print("There was an order error")
return output
return output
我正在使用 print
函数尝试查看值并进行调试。下面是一个响应示例:
BTCUSDT BUY 0.00030085801697862135 66476.54 LIMIT
There was an order error
所有这些数字对我来说都不错,我唯一能想到的是在 Binance 上的最低消费,但我很确定那是 10 美元,而且我有一些数学来确保订单是 20 美元每次。
我的 Binance API 管理中启用的设置是:
启用阅读
启用现货和保证金交易
启用杠杆借贷、还款和转账
并且我在测试我的应用程序时将其设置为无限制,我的目的是在我正确 运行 后重新访问受信任的 IP。
编辑 1:我 100% 确定它与创建订单方法有关,因为我将代码更改为:
print('preorder')
order = client.create_margin_order(symbol, side, quantity, price, type)
print('postorder, preoutput')
它只打印了 preorder
编辑 2:决定使用其他一些 Binance API 函数来尝试调试此问题。我用了client.get_account()['permissions']
,发现这只返回了'SPOT'
。我如何修复我的账户以允许保证金?我可以在这个账户上进行保证金交易,所以我不确定为什么会这样。
代码没有问题。保证金账户在现货市场交易。
您需要考虑交易对的资产LOT_SIZE。 LOT_SIZE 基本上告诉您交易所可以处理的资产的精度。
BTCUSDT BUY 0.00030085801697862135 66476.54 LIMIT
There was an order error
BTC的LOT_SIZE BTCUSTD只允许最多10位小数。您的金额包含两倍的小数。因此,您需要格式化金额或将其四舍五入到最接近的小数点后 10 位。
我正在尝试对 Binance API 使用 .create_margin_order()
方法,但它不起作用。这是我的订购功能代码:
def limit_order(symbol, side, quantity, price, type=ORDER_TYPE_LIMIT):
try:
order = client.create_margin_order(symbol, side, quantity, price, type)
output = {
'status': True,
'symbol': symbol,
'side': side,
'quantity': quantity,
'price': price
}
print("Sending order:")
print(output)
except:
output = {
'status': False
}
print(symbol, side, quantity, price, type)
print("There was an order error")
return output
return output
我正在使用 print
函数尝试查看值并进行调试。下面是一个响应示例:
BTCUSDT BUY 0.00030085801697862135 66476.54 LIMIT
There was an order error
所有这些数字对我来说都不错,我唯一能想到的是在 Binance 上的最低消费,但我很确定那是 10 美元,而且我有一些数学来确保订单是 20 美元每次。
我的 Binance API 管理中启用的设置是:
启用阅读 启用现货和保证金交易 启用杠杆借贷、还款和转账
并且我在测试我的应用程序时将其设置为无限制,我的目的是在我正确 运行 后重新访问受信任的 IP。
编辑 1:我 100% 确定它与创建订单方法有关,因为我将代码更改为:
print('preorder')
order = client.create_margin_order(symbol, side, quantity, price, type)
print('postorder, preoutput')
它只打印了 preorder
编辑 2:决定使用其他一些 Binance API 函数来尝试调试此问题。我用了client.get_account()['permissions']
,发现这只返回了'SPOT'
。我如何修复我的账户以允许保证金?我可以在这个账户上进行保证金交易,所以我不确定为什么会这样。
代码没有问题。保证金账户在现货市场交易。
您需要考虑交易对的资产LOT_SIZE。 LOT_SIZE 基本上告诉您交易所可以处理的资产的精度。
BTCUSDT BUY 0.00030085801697862135 66476.54 LIMIT There was an order error
BTC的LOT_SIZE BTCUSTD只允许最多10位小数。您的金额包含两倍的小数。因此,您需要格式化金额或将其四舍五入到最接近的小数点后 10 位。