繁体   English   中英

币安 OCO 订单 -> MIN_NOTIONAL | python-binance

[英]Binance OCO Order -> MIN_NOTIONAL | python-binance

我正在尝试为ETHUSDT创建 OCO 订单

这是我创建的函数:

def OcoOrder(symbol, bet, takeProfit, stopLoss):
    client.order_oco_sell(symbol=symbol,
                          quantity=str(bet),
                          price=str(round(takeProfit, 2)),
                          stopPrice=str(round(stopLoss, 2)),
                          stopLimitPrice =str(round(stopLoss, 2)),
                          stopLimitTimeInForce="GTC")

这是电话:

buyPrice = 3803.57
stopLossValue = buyPrice * stopLoss
takeProfitValue = buyPrice * takeProfit
OcoOrder(symbol, "0.0028", takeProfitValue, stopLossValue)

我拥有的数量是 0.0028,这比 10USDT 多一点在此处输入图片说明

执行代码后,我收到错误:

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

我检查了该binance交换信息MIN_NOTINAL价值,它是10意味着我可以出售的最小数量为10 ETH或者换句话说38.000€?!?!?!

{
     "symbol":"ETHUSDT",
     "status":"TRADING",
     "baseAsset":"ETH",
     "baseAssetPrecision":8,
     "quoteAsset":"USDT",
     "quotePrecision":8,
     "quoteAssetPrecision":8,
     "baseCommissionPrecision":8,
     "quoteCommissionPrecision":8,
     "orderTypes":[
        "LIMIT",
        "LIMIT_MAKER",
        "MARKET",
        "STOP_LOSS_LIMIT",
        "TAKE_PROFIT_LIMIT"
     ],
     "icebergAllowed":true,
     "ocoAllowed":true,
     "quoteOrderQtyMarketAllowed":true,
     "isSpotTradingAllowed":true,
     "isMarginTradingAllowed":true,
     "filters":[
        {
           "filterType":"PRICE_FILTER",
           "minPrice":"0.01000000",
           "maxPrice":"1000000.00000000",
           "tickSize":"0.01000000"
        },
        {
           "filterType":"PERCENT_PRICE",
           "multiplierUp":"5",
           "multiplierDown":"0.2",
           "avgPriceMins":5
        },
        {
           "filterType":"LOT_SIZE",
           "minQty":"0.00010000",
           "maxQty":"9000.00000000",
           "stepSize":"0.00010000"
        },
        {
           "filterType":"MIN_NOTIONAL",
           "minNotional":"10.00000000",
           "applyToMarket":true,
           "avgPriceMins":5
        },
        {
           "filterType":"ICEBERG_PARTS",
           "limit":10
        },
        {
           "filterType":"MARKET_LOT_SIZE",
           "minQty":"0.00000000",
           "maxQty":"1459.84229583",
           "stepSize":"0.00000000"
        },
        {
           "filterType":"MAX_NUM_ORDERS",
           "maxNumOrders":200
        },
        {
           "filterType":"MAX_NUM_ALGO_ORDERS",
           "maxNumAlgoOrders":5
        }
     ],
     "permissions":[
        "SPOT",
        "MARGIN"
     ]
  },

如果我交换它并使用 USDT 值,因为我得到的数量Account has insufficient balance for requested action. 因为我显然没有 10 ETH

我在监督什么吗? 最小数量是 10 ETH 是不可能的

它的荒谬。 解决方法很简单。

如果您想通过 API 执行 ETH 订单,您必须使用 BTC。 否则,币安真的希望您为每个订单至少使用 38.000 欧元或 10 ETH,除 BTC 外,每对其他货币对。

最小符号以美元为单位,而不是硬币的数量。 这个订单一定刚刚处于被拒绝的那个级别的风口浪尖。 我试过你的代码,它奏效了。 然后我以 0.0001 的增量缩小,并在接近 10 美元时出现最小符号错误。

这里要考虑的主要事情是您的止损,它也不能低于最小记号,因为您实际上是在下订单 x 金额减去损失,这可能会让您接管。 只需要多交易一点,给自己一个缓冲。

加油朋友!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM