如何通过Binance API获得申报订单的全额成交数量,避免手续费抵扣持仓量
问题原因
你的订单返回参数中commissionAsset为XRP,说明币安平台直接从你买入的XRP份额中扣除了交易手续费,因此实际到账XRP数量=申报成交数量-手续费,和你预期的足额到账不符。
解决方案
方案1:调整账户手续费抵扣全局配置
登录币安账户,进入手续费设置页面,关闭「买入时使用基础货币支付手续费」的选项,设置后现货买入的手续费会从你支付的计价货币(本案例为EUR)中扣除,不会扣减你买入得到的XRP数量。如果开通了BNB抵扣手续费,手续费会优先从BNB余额扣除,也不会影响XRP到账数量。
方案2:调整API下单参数,使用quoteOrderQty替代quantity参数
如果不想修改全局账户配置,可以调整下单参数逻辑:市价买入时不指定quantity(买入的标的数量),改为指定quoteOrderQty(你愿意花费的计价货币总金额,包含手续费)。你可以先调用交易对最新价格接口,估算买入11XRP需要的EUR金额,加上预估的手续费和少量滑点预留金额作为quoteOrderQty传入,系统会自动成交足额XRP,手续费从你支付的EUR中抵扣,最终到账的XRP数量符合预期。
调整后的示例代码参考:
# 假设查询到XRPEUR最新成交价为0.9EUR/XRP,买入11XRP预估需要9.9EUR,加上0.1%手续费及滑点预留,传入总花费10EUR order1 = client.create_order(symbol = 'XRPEUR', side = 'BUY', type = 'MARKET', quoteOrderQty = 10)
方案3:下单时提前把手续费计算到申报数量中
如果一定要使用quantity参数下单,可以根据你的账户手续费率,把需要扣除的手续费提前加到申报数量中。比如你的手续费率是0.1%,要拿到11XRP,申报数量就填11/(1-0.001)≈11.011,成交扣除手续费后刚好到账11XRP。
内容的提问来源于stack exchange,提问作者David D
相关产品推荐
相关产品推荐

