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

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

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

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

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


Рис. 1. Панели.

Рис. 2. Вкладки.

Вся логика класса располагается в файле OsEngine\project\OsEngine\OsTrader\Panels\BotPanel.cs:

Рис. 3. Расположение BotPanel в структуре проекта.

Рассмотрим все члены класса BotPanel:

BotPanel – защищенный конструктор. Доступен только производным классам.

OsTraderMaster_CriticalErrorEven – обработчик события. В случае критической ошибки перезапускает лайт версию программы.

CriticalErrorEvent – защищенное событие. Сигнализирует о получении критической ошибки.

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

FileName – публичное строковое поле. Содержит имя файла в случае, если алгоритм поставляется в виде скрипта из текстового документа.  

StartProgram – публичное поле типа StartProgram. Указывает тип программы, создающей робота. Перечисление имеет следующие значения:

  1. IsTester - тестер;
  2. IsOsOptimizer - оптимизатор;
  3. IsOsData - программа для скачивания данных с бирж;
  4. IsOsTrader - программа для запуска торговых роботов в реальную торговлю;
  5. IsOsConverter - конвертер тиковых данных в свечные;
  6. IsOsMiner - майнер паттернов;

IsScript – публичное поле типа bool. Указывает, был ли робот загружен в качестве скрипта.

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

ShowChartDialog – общедоступный метод. Используется в лайт версии трейдера для отображения главного окна стратегии с графиком.

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

ChartClosedEvent – публичное событие. Проталкивает сообщение о закрытии главного окна наверх.

StartPaint – публичный метод. Запускает процесс отрисовки всех данных робота в графическом интерфейсе.

StopPaint – публичный метод. Останавливает процесс отображения графической информации для панели.

GetNameStrategyType – абстрактный метод. Обязателен к переопределению в производных классах. Возвращает имя производного типа.

IsConnected – публичное свойство типа bool. Возвращает false, если хоть у одной из вкладок отсутствует соединение с биржей. В остальных случаях возвращает true.

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

Delete – публичный метод. Выполняет все необходимые операции перед удалением робота в программе.

MoveChartToTheRight – публичный метод. На активной вкладке перемещает фокус в правую часть графика.

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

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

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

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

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

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

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

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

ShowParametrDialog – общедоступный метод. Вызывает окно настройки параметров для текущего бота.

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

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

ParamGuiSettings – публичное поле ParamGuiSettings. Описывает настройки и логику взаимодействия для окна параметров.

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 – публичное событие, вызываемое при изменении значения параметра.

_riskManager_RiskManagerAlarmEvent – обработчик события достижения роботом заданных лимитов потерь.

ShowMessageInNewThread – приватный метод. Открывает окно с предупреждением.

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

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

ActivTab – публичное поле. Указывает на активную вкладку робота.

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

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

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

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

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

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

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

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

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

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

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

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

ShowPanelRiskManagerDialog – публичный метод. Выводит на экран окно менеджера рисков.

ShowIndividualSettingsDialog – публичный абстрактный метод. После реализации в производных классах содержит логику по отображению и обработке окна настроек робота.

UserSetPositionAction – публичный метод. Обрабатывает команды пользователей, принимает позицию, которую нужно обработать и значение перечисления SignalType – команда, которую необходимо выполнить.

OnOffEventsInTabs – общедоступное свойство типа bool. Включает или отключает генерацию событий для всех вкладок робота.

OnOffEmulatorsInTabs – общедоступное свойство типа bool. Включает или отключает режим эмуляции для всех вкладок робота.

SendNewLogMessage – защищенный метод. Отправляет сообщение в лог.

LogMessageEvent – публичное событие. Высылает сообщение наверх.

DeleteEvent – публичное событие. Сигнализирует об удалении робота.

NewTabCreateEvent – публичное событие. Извещает о создании в роботе новой вкладки.

13:52
431
FAQ

Комментарии

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