Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
18 июля 2024, 12:23

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Данный пример робота служит демонстрацией реализации кастомных элементов параметров.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

В нем показано:

  • Создание индикатора ATR на второй области графика.
  • Создание двух индикаторов SMA на основном чарте.
  • Добавление таблицы для вывода в окно параметров значение индикаторов.
  • Использование окна параметров робота для настройки элементов.

2. Где найти робота в проекте?

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Для начала открываем папку с проектом и заходим в «project».

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Далее открываем проект в Visual Studio.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Находим в проекте папку «Robots» и открываем ее.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

И наконец-то находим папку «TechSamples» и в ней уже выбираем нашего робота «CustomParamsUseBotSample».

 

3. Разбор робота построчно:

 

Строки 1-9:

Импортируются необходимые пространства имен:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

 

Строки 12-15:

Определяется пространство имен OsEngine.Robots.TechSamples для организации кода и класс ElementsOnChartSampleBot наследует от BotPanel:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 19-20:

Инициализируется панель бота:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Cоздается простая вкладка, сохраняется ссылка на вкладку в _tab для дальнейшего использования.

 

Строка 22-41:

Создание параметров робота:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 43-56:

Создание индикаторов:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

Создание и настройка индикаторов: быстрая и медленная скользящие средние, (SMA) и ATR.


Строка 58:

Подписываемся на событие ParametrChangeByUser:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

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


Строка 60:

Подписывается на событие CandleFinishedEvent:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 


Строки 64-66:

Настройка интерфейса параметров:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 


Строки 69-74:

Создание пользовательской вкладки для значений индикаторов:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.


Строки 79-136:

Метод, отвечающий за создание таблицы значений индикаторов:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

 

Строки 138-161:

Метод, отвечающий за обновление значений таблицы:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 163-187:

Метод, который создает ячейки в таблице уже для готовых значений:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 191-200:

Метод обновления значений параметров индикаторов:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 202-226:

Этот блок отвечает за набор переменных робота:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки228-236: 

Переопределение методов GetNameStrategyType и ShowIndividualSettingsDialog.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

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

 

Строки 240-273:

Этот метод, вызываемый при каждом формировании новой свечи на графике, отвечает за обработку торговых сигналов робота:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров. 

 

Строки 275-296:

Метод, отвечающий за открытие позиции:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

 

Строки 298-320:

Метод, отвечающий за закрытие позиции:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

 

4. Описание работы методов:

Заходим в тестер и запускаем нашего робота, открываем окно параметров.

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

1. «Base»:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

В ней находятся базовые настройки робота.

 

2. «Indicators»:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Здесь мы настраиваем наши индикаторы.

 

3. «Exit settings»:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

Настройка значений для логики выхода из позиции.

 

4. «Indicators values»:

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

В этой вкладке параметров находится таблица значений индикаторов.

Для создания такой таблицы нам требуется три следующих метода:

  1. CreateTable
  2. PaintTable
  3. GetRow


Метод CreateTable:

1. Метод «Название» создаёт таблицу (DataGridView) внутри элемента WindowsFormsHost.
2. Создаётся новый объект типа WindowsFormsHost и присваивается переменной.
3. Создаётся новый объект DataGridView с режимом выбора всей строки (DataGridViewSelectionMode.FullRowSelect) и режимом автоматического изменения размера строк, используя метод DataGridFactory.GetDataGridView.
4. Устанавливается режим автоматического изменения размера заголовков столбцов (ColumnHeadersHeightSizeMode.AutoSize).
5. Создаётся объект DataGridViewTextBoxCell (cell0) и его стиль задаётся равным стилю по умолчанию для newGrid.
6. Создаются и настраиваются пять столбцов (DataGridViewColumn):
  1. Time: Столбец для отображения времени.
  2. Slow Sma: Столбец для отображения медленной скользящей средней (SMA).
  3. Fast Sma: Столбец для отображения быстрой скользящей средней (SMA).
  4. Atr: Столбец для отображения значения ATR (Average True Range).
  5. Len in Atr: Столбец для отображения длины в ATR.

7. Для каждого столбца устанавливаются следующие свойства:

  1. CellTemplate: Устанавливается ячейка шаблона (cell0).
  2. HeaderText: Устанавливается текст заголовка столбца.
  3. ReadOnly: Устанавливается свойство, чтобы столбец был только для чтения.
  4. AutoSizeMode: Устанавливается режим автоматического изменения размера столбца.
8. Все созданные и настроенные столбцы добавляются в DataGridView (newGrid.Columns.Add).
9. Свойство Child объекта _host устанавливается равным созданному DataGridView (newGrid).
10. Ссылка на созданный DataGridView сохраняется в переменную.

 

Метод PaintTable:

  1. Обновляет таблицу с использованием данных свечей и индикаторов.
  2. Очищает все строки в таблице для подготовки к добавлению новых данных.
  3. Извлекает значения быстрой скользящей средней, медленной скользящей средней и ATR из соответствующих серий данных индикаторов.
  4. Проходит по всем свечам в списке.
  5. Для каждой свечи вызывает метод GetRow, который возвращает строку данных для добавления в таблицу. В метод передаются текущая свеча, соответствующие значения медленной скользящей средней, быстрой скользящей средней и ATR.
  6. Добавляет полученную строку в таблицу (_grid.Rows.Add).

 

Метод GetRow:

1. Создаёт и возвращает строку для таблицы на основе данных свечи и значений индикаторов (медленная и быстрая скользящие средние, ATR).
2. Создаётся новый объект типа DataGridViewRow.

Первая ячейка:

  1. Создаётся новый объект DataGridViewTextBoxCell.
  2. В ячейку добавляется значение времени начала свечи.

Вторая ячейка:

  1. Создаётся новый объект DataGridViewTextBoxCell.
  2. В ячейку добавляется значение медленной скользящей средней.

Третья ячейка:

  1. Создаётся новый объект DataGridViewTextBoxCell.
  2. В ячейку добавляется значение быстрой скользящей средней.

Четвёртая ячейка:

  1. Создаётся новый объект DataGridViewTextBoxCell.
  2. В ячейку добавляется значение ATR.

Пятая ячейка:

  1. Создаётся новый объект DataGridViewTextBoxCell.
  2. Если значение ATR не равно нулю, в ячейку добавляется вычисленное значение разницы между быстрой и медленной скользящими средними, делённой на ATR.

3. Возвращает заполненную строку для добавления в таблицу DataGridView.

 

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

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

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

Пример «Кастомные параметры для окна параметров» CustomParamsUseBotSample. Таблица в окне параметров.

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн