【问题标题】:Binance OCO Order -> MIN_NOTIONAL | python-binanceBinance OCO 订单 -> MIN_NOTIONAL | python-binance
【发布时间】:2021-10-19 19:02:34
【问题描述】:

我正在尝试为 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

我检查了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不可能是真的

【问题讨论】:

    标签: python binance


    【解决方案1】:

    最小符号以美元而不是硬币的数量来衡量。该订单必须刚刚处于被拒绝的那个级别的风口浪尖。我试过你的代码,它工作。然后我以 0.0001 为增量按比例缩小,并在接近 10 美元时出现最小符号错误。

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

    朋友加油!

    【讨论】:

    • 对,买单是正确的,但止损卖盘应该低于 10。它适用于更大的订单
    • 很高兴你把事情搞定了朋友 - 保重
    猜你喜欢
    • 2022-08-08
    • 2021-05-05
    • 1970-01-01
    • 2022-11-22
    • 2021-05-10
    • 2022-08-24
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多