Данный пример робота служит демонстрацией реализации кастомных элементов параметров.
В нем показано:
1. Создание индикатора ATR на второй области графика.
2. Создание двух индикаторов SMA на основном чарте.
3. Добавление таблицы для вывода в окно параметров значение индикаторов.
4. Использование окна параметров робота для настройки элементов.
Для начала открываем папку с проектом и заходим в «project».
Далее открываем проект в Visual Studio.
Находим в проекте папку «Robots» и открываем ее.
Находим папку «TechSamples» и в ней уже выбираем нашего робота «CustomParamsUseBotSample».
Разбор робота построчно:
Строки 1-9:
Импортируются необходимые пространства имен:
Строки 12-15:
Определяется пространство имен OsEngine.Robots.TechSamples для организации кода и класс ElementsOnChartSampleBot наследует от BotPanel:
Строки 19-20:
Инициализируется панель бота:
Cоздается простая вкладка, сохраняется ссылка на вкладку в _tab для дальнейшего использования.
Строка 22-41:
Создание параметров робота:
Строки 43-56:
Создание индикаторов:
Создание и настройка индикаторов: быстрая и медленная скользящие средние, (SMA) и ATR.
Строка 58:
Подписываемся на событие ParametrChangeByUser:
При изменениях параметров индикаторов пользователем вызывается данный метод и обновляет их значения.
Строка 60:
Подписывается на событие CandleFinishedEvent:
Строки 64-66:
Настройка интерфейса параметров:
Строки 69-74:
Создание пользовательской вкладки для значений индикаторов:
Строки 79-136:
Метод, отвечающий за создание таблицы значений индикаторов:
Строки 138-161:
Метод, отвечающий за обновление значений таблицы:
Строки 163-187:
Метод, который создает ячейки в таблице уже для готовых значений:
Строки 191-200:
Метод обновления значений параметров индикаторов:
Строки 202-226:
Этот блок отвечает за набор переменных робота:
Строки 228-236:
Переопределение методов GetNameStrategyType и ShowIndividualSettingsDialog.
Первый метод возвращает имя стратегии, второй - пустой предназначен для отображения индивидуальных настроек.
Строки 240-273:
Этот метод, вызываемый при каждом формировании новой свечи на графике, отвечает за обработку торговых сигналов робота:
Строки 275-296:
Метод, отвечающий за открытие позиции:
Строки 298-320:
Метод, отвечающий за закрытие позиции:
Заходим в тестер и запускаем нашего робота, открываем окно параметров.
1. «Base»:
В ней находятся базовые настройки робота.
2. «Indicators»:
Здесь мы настраиваем наши индикаторы.
3. «Exit settings»:
Настройка значений для логики выхода из позиции.
4. «Indicators values»:
В этой вкладке параметров находится таблица значений индикаторов.
Для создания такой таблицы нам требуется три следующих метода:
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.
Вывод: этот пример робота будет полезен для демонстрации, как создавать и настраивать кастомные элементы в окне параметров робота. Он показывает, как добавлять и настраивать индикаторы на графике, а также как создавать таблицу для вывода значений индикаторов, что может служить готовым шаблоном для реализации подобных задач.
ООО «ВАН ТЕХНОЛОГИИ»т: +7 953 769 56 45
* Торговля на финансовых рынках связана с риском, который лежит на Вас.
* Ничто из написанного на сайте o-s-a.net не является рекомендацией.
* Если Вы этого не понимаете, не читайте этот сайт, ничего не покупайте.
Комментарии