07/11/2024

Тестер в терминале MetaTrader 4: Это необходимо знать

 

Тестер в терминале MetaTrader 4: Это необходимо знать

Работа на финансовых рынках невозможна без наличия торговой системы. Трейдеры тратят много сил и времени на разработку правил открытия и закрытия торговых позиций, эмпирически подбирают методы сопровождения этих позиций следящим стоп-приказом (Trailing Stop). На помощь привлекаются знания из различных областей наук. И когда стратегия создана, на первый план выходит тестирование механической торговой системы (МТС) на исторических данных. А значит, тестер становится важнейшим компонентом любой программы технического анализа.

Два вида моделирования: упрощенное и детализированное

Да, возможность тестирования есть далеко не в каждой программе для технического анализа(ТА), тем более не в каждом терминале! И даже там, где тестер заявлен и возможность тестирования есть, возможны ошибки или архитектурные ограничения и запреты. Поэтому при разработке тестера для терминала MetaTrader 4 так важно было сразу заложить такие решения на уровне архитектуры, которые не позволяли бы существовать целому классу стратегий, основанных на знании будущего. Есть два пути при тестировании любой стратегии программно:

    Подготовить заранее файл данных на основе уже сформированных баров, который содержит все требуемые значения цен, индикаторов и других показателей, и потом все эти данные скармливать тестеру (генерируется вся необходимая последовательность с теоретической возможностью заглянуть в будущее). Данные идут в виду уже сформировавшихся баров и без моделирования развития ценовых баров;

Треугольник «Current Time» обозначает место, где находится тестер в данный момент. В первом случае, существует Прошлое (Last), где тестер уже обработал данные, и Будущее (Future), куда тестеру еще предстоит прийти. И прошлое и будущее уже рассчитаны (индикаторы, цены закрытия, открытия, High и Low), тестер просто проходит по этой последовательности. И если есть лазейка для подглядывания в будущее (явная или ошибочная), то результаты тестирования на таком тестере требуют тщательной проверки. И закрытие известных лазеек не гарантирует, что не найдутся другие обходные пути. Это потенциально постоянная головная боль разработчика тестера и пользователей тестера.

Во втором случае мы имеем только Прошлое (Last), Будущего нет по определению(темный прямоугольник). При таком подходе мы всегда имеем информацию только о прошлом, но не имеем никакой информации о будущем, как и в реальной торговле. С приходом каждого нового тика (изменения цены) в тестере мы перемещаемся в настоящем, треугольник текущего времени смещается вправо на новое известное время и получает новые цены. Каждый новый тик строит Настоящее, увеличивается информация о Прошлом, но по-прежнему впереди темное неизвестное Будущее. Тестер в этом случае не имеет возможности заглянуть в будущее просто по определению, какие бы ошибки не допускал трейдер при написании своей стратегии.

Именно в этом и заключается разница в двух подходах. Первый путь создания тестера дает обманчивую легкость и скорость тестирования, второй дает уверенность в том, что все написанные стратегии будут вести себя в тестере абсолютно так же, как и в режиме торговли реального времени при одинаковых ценовых изменениях. Не случайно, смоделированные для тестера последовательности хранятся в виде файлов, содержащих снимки состояния бара (файлы с расширением fxt), которые можно открыть как и обычный график через меню «Файл» — >> «Открыть автономно».

Файлы тестера имеют значок с буквой G (generated) и дают информацию о типе моделирования, диапазоне смоделированных изменений цены, количестве баров и тайм-фрейме:

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

На рисунке показано развитие бара на 15 минутном тайм-фрейме, именно в такой последовательности видел тестер эту 15-минутную свечу (от 10:00 21 апреля 2006 года) при тестировании эксперта. Сколько раз менялась цена на минутном баре — столько раз изменялся вид свечи в процессе тестирования. Таким образом, в каждый момент времени тестер видит корректную цену Open (которая фиксирована и равна Open[0]), корректные максимальную и минимальную цены (которые могут меняться в период развития бара), равные текущему High [0] и Low[0], и последнюю известную цену Bid, равную текущей цене Close[0], которая меняется до закрытия бара. Объемы также моделируются максимально корректно, это видно по нарастающей зеленой гистограмме объемов, как и на обычном графике. Красной ломанной линией показан индикатор Moving Average (простая скользящая) с периодом 1. Эта скользящая средняя показывает где находилась цена Close в каждый момент времени при тестировании.

Важно! Тестер в MetaTrader 4 обрабатывает каждое изменение цены и не позволяет заглянуть в будущее никоим образом.

Моделирование на разных тайм-фреймах тестируемого инструмента

Тестер в MetaTrader 4 позволяет видеть не только тестируемый тайм-фрейм, но и другие старшие и младшие тайм-фреймы. Таким образом, если мы тестируем советника на EURUSD M15, то можем смотреть значения индикаторов для EURUSD H1 или EURUSD M5. А также видеть максимальную и миимальную цену текущего нулевого бара на любом доступном тайм-фрейме EURUSD. Если нам необходимо получить максимальную цену текущего дня, мы просто смотрим значение iHigh(NULL,PERIOD_D1,0). Также как и при торговле в онлайне. И не имеет значения на каком периоде мы тестируем советника, или на график какого тайм-фрейма он прикреплен в режиме реального времени.

Таким образом, у тестера возникает задача корректно моделировать не только текущий тайм-фрейм, но и все другие необходимые тайм-фреймы. Эта задача в тестере решается таким же образом: кроме моделирования развития бара на текущем нулевом баре происходит точно такое же моделирование и всех остальных тайм-фреймов. Поступление каждого нового тика изменяет информацию о состоянии нулевого бара на каждом тайм-фрейме, все происходит синхронно. Рисунок иллюстрирует это:

На рисунке показано синим цветом завершенные бары, зеленым цветом текущий изменяющийся нулевой бар. Цифры +1 обозначают поступление нового тика. Каждый новый тик поступает сразу на все необходимые моделируемые тайм-фреймы. Чтобы убедиться в этом, достаточно запустить на тестирование простейший советник CheckModelling.mq4, который выводит видимые тестеру цены в каждый момент времени.

Корректно моделируются все запрашиваемые тайм-фреймы, причем не только цены, но и объемы. Тестер видит синхронное развитие цены на каждом тайм-фрейме, как и в реальной жизни:

Видно, что цена Low для 15-минутного тайм-фрейма отличается от цены Low вышестоящих тайм-фреймов. Аналогично с ценой High. При этом цена Bid на всех тайм-фреймах одинакова при поступлении нового тика.

Важно:моделирование всех тайм-фреймов родного инструмента происходит также корректно — цены Open, High, Low и Close моделируются 100% корректно. Объемы старших тайм-фреймов также моделируются 100% корректно.

Моделирование цен на других инструментах

Объемы смоделированных данных для точного тестирования на истории порой достаточно велики и могут быть требовательны к ресурсам памяти и процессора. Тестер в MetaTrader 4 не позволяет проводить портфельное тестирование, но развитие компьютерной техники идет такими темпами, что, возможно, в скором времени станет доступным и точное тестирование сложных стратегий, открывающих позиции на множестве инструментов. Несмотря на это, тестер в МТ4 позволяет получать данные о ценах других символов, отличных от тестируемового. При этом моделирования не происходит, а данные берутся как есть. Нулевой бар упрощается до представления на начальной стадии развития High[0]=Low[0]=Close[0]=Open[0], Volume[0]=1, что позволяет узнать цену на начало бара, но не на конец. Чтобы убедиться в этом, достаточно запустить на тестирование простой эксперт на EURUSD M15 в режиме «Every tick».

Расчеты индикаторов при моделировании

Десять лет назад недостаточные мощности домашних компьютеров и рабочих станций диктовали свои условия разработчикам программного обеспечения. Ограничения на оперативную память, менее 100 MГц тактовая частота процессора — все это позволяло применять только самые экономные виды расчета и тестирования торговых стратегий. Внутрибарного моделирования не существовало как понятия, все необходимые индикаторы рассчитывались заранее и подавались тестеру в готовом неизменном виде. Тогда это было единственным решением, которое накладывало свои ограничения на тестирование. При таком подходе мы имеем корректные значения индикаторов только на момент закрытия бара, использовать эти значения на нулевом баре фактически означало подсматривать в будущее.

Тестер в MetaTrader 4 не получает никаких готовых рассчитанных данных, он получает только моделированное развитие цены, и на основании поступающих новых цен в процессе тестирования производится расчет всех необходимых индикаторов на лету. То есть, все индикаторы рассчитываются точно таким же образом, как и при работе в режиме онлайн. Это большой плюс для тестера, но если алгоритм индикатора написан не оптимально, то тестирование советника может существенно замедлиться. Сам по себе расчет индикатора в тестере происходит так же быстро, как и в терминале, и неоптимизированный алгоритм может себя не проявить. Но в тестере MetaTrader4 при расчетах на миллионах баров (а минутная история по EURUSD c 1999 года близка к трем миллионам баров) любая неоптимальность сразу проявляется. Не забывайте, что потиковое моделирование минутного бара дает не один, а несколько тиков, каждый из которых тестер обсчитывает.

В наше время процессоры работают уже с гигабайтами оперативной памяти на частотах в несколько гигагерц, на смену 32-ти битовой архитектуре идут уже 64 битовые системы и появилась многопроцессорность. Но многие по-прежнему думают категориями прошлого века, и проецируют все недостатки программ ТА предыдущих поколений и производителей на тестер MetaTrader 4. Эти люди пугаются внутрибарного моделирования, для них оно — синоним некорректной работы тестера. Тестер в MetaTrader 4 показывает и доказывает не только возможность достоверного моделирования цены на любом тайм-фрейме, но и необходимость именно такого подхода при тестировании стратегий на исторических данных.

Вы можете посмотреть видео и оценить, как происходит развитие цены и расчет индикаторов в тестере:

Важно: тестер реализует реальную модель тестирования, а это требует определенных ресурсов.

Наиболее частые вопросы из-за незнания правильного моделирования цены в тестере

MetaTrader 4 официально выпущен 1 июля 2005 года, и все эти годы на многих форумах продолжают возникать одни и те же вопросы, связанные с неправильным пониманием работы тестера. Здесь собраны наиболее частые вопросы, порожденные мифами о тестерах прошлых лет.

    Почему у меня советник, использующий индикатор, открывает сделки не там?

После окончания тестирования кнопкой «Open chart» можно открыть график, на котором будут видны все точки входа и выхода, а также все индикаторы, которые вызывались из эксперта. При этом часто забывается, что значения индикатора, рассчитанные на истории в данный момент могут существенно отличаться от значений, которые были в момент тестирования (фактически, в режиме онлайн). Яркий пример такого индикатора — индикатор ZigZag.

После открытия графика тестирования эксперта, в котором использовались вызовы этого индикатора мы можем хорошо видеть переломы ZigZag’a. Стратегия, построенная на отслеживании таких переломов на нулевом баре, вроде бы должна давать хорошую прибыль. Многие, не понимающие работы тестера MetaTrader 4 ошибочно полагают, что такая стратегия должна в тестере показывать безусловную прибыль, потому что в других программах теханализа для такой стратегии происходит подглядывание в будущее. Но прибыли нет, и более того, сделки открываются совсем не там! Запустите тестирование в визуальном режиме, наложите все индикаторы, которые вызываются данным экспертом — и иллюзии пройдут! Для этого не требуется специальных знаний — тестер сам все покажет в визуальном режиме. Пример такого эксперта прилагается — ExpertZigzag:

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

Одна из ошибок при написании индикаторов — некорректный расчет значений индикатора и нарушения в логике. Такая ситуация приводит к тому, что индикатор начинает «врать» со временем, в нем начинают накапливаться ошибки. Другими словами, индикатор вчера показывал другие значения нежели значения на том же участке сегодня.

Ошибку в таких индикаторах можно увидеть и в режиме онлайновой работы индикатора. Например, накладываем индикатор на 15 минутный график, ждем появление 3-4 новых баров и накладываем еще один такой же индикатор, но с другими цветами. Разницу зачастую можно будет увидеть даже визуально. Пример такого некорректного индикатора прилагается:

Важно: индикаторы в тестеры рассчитываются «на лету» как при онлайновой работе, поэтому все ошибки в логике индикатора проявятся и в процессе тестирования!

Для моделирования тестер использует данные из fxt-файла. Обычно этот fxt-файл генерируются самим тестером на основании имеющейся истории в файлах с расширением *.hst (history). Но если подготовленный fxt-файл сгенерирован в другой тайм-зоне, или по котировкам другого брокера (или подготовлен самостоятельно — формат fxt файлов открыт), и при этом данные в этом fxt-файле не соотвествуют данным в существующих hst-файлах — то возможны всякие казусы. Обычно такое бывает после ручного импорта и переконвертирования котировок из сторонних источников.

Например, в советнике происходит обращение к функции iOpen(NULL, PERIOD_D1,1) или iHighest(NULL,PERIOD_D1,MODE_HIGH,20,1). Выражение iOpen(NULL, PERIOD_D1,1) запрашивает цену открытия вчерашнего дня на том же символе, на котором происходит тестирование. Выражение iHighest(NULL,PERIOD_D1, MODE_HIGH,20,1) дает индекс дневного бара, который имеет самый высокий High на протяжении 20 баров начиная с первого (вчерашнего дня). Обе функции в тестере вычисляются на основании данных из hst-файлов.

И если файл fxt не соответствует хранящейся истории в hst-файлах(в данном примере данные по EURUSD1440.hst), то в тестере будут совсем другие цены. Получаются две разные истории — одна в тестере и другая в файле EURUSD*.hst.

Важно: для корректного тестирования необходимо соотвествие между данными в fxt и hst файлах. Нежелательно использовать кусочный импорт котировок из сторонних источников. Используйте штатный History Center с минутной историей котировок с 1999 года. Минутные котировки из History Center автоматически пересчитываются во все таймфреймы и конвертируются в таймзону текущего счета, что обеспечивает отсутствие «временных сдвигов».

Так как моделируются только цены нулевого бара, то значения стандартных и пользовательских индикаторов на остальных барах происходит на основании данных из hst-файлов. То есть, расчет правильных значений индикатора невозможно получить без корректных исходных ценовых данных других таймфреймов.

Важно: перед началом тестирования убедитесь, что подкачаны все необходимые ценовые данные других тайм-фреймов, и эти данные являются корректными. Штатный History Center обеспечивает корректность всех таймфреймов, так как автоматически пересчитывает из минуток все остальные периоды.

Заключение

Тестер в MetaTrader 4 является результатом многолетнего опыта по написанию нескольких поколений торговых терминалов с 2000 года. Было сделано все, чтобы дать возможность трейдеру тестировать свои стратегии с максимально возможной достоверностью. Это исключает необходимость многомесячного тестирования торговых идей в режиме реального времени. Но знание всех возможностей тестера позволит сэкономить время и лучше представлять важность правильного написания индикаторов и экспертов.

Тестер стратегий МТ4

Ткаченко Олег

Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  1. Цикличные тестеры. Они последовательно перебирают одну свечу за другой. Получая новое значение последней свечи, они в соответствии с формулой проводят вычисления, учитывая данные предыдущих свечей. При совпадении факторов, указанных в коде/параметрах, открывают и закрывают ордера. По итогу тестирования выдается статистика по сделкам. Недостаток тестеров: в результатах не учитывается реальный спред, проскальзывания, из-за чего итог тестирования бывает далек от того, что будет на реальном счете.
  2. Событийно-ориентированные тестеры. Максимально приближены к реалистичным событиям. Архитектура тестера «заточена» на то, чтобы с наступлением конкретного события генерировать новые ситуационные случайные события, влияющие на результат. Недостаток таких тестеров — сложный код и как следствие большая вероятность ошибок. Для разработки торговой системы под такой тестер нужно знание кода.

1. Тестирование индикаторов и ручных стратегий в тестере Метатрейдер 4

  • Абстрагироваться от правой части графика. В режиме визуализации правая часть графика еще не нарисована, трейдер не знает, как поведет себя цена и принимает решение, исходя из информации, которая есть на текущий момент, «не подглядывая в будущее».
  • Увидеть, есть ли перерисовка индикатора.
  • Тестирование возможно только на одном инструменте, портфельного тестирования нет.
  • Размерность и кратность лотов, свопов, комиссий берутся из настроек текущего аккаунта.
  • Моделирование ведется максимально близко к рыночным условиям, но на кросс-курсах возможны значительные расхождения из-за отсутствия точных курсов в момент конвертации на каждом временном отрезке.
  • Режим открытия сделок на тестовом периоде — Instant Execution.
  • На нестандартных таймфреймах тестирование не проводится, даже если добавить их с помощью скрипта.
  • Заходим в «Сервис/Архив котировок».
  • Отмечаем нужную валютную пару, выбираем графики М1 (по ним будет наиболее точная история).
  • Загружаем котировки.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Совет. Один из вариантов стресс-тестирования предусматривает установку заведомо худших параметров, чем условия реального рынка. Устойчивость торговой системы к форс-мажору — залог успеха в обычных условиях, потому стресс-тестирование предусматривает анализ работоспособности торговой системы (особенно это актуально для советников) при разных издержках (спреде, свопе и т.д.). МТ4 не позволяет выставлять какой угодно спред и здесь на помощь придет скрипт Spread Changer. Если не найдете обновленную (бесплатную) версию в интернете, пишите в комментариях адрес электронной почты, отправлю скрипт как можно скорее.
  • Все тики. Наиболее точный и долгий метод. Генерация тиков внутри свечи. Свечи формируют по наименьшему таймфрейму М1. Суть метода: бар формируется по схеме OHLCV (Open — High — Low — Close, Volume). Внутри самого бара цена может колебаться в ту или иную сторону несколько раз, что влияет на точность расчетов и нагружает тестер.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Контрольные точки. Наиболее грубый метод, в соответствии с которым тестер берет данные из ближайшего меньшего таймфрейма, благодаря чему тестирование становится более быстрым, но менее точным. Например, для таймфрейма М5 берутся данные таймфрейма М1. Используется для создания общего представления о работоспособности индикатора, не более.
  • По ценам открытия. Наиболее быстрый метод. Советник анализирует рынок и открывает сделки в начале формирования новой свечи (цена открытия). Первый шаг — это формирование бара (Open = High = Low = Close, Volume = 1), следующий шаг — выдача полностью сформированного бара. На графике бары идут один за одним без внутренних колебаний, в формуле индикатора учитывается только единственная цена — цена открытия бара. Трейлинг внутри бара не двигается. Если тейк-профит и стоп-лосс попадутся внутри свечи, то тестер сначала запустит стоп, хотя могло бы быть наоборот. Потому по этой модели тестируют советники, где не предусматриваются стоп и тейк-профит ордера.
  • Универсальность. Тестер позволяет тестировать любые отдельно взятые индикаторы и полноценные торговые системы (ручные стратегии и торговые советники). Любой уникальный индикатор, который по коду совместим с МТ4, может быть наложен на график и протестирован.
  • Программа позволяет совместное использование с другими симуляторами. Тестер МТ4 можно запускать как отдельно, так и в комбинации с другими аналогичными программами. Например, после установки FX Blue Trading Simulator, навигационные настройки задаются в окне тестера МТ4. Иными словами, FX Blue интегрируется в базовый симулятор платформы.
  • Не все функции в тестировании индикаторов работают корректно. Есть проблемы с переносом индикаторов (их добавлением) во время паузы, индикаторы не получают обновленную информацию с других таймфреймов, из-за чего искажается результат.
  • В процессе тестирования нет возможности менять периоды.
  • Нельзя открывать сделки. Можно добавлять во время паузы другие индикаторы, менять отображение «свечи/бары», убирать сетку, менять цветовую гамму, но не открывать ордера. Соответственно нельзя оценить доходность вашей стратегии и прочую статистику.
  1. Устанавливать дополнительный тестер ручных стратегий, дополняющий функционал тестера МТ4.
  2. Разрабатывать на основе индикатора советник, добавив в код индикатора условия открытия/закрытия сделок.
  3. Визуально оценивать результативность индикатора. В момент, который кажется удачным, тестирование ставится на паузу, в потенциальной точке входа ставится стрелка или любой другой символ (Вставка/Значки). Трейдер может только визуально оценить успешность решения, так как открытия ордеров нет, а значит нет и статистики.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

2. Тестирование автоматических торговых систем в тестере Метатрейдер 4

  • Котировки MetaQuotes — как их закачивать, рассказано в предыдущем разделе. К их качеству часто выставляются претензии, но для тренировки подойдет.
  • Котировки брокера, которые должны быть в платформе, скачанной непосредственно с его сайта.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  1. Тестирование. Здесь задается начальный депозит, есть возможность выбора направления сделок (например, открытие только длинных или только коротких позиций).
  2. Входные параметры. Здесь можно выставить объем лота, максимальный риск на сделку, параметры советника. Колонки «Старт», «Шаг» и «Стоп» нужны для оптимизации советника. Галочки в окне переменных не ставятся.
  3. Оптимизация. Эта вкладка нужна уже после того, как советник будет протестирован и понадобится его оптимизация. Ей я уделю внимание ниже в отдельном разделе.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • HistoryTotal — количество баров всего исторического периода тестирования.
  • StartBar — номер бара, с которого начато тестирование.
  • StartGen — номер бара, с которого началось моделирование на основе данных истории ближайшего таймфрейма (более нижнего).
  • StartGenM1 — номер бара, с которого начато моделирование на основе минутного таймфрейма.
  • 0,25, 0,5 и 0,9 — весовые коэффициенты.
  • Светло-зеленый. Моделирование на минутном таймфрейме.
  • Темные оттенки зеленого. Моделирование на старших таймфреймах (от М5 до Н4).
  • Розовый оттенок. Чистое фрактальное моделирование без данных меньшего таймфрейма.
  • Серый оттенок. Моделирование не проводилось.
  • Нажимаем в основном меню «Файл/Открыть каталог данных».
  • Заходим в папку History, где находим папку с названием своего торгового сервера.
  • В папке удаляем все файлы по тестируемой валютной паре. Загружаем котировки еще раз.
  • Количество сделок — не менее 150 для любого таймфрейма.
  • Математическое ожидание — это чистая прибыль, деленная на количество сделок. Измеряется в валюте депозита, но кому удобнее, может переводить ее вручную в пункты. Низкое значение матожидания (менее 10 пунктов) может говорить о том, что советник быстро закрывает прибыльные сделки (то есть урезает потенциальную прибыль).
  • Абсолютная просадка — это разность между стартовой суммой депозита и наименьшим его значением за весь период тестирования. Максимальная просадка — это разность между наибольшим и наименьшим значением депозита.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Формат HTML. При сохранении бэктеста МТ4 предлагает формат HTM, но HTML — более привычное (на слуху) расширение, потому те, кто подделывает бэктест, автоматически ставят именно его. Несмотря на то, что при выгрузке формат HTML можно прописать вручную, смысла в этом нет. Потому HTML — первый признак того, что бэктест — подделка.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Пробелы или пропуск строк. МТ4 выгружает отчет сплошным текстом, наличие пробелов говорит о том, что бэктест корректировался вручную или предварительно загружался в какой-то редактор.
  • Лишние символы (точки, запятые). Проще всего сгенерировать любой отчет на МТ4 и визуально сравнить выдачу статистики со своим и чужим бэктестом.
  • Отсутствие комиссий, неактуальные котировки, ошибки в спреде. Отсутствие комиссий — явный признак того, что тестирование проводилось на демо-счете. Можно выгрузить данные в Excel и парой формул проверить соответствие комиссий, цен открытия/закрытия, суммы дохода и баланса между собой. Если убыточные сделки были удалены или заменены цифры, Excel покажет расхождение.
  • Одинаковые тикеты, несоответствие очередности тикетов и времени открытия сделок.
  1. Необходимость оптимизации только что созданного советника на других временных периодах или других инструментах.
  2. Изменение рыночной ситуации. Рынок волатилен, динамика движения котировок изменчива, потому любые торговые системы со временем нужно заново подстраивать. Перебор параметров происходит в тестере автоматически.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Balance. Тестер отбирает лучший прогон по итоговому значению баланса депозита. Набор лучших настроек будет соответствовать той версии прогона, на которой будет показана максимальная прибыль.
  • Profit Factor. Ключевым параметром будет соотношение прибыльных и убыточных сделок. Если значение будет равно 1 или меньше по всем вариантам прогона, советник к торговле не допускается. Оптимальной будет та версия, где соотношение будет максимальным в пользу прибыльных сделок.
  • Expected Payoff. Ключевой параметр, на который ориентируется тестер — математическое ожидание, которое должно быть не менее размера спреда.
  • Maximal Drawdown. Ориентир — максимальная просадка, являющаяся показателем уровня реального риска. В теории не должна быть больше, чем сумма стартового депозита.
  • Drawdown Percent. Ориентир — относительная просадка.
  • Custom. Показателем оптимизации будет критерий, указанный в функции советника OnTester(), где пользователь может добавить любой свой показатель оптимизации. По отзывам трейдеров, данный пункт не работает.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Значение — текущее значение параметра.
  • Старт — первоначальное значение.
  • Шаг — шаг увеличения первоначального значения.
  • Стоп — конечное значение.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  • Тестирование на 2-х равных участках. Оптимизация проходит на обоих, сохраняются до 10-ти оптимальных вариантов параметров на каждом из участков. За основу берется тот вариант прогона, где на обоих участках параметры приблизительно одинаковы.
  • Форвард-тестирование. Участок делится на 3 части: первые 2 — период тестирования и оптимизации, последний — участок форвард-тестирования, на котором отбирают лучшие результаты.
  • Бэкворд и форвард тестирование. Участок делится на 3 части: на более раннем участке проводится первичное тестирование на среднем участке, на нем же проводится оптимизация. Выбранные несколько вариантов параметров прогоняются на последнем форвард-участке. Лучший вариант тестируется на первом участке (бэкворд-тест), а затем на всем историческом отрезке. На всех участках результаты (статистика и вид кривой депозита) должны быть сравнительно одинаковы.
  • Для тестирования берется исторический период не менее 5 лет. Участок разбивается на 3 части.
  • Отрезок длиной первые 2/3 участка — это данные в выборке, на которых будет проводиться подгонка параметров советника.
  • Оптимизированная система тестируется на последнем 1/3 участка. Если результаты имеют низкую корреляцию (сильно отличаются), на реальном рынке система окажется нерабочей. Это так называемое форвардное тестирование, проводимое в ручном режиме.

LiteForex: Встроенный тестер индикаторов и советников Metatrader 4 | Liteforex

  1. Подобрать универсальные параметры советника для длинного периода, но иметь в виду, что на реальном счете результат может оказаться худшим.
  2. Разбить интервал на участки и определить, на каких именно (флет, фундаментальный всплеск, конец или начало года, европейская или азиатская сессии и т.д.) советник работает лучше всего. Подгонять параметры и тестировать советник на отдельных участках, для которых он предназначен.
  • Спред. Часто трейдеры ставят заниженный спред, который может в 2-4 раза отличаться от реального рыночного. Если брокер указал спред по определенной валютной паре 0,7 пункта (например), это не означает, что это так и есть. В оферте и в торговых условиях (которые часто полностью не читают) могут указываться по отдельным типам счетов дополнительные комиссии.
  • Своп. Существенно снижает потенциальную прибыль.
  • Проскальзывания. Зависят от брокера и рыночной ситуации. Не учитываются при тестировании, потому искажают результаты на реальном счете.
  • Период оптимизации — для дневного таймфрейма не менее 3-х лет. Следовательно весь период отработки торговой системы — 4-5 лет и более.
  • Не нужно оптимизировать одновременно много параметров. Это искусственно подгонит результат под историю и на реальном счете система даст сбой.
  • Для уменьшения времени оптимизации увеличьте в настройках шаг. Участок с лучшими результатами все равно будет виден, зато снизится нагрузка на тестер. Лучший участок потом можно будет прогнать еще раз более детально.
  • Не пытайтесь максимально оптимизировать систему, тратя на это часы и дни. Все равно через время ее снова придется оптимизировать. Не получается оптимизация — модернизируйте алгоритм советника.

6. Где тестировать стратегии: на МТ4 или МТ5?

  • Индикаторы и советники, написанные под МТ4, на МТ5 работать не будут.
  • У обоих тестеров закрытый способ оптимизации. Оптимизация проводится только по тем параметрам, которые входят в МТ4. Путем добавления строк кода трейдер может добавить в тестер пользовательские параметры. Во время оптимизации пользовательский параметр будет рассчитываться, но оптимизировать советник по нему невозможно. Например, в статистику можно добавить коэффициент восстановления (прибыль/просадка), но в «Настройки эксперта» он не попадет.
  • В МТ5 только один режим моделирования цены — генерация тиков по историческим данным минутного таймфрейма.
  • В МТ5 используется потенциал многоядерных систем, у МТ4 — только одно процессорное ядро. Прежде всего это влияет на скорость подбора параметров при оптимизации.
  • В МТ5 возможно тестирование по нескольким инструментам одновременно (важно для мультивалютных стратегий). В МТ4 — только по одному.
  1. Профессионально занимается разработкой торговых советников, в том числе и для продажи.
  2. Азартен и получает удовольствие от самого процесса тестирования, оптимизации и разработки кода.
  • Торговлю с проверенным брокером рекомендую попробовать тут. Система позволяет торговать самостоятельно или копировать сделки успешных трейдеров со всего мира.
  • Воспользуйтесь моим промокодом BLOG для получения бонуса 50% на депозит от LiteForex. Промокод нужно просто ввести в соответствующее поле при пополнении счета в платформе LiteForex и бонус зачислится одновременно с депозитом.
  • Чат трейдеров в телеграм: https://t.me/marketanalysischat. Делимся сигналами и опытом.
  • Канал в телеграм с отличной аналитикой, форекс обзорами, обучающими статьями и прочими полезностями для трейдеров: https://t.me/forexandcryptoanalysis

График цены USDJPY в реальном времени

Тестер стратегий МТ4

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Нет возможности читать нас каждый день? Получайте свежие статьи на вашу электронную почту.

Написал

Как определить конец тренда? TD Trend Factor и TD Propulsion

Как отфильтровать ложный сигнал? TD REI и TD POQ

Я попробую применить полученные знания на демо-счете, доступном без регистрации

Покажите мне графики валют и как цена на рынке двигается в реальном времени

Я хочу начать копировать сделки профессиональных трейдеров на мой счет

Я готов начать зарабатывать на финансовых рынках и хочу открыть торговый счет

    LiteForex в ВКонтакте

Предупреждение о рисках: Торговля на финансовых рынках сопряжена с риском. Контракты на разницу («CFDs») являются сложными финансовыми инструментами, используемыми для маржинальной торговли. Торговля CFD имеет высокий уровень риска, так как кредитное плечо может работать как в Вашу пользу, так и против Вас. Вследствие этого торговля CFD подходит не всем инвесторам из-за высокого риска потери инвестированного капитала. Вы не должны рисковать большими средствами, чем Вы готовы потерять. Перед началом торговли Вы должны убедиться, что Вы понимаете все риски и учитываете их в совокупности с уровнем Вашего опыта при постановке Ваших инвестиционных целей. Перейти к полному документу «Предупреждение о рисках».

Данный веб-сайт является собственностью группы компаний LiteForex.

LiteFinance Global LLC зарегистрирована в государстве Сент-Винсент и Гренадины как общество с ограниченной ответственностью под номером 931 LLC 2021. Юридический адрес: First Floor, First St Vincent Bank Ltd Building, James Street, Kingstown, St. Vincent and the Grenadines. Email:

LiteFinance Global LLC не предоставляет сервис резидентам стран Европейской Экономической Зоны (ЕЭЗ), США, Израиля, Японии, РФ и некоторых других стран.

Источник https://www.mql5.com/ru/articles/1490

Источник https://www.liteforex.com/ru/blog/for-professionals/tester-strategij-mt4/

Источник

Источник