Скачать MetaTrader 5

Strategy Tester: режимы моделирования при тестировании торговых стратегий

13 сентября 2005, 16:51
MetaQuotes Software Corp.
7
2 778

Введение

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

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

Для решения этой проблемы можно применить данные более мелких периодов в качестве опорных точек с моделированием изменения цен между ними.

Способы моделирования ценовых баров

В клиентском терминале MetaTrader 4 используется три варианта моделирования развития баров:

  • Все тики (наиболее точный метод на основе всех доступных меньших таймфреймов)
  • Контрольные точки (очень грубый метод на основе ближайшего меньшего таймфрейма, результаты нельзя принимать во внимание)
  • По ценам открытия (быстрый метод на сформировавшихся барах, только для советников с явным контролем открытия баров)

Перед началом тестирования происходит генерация промежуточных ценовых тиков с записью результатов в файл (пример: /tester/history/eurusd_1440_1.fxt). Каждый раз, при нажатии на кнопку "Старт", тестер заново генерирует файл с тестовой последовательностью тиков. Fxt-файлы легко открываются в терминале как оффлайновые графики через File -> Open offline.



Примеры моделирования

Начнем с самого простого способа моделирования на основе часового графика. Рассмотрим часовой бар (5 сентября 2007 г., 10:00), выделенный красным:



По ценам открытия

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



В этом режиме сначала моделируется открытие бара (Open = High = Low = Close, Volume=1), что дает возможность эксперту точно идентифицировать окончание формирования предыдущего ценового бара. Именно на этом зарождающемся баре запускается тестирование эксперта. На следующем шаге выдается уже полностью сформированный текущий бар, но на нем тестирование не производится!

Контрольные точки (ближайший меньший таймфрейм)

Метод моделирования контрольных точек предназначен для грубой оценки экспертов, торгующих внутри бара. Для этого метода необходимо наличие исторических данных ближайшего меньшего таймфрейма. В некоторых случаях имеющиеся данные меньшего таймфрейма не полностью покрывают временной диапазон тестируемого таймфрейма. При отсутствии данных меньшего таймфрейма развитие бара генерируется на основе предопределенных волновых шаблонов, как это было в предыдущей, третьей версии клиентского терминала MetaTrader 3.
Как только появляются исторические данные меньшего таймфрейма, интерполяция применяется уже к этим данным. Однако точно существующие цены OHLC меньшего таймфрейма выступают в качестве контрольных точек. В большинстве случаев результаты тестирования экспертов по методу контрольных точек могут приниматься во внимание только как оценочные, а не как окончательные. Такие результаты имеют промежуточный оценочный характер. На рисунке ниже видно, как развивался часовой бар 2007.09.05 10:00 по методу контрольных точек.



Все тики (все доступные меньшие таймфреймы)

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



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

Внимание: не нужно запускать потиковое тестирование при отсутствии более мелких таймфреймов, полностью покрывающих исследуемый период. Потиковое моделирование предназначено только для тестирования на основе данных более мелких таймфреймов!

Использование диапазона дат при моделировании

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

Сравнение с эталоном из периода M1

Для сравнения точности внутрибарного моделирования воспользуемся минутным графиком от 5 сентября 2007 г., 10:00 до 11:00.



В режиме "все тики" сгенерирована следующая последовательность.


Так как средний тиковый объём каждого бара в этом диапазоне не превышает 5, то последовательность сгенерирована с минимальным использованием интерполяции. Почти все цены - реально существующие OHLC.


Даже без масштабирования путём простого наложения двух графиков, часового и минутного, друг на друга (на сгенерированном часовом графике цены закрытия отмечены зелёной линией) получается практически точное совпадение:



Выводы

Можно получить максимально точное тестирование и хорошую гарантию достоверности результатов, если есть вспомогательные таймфреймы более мелких периодов, которые на 100% покрывают исследуемый период. То есть, вопрос качественного потикового тестирования превращается в поиск детальных исторических данных...

MetaQuotes
Renat Fatkhullin | 9 июл 2006 в 11:27
azfaraon:
Да уж ,если метаквотс не знает где минутки с 1999 года ,что делать нам смертным
У нас просто не доходят руки. Давно уже планируем выпустить базу нормализованной истории по всем периодам.
Сергей Ковалев
Сергей Ковалев | 27 июл 2006 в 00:29
Renat писал(а):

У нас просто не доходят руки. Давно уже планируем выпустить базу нормализованной истории по всем периодам.
Это было бы очень полезно.
MetaQuotes
Renat Fatkhullin | 12 апр 2007 в 23:46
SK. писал(а):
Renat писал(а):

У нас просто не доходят руки. Давно уже планируем выпустить базу нормализованной истории по всем периодам.
Это было бы очень полезно.
Сделали: Обновлен History Center - бесплатная история минутных котировок с 1999 года
Oleg
Oleg | 6 авг 2009 в 11:05
Появятся ли у MetaQuotes минутные котировки, скажем хотя бы с 2000 года?
Radiy Khalikov
Radiy Khalikov | 29 окт 2015 в 20:14
azfaraon:
исторические данные, если кому надо
минутные интервалы , CVS (comma separated files)

150MB big zip with the same data as below up to 2006 (1 minute and 15 minute intervals, one file per each pair/interval type):
http://www.megaupload.com/?d=CSYAD61J

Да уж ,если метаквотс не знает где минутки с 1999 года ,что делать нам смертным
Доброго времени суток! Хочу высказать свое мнение. Рынок с тех времен сильно изменился, если смотреть на графики того времени. Да, тестировать хочется, но надо ли..? С приходом новых технологий и развитием средств передачи данных изменяется и сама фактура (я бы так выразился) рынка. Посмотрите на графики того времени и на картинку. Тогда все свечки были свеча-к-свече а сейчас...Не свечки, а телеграфные столбы. Такие "махи" ! Думаю, заморачиваться с тестированием на глубокой истории не стоит,а тестировать нынешний рынок. Если только ради интереса. Повторяю, это только мое личное мнение. Спасибо.
Особенности написания Пользовательских Индикаторов Особенности написания Пользовательских Индикаторов

Написание пользовательских индикаторов в торговой системе MetaTrader 4

Особенности написания экспертов Особенности написания экспертов

Написание и тестирование экспертов в торговой системе MetaTrader 4.

Особенности и ограничения тестирования торговых стратегий в MetaTrader 4 Особенности и ограничения тестирования торговых стратегий в MetaTrader 4

Эта статья поможет больше узнать об особенностях и ограничениях тестера торговых стратегий в MetaTrader 4...

Что означают цифры в отчёте тестирования эксперта Что означают цифры в отчёте тестирования эксперта

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