python-Binanceapi:APIError(代码=-1013):过滤器失败:LOT_SIZE

当尝试使用 python-binance api 下买入或卖出订单时,我收到以下错误:

当尝试使用 python-binance api 下买入或卖出订单时,我收到以下错误:

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

现在我已经在iceberg_parts看到这意味着我的购买或出售数量可能有问题。我试图将数量增加 10 倍,但这只给了我另一个相关的错误:

APIError(code=-1013): Filter failure: MIN_NOTIONAL.

这是我的一些代码:

diff = current_price - prev_price
if diff <= 0.0001:
    order = client.order_market_buy(symbol = market , quantity = '0.0001')
    print('buy order')
if diff >= 0.00040:
    order = client.order_market_sell(symbol =market, quantity ='0.0001')
    print('sell order')

你知道如何解决这个问题吗?

17

出现此错误的原因是您尝试创建的订单数量低于所需的最小数量。

您可以通过以下方式访问特定对所需的最小值:

info = client.get_symbol_info('ETHUSDT')
print(info)

输出包含该对信息的字典。现在,您可以使用以下命令访问所需的最小数量:

print(info['filters'][2]['minQty'])
# 0.00001
4

买入或卖出数量必须是 & gt;= 10.3 美元或 10.3 / 价格,将数量和价格传递给这些十进制设置 / 过滤器,金额设置为十进制

from decimal import Decimal as D, ROUND_DOWN, ROUND_UP
import decimal
info = client.get_symbol_info(symbol=pair)
price_filter = float(info['filters'][0]['tickSize'])
ticker = client.get_symbol_ticker(symbol=pair)
price = float(ticker['price'])
price = D.from_float(price).quantize(D(str(price_filter)))
minimum = float(info['filters'][2]['minQty']) # 'minQty'
quant = D.from_float(quantity).quantize(D(str(minimum))) # if quantity >= 10.3/price
4

作为一个 noob,这些答案中的一些代码似乎相当复杂,所以我想出了一个解决方案。

代码:

def check_decimals(symbol):
    info = client.get_symbol_info(symbol)
    val = info['filters'][2]['stepSize']
    decimal = 0
    is_dec = False
    for c in val:
        if is_dec is True:
            decimal += 1
        if c == '1':
            break
        if c == '.':
            is_dec = True
    return decimal

那么当你下订单时,只需做 ex:(确保 qty 是浮点数或小数)

  B_order = round(qty / symbol_price, decimal)
  order = client.order_market_buy(
            symbol=symbol_name,
            quantity=B_order)
1

这里是一些代码。

def round_down(self, coin, number):
    info = self.client.get_symbol_info('%sUSDT' % coin)
    step_size = [float(_['stepSize']) for _ in info['filters'] if _['filterType'] == 'LOT_SIZE'][0]
    step_size = '%.8f' % step_size
    step_size = step_size.rstrip('0')
    decimals = len(step_size.split('.')[1])
    return math.floor(number * 10 ** decimals) / 10 ** decimals

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(394)
在添加 /更新/删除项目时对屏幕中的本机导航-更新列表做出反应(navigation updater)
上一篇
优化荷兰电话号码 RegEx模式
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(24条)