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

Сама логика основана на пробое индикатора Price Channel:
1. Входим LONG, если текущая цена пробила верхнюю линию индикатора. И текущая цена на старшем таймфрейме выше скользящей средней на старшем таймфрейме.
2. Выходим, если текущая цена пробила нижнюю линию индикатора.
Шаг 2. Конструктор. Создание и использование источников.

1. Создание полей для хранения источников. Это нужно, чтобы в любом месте робота можно было потом обратиться к источнику.
2. Вызываем у робота процедуру создания источника типа BotTabSimple. Дважды.
3. Источники такого типа хранятся в массиве TabsSimple. Первый сохраняем в источник, через который будем торговать. Второй у нас будет с большим таймфреймом.
4. Подписываемся на событие завершения свечи у источника для торговли. Там у нас будет основная логика.
5. Обратите внимание, при создании индикаторов используются разные источники. И на источнике для торговли у нас будет канал, а на источнике с большим таймфреймом будет скользящая.
Шаг 3. Создание параметров.
В примере можно подсмотреть сразу три типа параметра:
1. String – в данном случае перечисление.
2. Decimal – число с плавающей запятой.
3. Int – целое число.

1. Создание полей для хранения параметров. Это нужно, чтобы в любом месте робота можно было потом обратиться к параметру.
2. Создание самих параметров.
А так это выглядит в интерфейсе:


1. Создание полей для хранения индикаторов. Это нужно, чтобы в любом месте робота можно было потом обратиться к индикатору.
2. Создание индикатора Price Channel. На источнике для торговли (_tabToTrade).
3. Применение к индикатору Price Channel настроек длины из параметров.
4. Создание индикатора Simple Moving Average. На втором источнике (_tabBIgTf).
5. Применение к индикатору Simple Moving Average настроек длины из параметров.
Ну и бонусом, механизм обновления параметров в индикаторах, когда пользователь обновил параметры в интерфейсе:

1. Подписываемся на событие изменения настроек параметров индикаторов.
2. Обновляем настройки параметров у индикаторов. Перезагружаем их методом Reload и сохраняем.

1. Проверяем, чтобы данные по источнику номер 2 были подключены.
2. Берём данные из источника номер 1.
3. Берём данные из источника номер 2. Это скользящая средняя и последняя цена на графике.
4. Дополнительный фильтр. Смотрим, чтобы цена на старшем таймфрейме была выше, чем скользящая средняя там же.
Во время тестирования не забывайте, что источники отображаются в визуале в том порядке, в котором создаются.
У нас первый был источник для торговли, на который мы положили сверху индикатор PriceChannel. Здесь у нас таймфрейм 5ть минут:

Второй источник предполагается с более старшим таймфреймом. На него мы положили скользящую среднюю. Здесь таймфрейм 30 минут:

Удачных алгоритмов!
P.S.
Os Engine поддержка терминала: https://t.me/osengine_official_support
Обсуждаем в телеграмме: https://t.me/o_s_a_chat
Канал проекта: https://t.me/bad_quant
Комментарии