Как побороть MIN_NOTIONAL (Binance)

_Error_System.Exception: Filter failure: MIN_NOTIONAL

  1. Lexuz77

    Регистрация:
    10.12.16
    Сообщения:
    113
    Был на сайте:
    10.02.24

    10.12.2018 12:16:37_System_Выставлен ордер, цена: 0.0013415 Сторона: Buy, Объём: 0.21000000, Инструмент: BNBBTCНомер 1273

    10.12.2018 12:16:38_Error_System.Exception: Filter failure: MIN_NOTIONAL
    в OsEngine.Market.Servers.Binance.BinanceClient.CreateQuery(Method method, String endpoint, Dictionary`2 param, Boolean auth) в D:\FORTS\OsEngine-master\project\OsEngine\Market\Servers\Binance\BinanceClient.cs:строка 559

    Такая вот проблемка: я выставил заявку в стакан, и как только ее начинают постепенно "заполнять" (т.е. я выставил 1 лот, откусили от лота 0,03) тогда начинает появлятся данная ошибка. Как можно ее обойти? В логике закрытия позиции (т.е. выставления противоположной лимитки) есть проверка

    private void LogicClosePosition(List positions)
    Pricestep = _tab.Securiti.PriceStep;
    if (positions == null || positions.Count == 0)
    { return; }
    for (int i = 0; i < positions.Count; i++)
    {if (positions[i].State != PositionStateType.Open)
    { continue; }
    if (positions[i].State == PositionStateType.Closing)
    {continue;}
    if (positions[i].Direction == Side.Buy)
    { _tab.CloseAtLimit(positions[i], positions[i].EntryPrice + Profit.ValueInt * Pricestep, positions[i].OpenVolume);
    }
    else
    {_tab.CloseAtLimit(positions[i], positions[i].EntryPrice - Profit.ValueInt * Pricestep, positions[i].OpenVolume);
    }
    Я так понимаю нужно еще добавить проверку на "заполнение" ордера на 100% ? как это можно сделать? Спасибо!

    Lexuz77
    10.12.2018 12:42
    #1
  2. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1172
    Был на сайте:
    25.04.24
    Цитата: Lexuz77

    10.12.2018 12:16:37_System_Выставлен ордер, цена: 0.0013415 Сторона: Buy, Объём: 0.21000000, Инструмент: BNBBTCНомер 1273

    10.12.2018 12:16:38_Error_System.Exception: Filter failure: MIN_NOTIONAL
    в OsEngine.Market.Servers.Binance.BinanceClient.CreateQuery(Method method, String endpoint, Dictionary`2 param, Boolean auth) в D:\FORTS\OsEngine-master\project\OsEngine\Market\Servers\Binance\BinanceClient.cs:строка 559

    else
    {_tab.CloseAtLimit(positions[i], positions[i].EntryPrice - Profit.ValueInt * Pricestep, positions[i].OpenVolume);
    }
    Я так понимаю нужно еще добавить проверку на "заполнение" ордера на 100% ? как это можно сделать? Спасибо!

    Min Notional - это ошибка возвращённая из ядра бинанс. Ордер меньше чем минимальное значение.
    Проверить исполнился ли полностью ордер можно вот так:
    If(position[i].WaitVolume == 0)
    То значит у нас все открывающие ордера исполнились

    Алексей Ван
    12.12.2018 08:33
    #2