Мастер класс «Работа с тестером стратегий MetaTrader4» — часть 1
На протяжении всей своей истории человек стремился облегчить или ускорить процесс добычи пищи и получения материальных благ. Сначала он придумал мотыгу, чтобы не копать землю руками, потом пришел к созданию целых механизмов для поднятия и транспортирования грузов. Сейчас мы пользуемся сотней различных технических приспособлений, которые в значительной степени облегчают нашу жизнь и делают ее более комфортной. Дошло до того, что в наше время ручной труд считается изюминкой, за которую нужно платить в несколько раз больше, чем за такую же работу механизма. И при всем этом ручная работа может быть на порядок ниже по качеству и точности, нежели работа машины.
Биржевая автоматизация
Точно также и в трейдинге – каждый участник стремится максимально упростить свою работу, повысив ее эффективность. Казалось бы, компания MetaQuotes уже создала удобный терминал для комфортной работы. Чего еще желать? Но ведь предела совершенству не существует. Новый трейдер – это новое видение ситуации, новые привычки. Поэтому в терминале MetaTrader 4.0 имеется возможность вносить свои коррективы в индикаторы и разрабатывать автоматические (или механические) торговые системы (соответственно АТС или МТС), которые, по большому счету, не требуют участия человека. Такие системы в среде MetaTrader 4.0 называют советниками или экспертами.
Кто-то говорит, что машина не может сама зарабатывать на рынке Forex, а кто-то только так и торгует. И нет здесь ошибочного мнения — обе стороны по-своему правы. Потому что у каждого свое видение жизни вообще и рынка в частности. Как бы то ни было, любой трейдер касался темы автоматической торговли, а представить себе биржевого спекулянта, который хотя бы раз не бросал на график обычную среднюю, вообще невозможно. К тому же, никто ведь не заставляет трейдера использовать эксперта для полностью автоматической, бездумной торговли. Самое простое применение экспертов – тестирование на истории. Это позволяет быстрее оценивать выбранную стратегию, сразу отбрасывая заведомо непригодную. По подходящей же стратегии создается сигнальный индикатор, который четко отследит необходимую ситуацию и сообщит трейдеру о возможной сделке. А уж трейдеру предстоит решать, действовать или нет в свете фундаментальных факторов, которые намного труднее (практически невозможно) описать в МТС.
Начнем изучение с тестера стратегий в MT4
Зачастую проблемой начинающих создателей советников является не сам набор кода, а тестирование и отладка самого продукта. Причина здесь проста. Как любой серьезный продукт, прошедший определенные ступени эволюции, тестер MT4 имеет довольно много возможностей, которыми необходимо уметь правильно пользоваться. Именно с этого момента я и предлагаю начать обучение программированию на языке MQL4.
Запустите терминал МТ4 и в главном меню выберите пункт Вид, а в раскрывшемся подменю – пункт «Тестер стратегий» или просто нажмите сочетание клавиш Ctrl+R. В нижней части терминала откроется окно тестера стратегий (см. рис.1).
Если вы видите в окне не все элементы, приведенные на рисунке, увеличьте размер окна тестера.
Для проведения теста необходимо выбрать непосредственно советника. Это делается при помощи выпадающего списка напротив надписи «Советник». В качестве «подопытного кролика» предлагаю выбрать известный пример MACD Sample. Это реализация классической трактовки индикатора MACD – вход на покупку, когда сигнальная линия пересекает главную сверху вниз в отрицательной области, и вход на продажу, когда сигнальная линия пересекает главную снизу вверх в положительной области. В дальнейшем на его примере мы и перейдем к написанию советников.
Далее выбираем валютную пару, на которой необходимо произвести тестирование. Это делается в выпадающем списке напротив надписи «Символ». Здесь будут только те валютные пары, которые доступны в окне «Обзор Рынка» (Ctrl+M).
В пункте Модель доступно три типа тестирования: «По ценам открытия», «Контрольные точки» и «Все тики». О них немного подробнее, так как это один из краеугольных камней тестирования.
Модели тестирования торговых роботов в MT4
В модели «По ценам открытия» тестер не производит полного моделирования ситуации. В расчет берется только цена открытия каждого бара (или свечи). То есть, если период тестирования часовой (Н1), то будет смоделирована только цена открытия часовой свечи. При использовании этой цены производится расчет всех показаний индикаторов, проверяются условия открытия и закрытия позиций, включая достижение стопа и профита. Затем тестер сравнивает стоп и профит открытой позиции (или цену открытия отложенного ордера) с максимальным и минимальным значениями на свече (заметьте, что по ценам High и Low не производится расчетов значений индикаторов). В случае попадания в диапазон от минимума до максимума одной свечи и стопа, и профита, тестер посчитает, что сначала сработал стоп, хотя на самом деле могло быть с точностью до наоборот. К тому же подтяжка скользящего стопа (трейлинг-стоп) будет выполнена только исходя из цены открытия свечи. Внутри тела свечи трейлинг-стоп двигаться не будет. Несмотря на перечисленные недостатки этой модели, у нее есть неоспоримое достоинство – высокая скорость тестирования. Если создавать эксперта, который производит расчет необходимых значений только по ценам открытия свечи (а профессиональные эксперты так и пишутся), то использование данной модели тестирования вполне оправданно.
Модель «Контрольные точки» подобна предыдущей модели с одним дополнением – наряду с ценами открытия текущего периода использует цены открытия ближайшего меньшего периода (для Н1 ближайший меньший – М30, для М30 – М15, для Н4 – Н1 и т. п.). Таким образом, на один бар уже приходится не один, а от двух до шести тиков в зависимости от периода. Эта модель используется очень редко, так как в скорости уступает модели «По ценам открытия», а дополнительной информации дает очень мало.
Самая точная, но в то же время и самая медленная модель – «Все тики». Хотя на абсолютную точность она также не претендует. Дело в том, что самая детальная история, которой располагает терминал, – это минутные бары. Каким образом развивалось движение цены внутри минутного периода – «фантазия» тестера, если можно назвать таким словом четкий алгоритм моделирования тиков. К чести разработчиков необходимо признать, что реальное движение цены внутри минутного бара и смоделированный тестером тиковый поток имеют не очень большое различие, которое может существенно повлиять лишь на стратегии со слишком малыми значениями профита или стопа (их называют скальперами или пипсовщиками). Итак, в результате моделирования каждого тика, а также «принятия к сведению» всех данных по открытию и закрытию свечи (а это уже точные и совсем не выдуманные исторические данные), тестер производит расчет всех необходимых значений на каждом тике, как это и бывает в реальности.
При дальнейших тестах можно будет увидеть разницу между всеми перечисленными моделями, сравнив результаты.