Binance API LOT_SIZE 费用问题

问题描述 投票:0回答:0

所以我有这个问题,当我用 USDT 购买一些 BTC 时,我会尝试购买一定数量的比特币,在本例中为 0.00053 比特币,但我只会收到 0.0005247 比特币。然后我将尝试出售这个比特币,我收到一个 LOT_SIZE 错误,大概是因为我试图出售超过精度的数量?我找不到很多人遇到同样的问题,所以我认为我做错了什么。我将在下面发布我的代码(它无法运行,我已经将它从我制作的课程中删除了)

def correct_order_for_precision(self, order_amt):
    # return float(format(order_amt, f'.{client.get_symbol_info(self.symbol)['baseAssetPrecision']}f')) Not working
    return float(format(order_amt, f'.5f'))



def buy_comodity(self, amt_in_usd):
    current_price = float(self.get_ticker_price())
    order_amt = amt_in_usd / current_price
    order_amt = self.correct_order_for_precision(order_amt)
    print(f"Order for {self.ticker_name} being placed for amt: {order_amt}")
    order = client.create_order(
        symbol=symbol,
        side=Client.SIDE_BUY,
        type=Client.ORDER_TYPE_MARKET,
        quantity=order_amt
    )
    print(f"Order[{order['orderId']}] for {self.ticker_name} filled for amt: {order_amt}")

如果我用参数

buy_comodity
调用上面的函数
15.0
它打印出来:
Order[xxxx] for BTCUSDT filled for amt: 0.00053

然而在币安应用程序上,它显示我只收到了

0.00052947 BTC
。我认为这是由于收费?

然后我运行下面的代码:


def sell_comodity(self):
        print(f"Order[{self.order['orderId']}] selling {self.ticker_name} amount {self.order['executedQty']}")
        order = client.create_order(
                        symbol=symbol,
                        side=Client.SIDE_SELL,
                        type=Client.ORDER_TYPE_MARKET,
                        quantity=self.correct_order_for_precision(float(client.get_asset_balance(asset=self.ticker_name)['free']))
        )

它输出这个:

Order[20575260518] selling BTC amount 0.00053000

在此之前遇到异常

binance.exceptions.BinanceAPIException: APIError(code=-1013): Filter failure: LOT_SIZE

任何人都可以给我一些建议,甚至只是给我一些“hello world”风格的代码吗?

谢谢!

编辑:澄清一下(感谢 paddy 的回复)我的问题不在于我没有收到完整的订单。更重要的是,我无法出售我购买的所有比特币,因为我收到了一个奇怪的数量,由于手数/精度问题,我无法全部出售

python bitcoin trading binance python-binance
© www.soinside.com 2019 - 2024. All rights reserved.