Продолжаем обсуждать базовый источник в OsEngine – BotTabSimple.
Сегодня на очереди события изменения статуса позиции и появления новых позиций. Всё это связано с позицией именно у робота, в процессе их менеджмента и создания. О самом классе Position подробности здесь: https://smart-lab.ru/company/os_engine/blog/1043646.php
События, которые рассматриваются сегодня, внутри источника BotTabSimple находятся здесь:
PositionClosingSuccesEvent. Позиция была успешно закрыта.
Данное событие вызывается, когда позиция получает статус Done. Т.е. завершённая.
В данный момент у позиции нет открывающих ордеров и закрывающих. Открытый объём (OpenVolume) равен нулю.
Также позиция перемещается в журналах из таблиц «Открытых позиций» в «Закрытые позиции».
PositionOpeningSuccesEvent. Позиция была успешно открыта.
Данное событие вызывается, когда позиция получает статус Open. Т.е. открытая.
Данный статус позиции присваивается, когда по открывающему ордеру проходит сделка.
PositionNetVolumeChangeEvent. Изменился открытый объем позиции.
Данное событие вызывается, когда у позиции меняется открытый объём. OpenVolume. Т.е. исполняются какие-то ордера. На открытие или закрытие.
PositionOpeningFailEvent. Не удалось открыть позицию.
Данное событие вызывается, когда позиция получает статус OpeningFail. Т.е. открытия позиции не произошло.
Обычно это происходит, когда по каким-то причинам ордер на открытие позиции не исполнился. Был отозван или изначально был с ошибкой.
После этого позиция «бракуется» и выпадает из статистики журнала. Чтобы посмотреть позиции с таким статусом, нужно открыть журнал на вкладке закрытых позиций и включить галочку «отображать неоткрытые позиции»:
PositionClosingFailEvent. Не удалось закрыть позицию.
Данное событие вызывается, когда позиция получает статус ClosingFail, т.е. закрытия позиции не произошло.
Обычно это происходит, когда по каким-то причинам ордер на закрытие позиции не исполнился. Был отозван или изначально был с ошибкой.
Позициям с таким статусом следует уделять особое внимание, т.к. стандартный выход из позиции не произошёл. При этом могут быть варианты:
PositionStopActivateEvent. По позиции сработал стоп.
Данное событие вызывается, когда по позиции активируется закрытие через стоп-лосс.
Это означает, что цена инструмента, по которому идёт торговля, достигла какого-то уровня, после чего был выставлен ордер на закрытие позиции (лимитный или маркет).
Это не означает, что позиция будет гарантированно закрыта.
Чтобы данный тип оповещений мог быть, по позиции должен быть активирован выход по стоп-лосс через CloseAtStop или CloseAtStopMarket.
PositionProfitActivateEvent. По позиции сработал профит.
Данное событие вызывается, когда по позиции активируется закрытие через тейк-профит.
Это означает, что цена инструмента, по которому идёт торговля, достигла какого-то уровня, после чего был выставлен ордер на закрытие позиции (лимитный или маркет).
Это не означает, что позиция будет гарантированно закрыта.
Чтобы данный тип оповещений мог быть, по позиции должен быть активирован выход по тейк-профит через CloseAtProfit или CloseAtProfitMarket.
PositionBuyAtStopActivateEvent. Создана новая позиция на покупку.
Данное событие вызывается, когда сработала условная заявка на покупку.
Чтобы данный тип оповещений мог быть, робот должен использовать условную заявку на открытие позиции типа BuyAtStop.
PositionSellAtStopActivateEvent. Создана новая позиция на продажу.
Данное событие вызывается, когда сработала условная заявка на продажу.
Чтобы данный тип оповещений мог быть, робот должен использовать условную заявку на открытие позиции, типа SellAtStop.
Удачных алгоритмов!
Комментарии открыты для друзей!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php