На страницах предыдущих обзоров мы уже рассматривали алгоритм построения ренко-графиков в терминале МТ4 и даже познакомились с одной интересной стратегией, поэтому пришло время затронуть более важную тему – использование renko советников.
По своему опыту могу утверждать, что автоматизация стратегий на ренко-графиках проходит без проблем лишь в одном популярном биржевом терминале – NinjaTrader, а вот во всех остальных программах, к которым привыкли российские трейдеры, начинаются «танцы с бубном», в частности:
Перед написанием статьи я даже специально проверил, что предлагают поисковики. Результат оказался предсказуемым – если обычных форекс-роботов выложено в свободный доступ бесчисленное множество, то в случае с «ренко» экземпляры можно пересчитать по пальцам, при этом половина из них платная, а вторая нерабочая.
Бесплатно скачать ренко-советник для MetaTrader 4 можно здесь:
На самом деле, если обычный советник был написан корректно, никаких проблем с его переносом на ренко-график возникнуть не должно, поскольку для решения этой задачи потребуется поправить лишь несколько строчек его исходного кода.
Как правило, в коде многих роботов есть функция OnTick – она относится только к советникам (не индюкам) и предназначена для обработки события NewTick, т.е. поступления новых котировок. На оффлайновых графиках, к которым относятся «ренко», она и является основным камнем преткновения.
Если попробовать запустить робота на автономном графике, в коде которого прописана строчка «void OnTick()», то он просто не станет работать, хотя смайлик будет улыбаться, демонстрируя, что всё в порядке.
Исправить данную проблему можно следующим образом – вместо упомянутой выше строки следует прописать следующий код:
Чтобы ренко советник заработал, этого ещё недостаточно, в частности, на следующем шаге в функцию Init() придётся добавить событие EventSetTimer(1):
Она работает для каждого робота в отдельности, поэтому потребуется дополнить код ещё несколькими строчками, чтобы она корректно отключалась:
Если всё было сделано корректно, робот начнёт работать на оффлайновых ренко-графиках. В обратном случае смотрите на ошибки, которые покажет компилятор.
Как правило, зарабатывать на «кирпичах» значительно проще, чем на обычных графиках, так как в этом случае результат анализа не искажается на фактор времени. Иначе говоря, каждая котировка имеет равный вес, в то время как при обычных спекуляциях большее предпочтение отдаётся свечам с высоким объёмом или расстоянием от Open до Close.
Предположим, что робот начал открывать сделки на синтетическом графике, но возникает ещё одна проблема, связанная с тестом и оптимизаций алгоритма. К счастью, она легко решается при помощи специального автоматического алгоритма RenkoChart_v3.5, который нам пригодится для импорта ренко-котировок.
На первом этапе подготовки к тестированию потребуется установить упомянутый алгоритм в соответствующую папку терминала, а также загрузить как можно больше минутных котировок необходимого торгового инструмента (сегодня это можно сделать непосредственно на сайтах брокеров через специальную форму).
На второй стадии открываем минутный тайфрейм инструмента и цепляем на него ренко советник Chart_v3.5. Сразу после этого действия откроется окно настроек, в котором задаются следующие параметры:
Затем нажимаем «ok» и слушаем пронзительный звуковой сигнал. Если он прозвучал, робот выполнил свою задачу – создал массив котировок для «кирпичного» графика. Найти их можно в папке «history», доступ к которой открывается после выполнения команды «Файл – Открыть каталог данных».
Отличить созданный hst-архив от прочих данных очень просто, поскольку перед названием тиккера у него расположен знак «_». Чтобы в дальнейшем было проще работать, я рекомендую скопировать этот факт на рабочий стол.
На третьем этапе придётся установить ещё один терминал того же самого брокера. Обращаю внимание – он должен отвечать нескольким критериям:
Когда дополнительный MT4 был установлен, можно приступать к импорту в него ренко-котировок, созданных в первой программе. Для этого переходим в меню «Сервис – Архив котировок», выбираем нужный актив и корректный таймфрейм (который был задан в настройках renko советника) и импортируем данные из созданного hst-файла.
В принципе, на этом всё, единственное, что следует учесть, так это один важный нюанс – в тестере работают роботы с переменной OnTick, а не Timer, поэтому если вы поторопились и уже переписали код под ренко-график, придётся вернуться к изначальной версии эксперта.
Кстати говоря, именно по этой причине советники без ошибок тестируются на ренко-графиках, но отказываются работать в режиме реального времени.