Робот с двумя источниками и таймфреймами.

Робот с двумя источниками и таймфреймами.

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

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

 

Шаг 1. Открываем исходный код робота TwoTimeFramesBot.

Находится он здесь:

Сама логика основана на пробое индикатора Price Channel:

1. Входим LONG, если текущая цена пробила верхнюю линию индикатора. И текущая цена на старшем таймфрейме выше скользящей средней на старшем таймфрейме.

2. Выходим, если текущая цена пробила нижнюю линию индикатора.

 

Шаг 2. Конструктор. Создание и использование источников.

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

2. Вызываем у робота процедуру создания источника типа BotTabSimple. Дважды.

3. Источники такого типа хранятся в массиве TabsSimple. Первый сохраняем в источник, через который будем торговать. Второй у нас будет с большим таймфреймом.

4. Подписываемся на событие завершения свечи у источника для торговли. Там у нас будет основная логика.

5. Обратите внимание, при создании индикаторов используются разные источники. И на источнике для торговли у нас будет канал, а на источнике с большим таймфреймом будет скользящая.

 

Шаг 3. Создание параметров.

В примере можно подсмотреть сразу три типа параметра:

1. String – в данном случае перечисление.

2. Decimal – число с плавающей запятой.

3. Int – целое число.

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

2. Создание самих параметров.

А так это выглядит в интерфейсе:

Шаг 4. Создание индикаторов.

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

2. Создание индикатора Price Channel. На источнике для торговли (_tabToTrade).

3. Применение к индикатору Price Channel настроек длины из параметров.

4. Создание индикатора Simple Moving Average. На втором источнике (_tabBIgTf).

5. Применение к индикатору Simple Moving Average настроек длины из параметров.

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

1. Подписываемся на событие изменения настроек параметров индикаторов.

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

 

Шаг 5. Использование разных источников в логике робота.

1. Проверяем, чтобы данные по источнику номер 2 были подключены.

2. Берём данные из источника номер 1.

3. Берём данные из источника номер 2. Это скользящая средняя и последняя цена на графике.

4. Дополнительный фильтр. Смотрим, чтобы цена на старшем таймфрейме была выше, чем скользящая средняя там же.

 

Шаг 6. Подключение разных источников в интерфейсе и запуск тестера.

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

У нас первый был источник для торговли, на который мы положили сверху индикатор 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

16:28
199

Комментарии

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