Назначение и описание класса 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
129
FAQ

Комментарии

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