二元OCO顺序>最小名义|Python融资

2024-09-20 07:02:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为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,比10美元多一点 enter image description here

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

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


Tags: true数量minsymbolethlimitstrround
1条回答
网友
1楼 · 发布于 2024-09-20 07:02:40

最小符号是用美元来衡量的,而不是硬币的数量。这张订单一定是在被拒绝的那一点上。我试过你的代码,它成功了。然后,我以.0001的增量缩小,当我接近10美元时,得到了最小的符号错误

这里要考虑的主要问题是止损,也不能低于最小值,因为你实际上是在订购X减量损失,这可能会让你吃亏。只需要多做一点交易,给自己一个缓冲

干杯,朋友

相关问题 更多 >