Первое о чем нужно подумать при создании индикатора, это данные с которыми он будет работать. Индикатор должен получить максимальное количество действительно полезных данных. Трудно получить хороший прогноз по EURUSD, используя данные о средней температуре тела животных московского зоопарка.
Выбор данных
1) На мой взгляд в индикаторе просто обязаны использоваться самые свежие данные. Поэтому в наш набор мы возьмем цену закрытия бара.
2) Данные о диапазоне бара дают информацию о волатильности. Будем использовать разницу максимума и минимума бара.
Далее хотелось добавить объём(в нашем случае он тиковый), но его непостоянность от брокера к брокеру сделает индикатор разным в зависимости от поставщика котировок.
3) В своих разработках я часто использую формулу "Эффективность движения" - изменение цены за промежуток времени / сумму всех диапазонов за этот промежуток. Было решено добавить эти данные, так как они являются достаточно информативными.
Создание формулы
Теперь имея данные, необходимо связать их в общую формулу. Я решил испробовать новый метод поиска связей, МТ5 эффективно использует многоядерность процессора очень ускоряя тестирования, этим и было решено воспользоваться...
В течении недели я записывал формулы с использованием выбранных данных. В ход шло все, от бредовых связей до формул из специализированной литературы. В итоге получилось 80 вариантов. Подготовив необходимые коды, все это было предоставлено тестеру стратегий. Оптимизатор МТ5 нашел лучший вариант за 2 дня.
Расширяем адаптивность
Для гибкости нам потребуются внешние настройки. Так как изначально был выбран автоматизированный путь, я не стал отклонятся и добавил для каждого вида данных сглаживание с использованием распространенных алгоритмов. Таким образом получилось 6 параметров. 3 на выбор метода сглаживания и 3 на выбор периода.
В последующих тестах было решено добавить уровни. В итоге индикатор получился ровный и красивый.
Индикатору присвоено незамысловатое имя ForExp1. Индикатор можно скачать совершенно бесплатно https://www.mql5.com/ru/market/product/31003
Пришло время начинать тестировать торговую систему.
Продолжение следует...