Обзор основных блоков BotTabSimple. OsEngine.

Не смотря на свое название, BotTabSimple является одним из самых больших и сложных объектов в проекте. Код класса насчитывает порядка пяти тысяч строк. Условно функционал простой вкладки условно можно разделить на несколько блоков:

  1. Реализация интерфейса IIBotTab.
  2. Взаимодействие с мастером графического отображения данных.
  3. Взаимодействие с коннектором.
  4. Управление журналом позиций.
  5. Эмуляция и управление стоп-лоссами и тейк-профитами.
  6. Работа с модулем сопровождения позиций.

 

Реализация интерфейса IIBotTab.

Интерфейс IIBotTab предписывает каждой вкладке необходимость реализации некоторого функционала, который позволяет программе единообразно управлять всеми вкладками. Как правило в интерфейс обозначено общее для всех вкладок состояние и поведение.

 

Взаимодействие с мастером графического отображения данных.

Одна из важных обязанностей вкладки это взаимодействие с экземпляром класса ChartCandleMaster. Основная обязанность этого объекта - управление прорисовкой серий данных в графическом интерфейсе программы, таких как свечи, индикаторы, сделки на графике. BotTabSimple является посредником между торговым алгоритмом и мастером прорисовки. В этот блок входят методы для добавления/удаления индикаторов с графика; нанесение на график графических элементов (линии, точки) а также их удаление; изменение фокуса на графике; отображение сделок, условных заявок, линий для стопов и профитов.

 

Взаимодействие с коннектором.

Без преувеличения можно сказать ConnectorCandles это самый главный объект, с которым взаимодействует вкладка, так как через него происходит все общение с торговой площадкой. BotTabSimple обрабатывает почти все события из коннектора, производит множество вычислений и перенаправляет дальше данные через собственные события. В обратку вкладка обрабатывает запросы роботов и отправляет ордера в коннектор. 

 

Управление журналом позиций

Основную логику обработки позиций содержит экземпляр класса Journal, который входит в состав BotTabSimple. После создания позиции вкладка помещает ее в журнал, а ордер высылает в коннектор. Далее по мере получения из коннектора ордеров и собственных сделок, вкладка перенаправляет эти объекты в журнал, который на их основании изменяет состояние позиций. После этого журнал информирует вкладку об изменении состояния позиций при помощи событий PositionStateChangeEvent и PositionNetVolumeChangeEvent.

  

Эмуляция и управление стоп-лоссами и тейк-профитами.

Разнообразие торговых площадок, поддерживаемых платформой, довольно обширно, но не все из них предоставляют возможность использовать условные заявки на стороне брокера.  BotTabSimple берет на себя эти обязательства и предоставляет возможность использовать такие важные для трейдеров сущности как стоп-лосс, трейлинг стоп и тейк-профит. Вкладка содержит ряд методов, позволяющих роботам задействовать этот функционал. К ним относятся методы: CloseAtStop, CloseAtTrailingStop, CloseAtProfit а так же их перегрузки.

 

Работа с модулем сопровождения позиций.

Модуль сопровождения позиций представлен экземпляром класса BotManualControl. Данный объект позволяет настроить реакции на определенные события, связанные с совершением транзакций.

12:23
63
FAQ

Комментарии

Нет комментариев. Ваш будет первым!