Назначение и описание класса BotPanel. OsEngine.

Назначение и описание класса BotPanel. OsEngine.

Класс BotPanel является родительским классом для абсолютно всех роботов в программе. Содержит компоненты, которые повторно используются роботами и необходимы для их нормального функционирования в OsEngine. 

В основном BotPanel хранит в себе источники и параметры, и когда Вы хотите делать роботов на OsEngine, Вам нужно держать этот класс открытым.

Создание любого робота в программе должно начинаться с наследования от BotPanel и реализации его абстрактных членов, иначе терминал просто не сможет использовать ваш алгоритм.

Поговорим о структуре логики OsEngine, отвечающей за взаимодействие с роботами. Хотя BotPanel и является своеобразным мостом между алгоритмом робота и программой, его интерфейс не предоставляет всей функциональности, которая требуется ботам.  Для решения этой задачи в программе существуют классы, реализующие интерфейс IIBotTab (источники данных).

О них мы подробно поговорим в последующих статьях. Сейчас нас интересует класс BotTabSimple. Он предоставляет роботам всю необходимую для торговли логику и поставляет рыночные данные по бумаге.

Для простоты понимания экземпляры класса BotPanel именуются роботами (или панелями). Экземпляры класса BotTabSimple – источниками (или вкладками). Если сопоставлять эти абстракции с визуальным интерфейсом программы, то выглядят они следующим образом:

Если открыть каждого отдельного робота по отдельности, то мы увидим у них источники (помечены стрелками). Источников у одного робота может быть множество:

Вся логика класса располагается в этом файле.

Внутри проекта это здесь:

 

Вверху класса находится перечисление источников, которые есть в OsEngine:

 

1. Simple – простой, базовый источник.

2. Index – автоиндекс.

3. Cluster – источник для генерации горизонтального объёма.

4. Screener – источник для торговли множества инструментов одновременно.

5. Pair – источник для торговли парами.

6. Polygon – источник для торговли треугольными арбитражами.

 

1 Часть. Создание источников.

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

 

GetTabs – публичный метод. Возвращает список всех источников, принадлежащих роботу.

ActivTab – публичное поле. Указывает на активную вкладку робота. То, которая открыта сейчас у пользователя.

ActivTabNumber – публичное свойство типа int. Возвращает номер активной вкладки.

TabsSimple – публичное свойство. Возвращает список всех вкладок типа BotTabsSimple.

TabsIndex – публичное свойство. Возвращает список всех вкладок типа BotTabsIndex.

TabsCluster – публичное свойство. Возвращает список всех вкладок типа BotTabsCluster.

TabsPair – публичное свойство. Возвращает список всех вкладок типа BotTabsPair.

TabsScreener – публичное свойство. Возвращает список всех вкладок типа BotTabsScreener.

TabsPolygon – публичное свойство. Возвращает список всех вкладок типа BotTabsPolygon.

_tabBotTab_SelectionChanged – обработчик события нажатия на заголовок вкладки.

TabCreate – публичный метод. Создает новый источник, принимает значение перечисления, указывающее тип необходимой вкладки.

TabDelete – публичный метод. Удаляет активную вкладку.

TabDelete – перегруженная версия метода. Удаляет активную вкладку по индексу.

ChangeActivTab – приватный метод. Устанавливает другую вкладку в качестве активной и отображаемой в пользовательском интерфейсе.

ReloadTab – приватный метод. Переназначает вкладку для контрола.

ClearTabs – публичный метод. Очищает все вкладки в роботе.

 

2 Часть. Создание параметров.

Второе, самое используемое место класса BotPanel - будет код, который создаёт и хранит параметры:

CreateParameter – публичный метод. Создает оптимизируемый параметр типа StrategyParameterDecimal.

CreateParameterTimeOfDay – публичный метод. Создает оптимизируемый параметр типа StrategyParameterTimeOfDay.

CreateParameter – перегруженная версия метода. Создает оптимизируемый параметр типа StrategyParameterInt.

CreateParameter – перегруженная версия метода. Создает оптимизируемый параметр типа StrategyParameterString. Инициализирует параметр списком допустимых значений.

CreateParameter – перегруженная версия метода. Создает оптимизируемый параметр типа StrategyParameterString. Создает параметр без инициализации списка допустимых значений.

CreateParameter – перегруженная версия метода. Создает оптимизируемый параметр типа StrategyParameterBool.

CreateParameterButton – публичный метод. Создает оптимизируемый параметр типа StrategyParameterButton.

CreateParameterCheckBox – публичный метод. Создает оптимизируемый параметр типа StrategyParameterCheckBox.

CreateParameterLabel – публичный метод. Создает оптимизируемый параметр типа StrategyParameterLabel.

LoadParameterValues – приватный метод. Устанавливает обработчик события изменения значения параметра и добавляет параметр в хранимый список.

GetValueParameterSaveByUser – приватный метод. При наличии файла с данными загружает настройки в параметр.

Parameters – публичное свойство. Возвращает список всех параметров робота.

Parameter_ValueChange – обработчик события изменения значения параметра.

SaveParametrs – сохраняет параметры робота в файл.

ParametrsChangeByUser – публичное событие, вызываемое при изменении значения параметра.

 

3 Часть. Общая статистика торгов данного робота.

Это также

TotalProfitInPersent – публичное свойство типа decimal. Возвращает общее значение прибыли/убытка в процентном выражении по всем сделкам робота.

TotalProfitAbs – публичное свойство типа decimal. Возвращает общее значение прибыли/убытка в абсолютном выражении по всем сделкам робота.

MiddleProfitInPersent – публичное свойство типа decimal. Возвращает среднее значение прибыли/убытка в процентном выражении на один контракт.

ProfitFactor – публичное свойство типа decimal. Рассчитывает и возвращает общий профит фактор для робота.

MaxDrowDown – публичное свойство типа decimal. Рассчитывает и возвращает размер максимальной просадки для робота.

WinPositionPersent – публичное свойство типа decimal. Рассчитывает и возвращает количество прибыльных позиций в процентном отношении.

MaxDrowDown – публичное свойство типа int. Рассчитывает количество всех позиций в роботе, за исключением не открытых, то есть тех, у которых состояние равно OpeningFall.

AllPositionsCount – публичное свойство типа int. Рассчитывает количество абсолютно всех позиций в роботе.

 

4 Часть. Что ещё может пригодиться?

1. Обратившись к данной переменной, можно узнать, в каком интерфейсе развёрнут робот. Тестер / Оптимизатор / Реальные торги.

2. Событие, на которое Вам нужно будет подписываться, чтобы робот реагировал на изменение параметров со стороны пользователя.

3. Метод, в который можно отсылать сообщения в лог. Также повсеместно используемая штука.

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

Поддержка OsEngine: https://t.me/osengine_official_support

13:52
565
FAQ

Комментарии

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