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

·

·

3 мин.

Качество котировок – это основа результативного тестирования тестера/ручной стратегии. И хотя результаты тестирования не дают гарантии повторения ситуации в будущем, весь технический анализ построен на поиске закономерностей. Потому вводные данные для тестирования должны быть максимально точными. Точность котировок большинства брокеров находится на уровне 90-95%. 95% — результат неплохой, но всегда стоит стремиться к лучшему. О том, где взять котировки, как их обработать и подготовиться к тестированию, в этом обзоре.

Подготовка к тестированию советника или стратегии

  1. Тип исторических данных. Прежде всего это цены – стоимость актива в тот или иной период времени. Чем более точные будут значения цены, тем лучше, но технически это не всегда реализуемо. Также имеет значение допустимый период. Самая глубокая история – у дневных графиков. В МТ4 информацию по ценам дневного таймфрейма можно получить с 1971 года. Минутные данные – с 1998-2000 годов, тиковые данные – с 2007 года.

Значение цены в котировках за любой период имеет следующие параметры: дата котировки, типа цены (по свече), объем сделок по периоду (тиковый объем). Для дневных и более высоких интервалов могут отсутствовать максимальная и минимальная цены – указывается только цена открытия/закрытия.

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

2. Временные масштабы данных. Логично загружать котировки в соответствии с тем таймфреймом, который рекомендуется в описании советника/стратегии. Но многие стратегии могут работать на разных таймфреймах и в определенные периоды времени показывать лучшие результаты как на минутных, так и на дневных интервалах.

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

Самый малый таймфрейм – М1. Меньше только тиковые данные (тик – минимальное изменение цены). История тиков нужна преимущественно для тестирования советников, работающих по новостям, высокочастотных советников (МТ4 и МТ5 HFT-трейдинг не поддерживает). Гнаться за точностью на тиковых котировках нет смысла – всегда существует погрешность брокера и погрешность тестера, которая нивелирует точность котировок.

3. Выбор таймфрейма тестирования. Здесь все индивидуально. Тестирование на интервалах М5-М15 занимает много времени, хотя можно использовать облачную технологию тестирования МТ5 – она быстрее МТ4. С другой стороны, стратегии на таком таймфрейме открывают по десятку сделок в день, потому могут быть более эффективны.

Системы, которые оптимизированы на более высоких таймфреймах, более устойчивы к локальным фундаментальным факторам. Они в меньшей степени зависят от брокера и торговых издержек. Если сравнивать период тестирования, то для коротких таймфреймов не нужно подгружать данные за последние 10 лет (условно). Для длинных интервалов нужно большое количество исторических данных.

4. Качество котировок. Одна из причин недостоверности результатов тестирования – целостность котировок. По разным причинам в «плохих» котировках могут быть пробелы. Например, отсутствующие данные на дневном интервале за несколько дней подряд. Разрывы в ценовом потоке не имеют ничего общего с реальностью, потому результаты такого тестирования нельзя принимать к сведению. Работающая на истории котировок торговая система будет убыточной и вы потратите время на то, чтобы найти ошибку.

Примеры котировок «плохого качества»:

  • Шпилька – большая тень в краткосрочном периоде. Цена буквально за секунду резко меняет свое значение и возвращается. Этим часто грешат «кухни», искусственно меняющие цену, чтобы зацепить клиентские стопы. Шпилька – гарантированная потеря депозита.
  • Небольшая ошибка. Например, в цене открытия две последние цифры поменяны местами: 1,4895 и 1,4859. Визуально такую ошибку заметить сложно даже с помощью Excel. Но на результаты теста она может повлиять кардинально, если встречается часто.
  • Пропуск данных. Появляется тогда, когда котировки по разным причинам не сохраняются в базе. Часто такая проблема встречается в праздники и ночные периоды.

Проблемы точности котировок решаются скачиванием их в табличный редактор, сравнением и устранением нестыковок. Второй вариант – запуск скрипта в платформе МТ4, который найдет все так называемые «дыры». Пример скрипта — history_data_analysis, его можно бесплатно скачать на сайте MQL5.

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

Вывод:

  • Котировки минутных таймфреймов наиболее предпочтительные. Но дополнительно к ним нужна информация по наиболее сильным фундаментальным факторам периода.
  • Сверяйте котировки нескольких поставщиков. Ими могут быть: ваш брокер, другие брокеры, независимые поставщики котировок, поставщики, предлагаемые по умолчанию МТ4.
  • Наиболее важные данные – цена закрытия свечи. В почти все советники заложена функция, дающая команду на открытие сделки тогда, когда открывается свеча нового таймфрейма. И в анализе «все ли условия выполнены» участвует именно цена закрытия. Ее точность проверяется в первую очередь.
  • Точность котировок выверяется в табличном редакторе или с помощью скриптов. Допускается создание базы котировок на основе котировок, взятых из нескольких источников.

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