Как победить ошибку "статус позиции: closing"

Периодически всплывает

  1. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20

    У робота иногда позиции зависают в недозакрытом состоянии: висит в статусе closing, и на графике её нет, и по логам вижу что проходила ошибка W4snet и закрываю руками. Причём после зависания, цена уже прошла туда-сюда, то есть закрыться по наличию предложения в стакане позиция могла много раз.

    У меня коннектор BinanceFutures, и этот глюк я видел как на роботах из комплекта, так и на самописных.

    mrmvd
    30.08.2020 11:12
    #1
  2. Lexuz77

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

    У робота иногда позиции зависают в недозакрытом состоянии: висит в статусе closing, и на графике её нет, и по логам вижу что проходила ошибка W4snet и закрываю руками. Причём после зависания, цена уже прошла туда-сюда, то есть закрыться по наличию предложения в стакане позиция могла много раз.

    У меня коннектор BinanceFutures, и этот глюк я видел как на роботах из комплекта, так и на самописных.

    В данном случае единсвенное что можно сделать - торговать роботами с VPS со стабильным соединением до сервера (БинансФьючерс у вас). У меня тоже такое бывало, что при разрыве соединения исполнялась какая то лимитка, но робот об этом не узнает, если небыло соединения с сервером в момент изменения статуса заявки. Так же приходилось руками все "выруливать".   

    Lexuz77
    31.08.2020 11:08
    #2
  3. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20
    Цитата: Lexuz77
    Цитата: mrmvd

    У робота иногда позиции зависают в недозакрытом состоянии: висит в статусе closing, и на графике её нет, и по логам вижу что проходила ошибка W4snet и закрываю руками. Причём после зависания, цена уже прошла туда-сюда, то есть закрыться по наличию предложения в стакане позиция могла много раз.

    У меня коннектор BinanceFutures, и этот глюк я видел как на роботах из комплекта, так и на самописных.

    В данном случае единсвенное что можно сделать - торговать роботами с VPS со стабильным соединением до сервера (БинансФьючерс у вас). У меня тоже такое бывало, что при разрыве соединения исполнялась какая то лимитка, но робот об этом не узнает, если небыло соединения с сервером в момент изменения статуса заявки. Так же приходилось руками все "выруливать".   

    Ну почему робот об этом должен не узнавать?
    Он при каждом вызове делает проверку на существование и статус открытой позиции.

       List<Position> openPositions = _tab.PositionsOpenAll;

            if (openPositions != null && openPositions.Count != 0)
            {
                for (int i = 0; i < openPositions.Count; i++)
                {
                    LogicClosePosition(candles, openPositions[i]);
                }
            }

            if (openPositions == null || openPositions.Count == 0)
            {
                LogicOpenPosition(candles, openPositions);
            }
        }


    Там же платформа запрашивает текущее состояние с биржи, а робот запрашивает у платформы.

    Просто либо статус "closing" неправильно описан, либо что-то ещё мне не понятное.

    mrmvd
    31.08.2020 19:39
    #3
  4. Алексей Ван Команда форума

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

     

    Там же платформа запрашивает текущее состояние с биржи, а робот запрашивает у платформы.

    Просто либо статус "closing" неправильно описан, либо что-то ещё мне не понятное.

    Платформа не запрашивает каждый раз состояние с биржи. Если биржа не доступна и при этом ордер исполнился или был снят руками, робот OsEngine об этом не узнает.

    Алексей Ван
    01.09.2020 14:33
    #4