rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | События обновления статуса позиции. BotTabSimple #3

Продолжаем обсуждать базовый источник в OsEngine – BotTabSimple.

Сегодня на очереди события изменения статуса позиции и появления новых позиций. Всё это связано с позицией именно у робота, в процессе их менеджмента и создания. О самом классе Position подробности здесь: https://smart-lab.ru/company/os_engine/blog/1043646.php

События обновления статуса позиции. BotTabSimple #3

События, которые рассматриваются сегодня, внутри источника BotTabSimple находятся здесь:

События обновления статуса позиции. BotTabSimple #3 

 

Подписка на все эти события похожа, поэтому смотрим один раз.

События обновления статуса позиции. BotTabSimple #3 

  1. Создаём источники типа BotTabSimple и кладём его в переменную _tabToTrade.
  2. Подписываемся на событие. В данном случае это событие ошибки на закрытии позиции.
  3. Обработчик события.
  4. Позиция, по которой произошло событие.


PositionClosingSuccesEvent.
Позиция была успешно закрыта.

Данное событие вызывается, когда позиция получает статус Done. Т.е. завершённая.

В данный момент у позиции нет открывающих ордеров и закрывающих. Открытый объём (OpenVolume) равен нулю.

Также позиция перемещается в журналах из таблиц «Открытых позиций» в «Закрытые позиции».

PositionOpeningSuccesEvent. Позиция была успешно открыта.

Данное событие вызывается, когда позиция получает статус Open. Т.е. открытая.

Данный статус позиции присваивается, когда по открывающему ордеру проходит сделка.

PositionNetVolumeChangeEvent. Изменился открытый объем позиции.

Данное событие вызывается, когда у позиции меняется открытый объём. OpenVolume. Т.е. исполняются какие-то ордера. На открытие или закрытие.

PositionOpeningFailEvent. Не удалось открыть позицию.

Данное событие вызывается, когда позиция получает статус OpeningFail. Т.е. открытия позиции не произошло.

Обычно это происходит, когда по каким-то причинам ордер на открытие позиции не исполнился. Был отозван или изначально был с ошибкой.

После этого позиция «бракуется» и выпадает из статистики журнала. Чтобы посмотреть позиции с таким статусом, нужно открыть журнал на вкладке закрытых позиций и включить галочку «отображать неоткрытые позиции»:

События обновления статуса позиции. BotTabSimple #3 

PositionClosingFailEvent. Не удалось закрыть позицию.

Данное событие вызывается, когда позиция получает статус ClosingFail, т.е. закрытия позиции не произошло.

Обычно это происходит, когда по каким-то причинам ордер на закрытие позиции не исполнился. Был отозван или изначально был с ошибкой.

Позициям с таким статусом следует уделять особое внимание, т.к. стандартный выход из позиции не произошёл. При этом могут быть варианты:

  1. Довериться стандартному модулю «Закрытия» позиции, который позицию «Дозакроет» сам.
  2. Обработать такую ситуацию и «Дозакрыть» позицию самому из исходного кода.

PositionStopActivateEvent. По позиции сработал стоп.

Данное событие вызывается, когда по позиции активируется закрытие через стоп-лосс.

Это означает, что цена инструмента, по которому идёт торговля, достигла какого-то уровня, после чего был выставлен ордер на закрытие позиции (лимитный или маркет).

Это не означает, что позиция будет гарантированно закрыта.

Чтобы данный тип оповещений мог быть, по позиции должен быть активирован выход по стоп-лосс через CloseAtStop или CloseAtStopMarket.

PositionProfitActivateEvent. По позиции сработал профит.

Данное событие вызывается, когда по позиции активируется закрытие через тейк-профит.

Это означает, что цена инструмента, по которому идёт торговля, достигла какого-то уровня, после чего был выставлен ордер на закрытие позиции (лимитный или маркет).

Это не означает, что позиция будет гарантированно закрыта.

Чтобы данный тип оповещений мог быть, по позиции должен быть активирован выход по тейк-профит через CloseAtProfit или CloseAtProfitMarket.


PositionBuyAtStopActivateEvent. Создана новая позиция на покупку.

Данное событие вызывается, когда сработала условная заявка на покупку.

Чтобы данный тип оповещений мог быть, робот должен использовать условную заявку на открытие позиции типа BuyAtStop.


PositionSellAtStopActivateEvent.
Создана новая позиция на продажу.

Данное событие вызывается, когда сработала условная заявка на продажу.

Чтобы данный тип оповещений мог быть, робот должен использовать условную заявку на открытие позиции, типа SellAtStop.


Удачных алгоритмов!

Комментарии открыты для друзей!

События обновления статуса позиции. BotTabSimple #3

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

События обновления статуса позиции. BotTabSimple #3

★1
#62 по плюсам

UPDONW
Новый дизайн