Оптимизация советников FOREX

Получение качественных котировок

Offline тестер
Этот метод довольно трудоёмкий , требующий некоторой квалификации . Но по возможностям создания качественной исторической базы, он того стоит вследствие того, что возможна генерация базы из нескольких файлов. Но в некоторых случаях это единственно возможный выход. Возможности по качеству максимальные.

1. Установить терминал, который должен в дальнейшем использоваться только как оффлайн-тестер, открываем счёт у того брокера, котировки которого будем закачивать. Счёт открываем только для того чтобы в терминале установились текущие настройки брокера: спред, своп, стоплевел, уровень залогов … 

2. Как только терминал законнектился (установил связь) на сервер, удаляем счёт и больше никаких счетов в этом терминале не открываем во избежании перемешивания котировок. Терминал будет далее использоваться только как тестер и работать в оффлайне. 

3. Удаляем все файлы истории с расширением *.hst из папок в 
C:\Program Files\MetaTrader 4\history Перезагрузите терминал, откройте окно «архив котировок», в нём не должно быть никаких котировок: 

 

1(1)

 

4. Настройка тестера. Запустить МТ4 и перейти в меню — Сервис — Настройки. Вкладка ГРАФИКИ. Ввести МАКС. БАРОВ ИСТОРИИ и В ОКНЕ из расчёта 500 тысяч баров на год. Для 5-тилетней истории нужно ввести 2,5 мио. Обращаем внимание, ВВЕСТИ руками, а не выбирать из списка.

 

2(1)

 

5. Загружаем котировки брокера из файла на его сайте.  Скачать архив минуток в формате МТ4 и разархивировать в любую папку. 

6. Импортируем котировки в терминал. В МТ4 в окне АРХИВ КОТИРОВОК кнопка ИМПОРТ. Кнопка ОБЗОР. Найти разархивированный HST-файл. Кнопка ОТКРЫТЬ. Кнопка ОК. Закрыть окно АРХИВ КОТИРОВОК и перезагрузить МТ4. 

3(1)

 

Конвертирование М1 в старшие ТФ. Теперь наша задача состоит в получении котировок более старших ТФ (М5, M15, M30, M60, M240, M1440 и M10080). Кликаем «Файл» => «Открыть автономно», выбираем нужный символ (в данном случае USDJPY, M1), кликаем «Открыть»:

4

 

Теперь мы имеем оффлайн-график нужной нам пары на экране:

5

 В панели «Навигатор» в закладке «Скрипты» выбираем period_converter и запускаем его на выбранном оффлайн-графике двойным кликом мыши или перетягиванием на график:

6

 

Устанавливаем значение параметра ExtPeriodMultiplier=5. В окне ТЕРМИНАЛ во вкладке ЭКСПЕРТЫ проконтролируем окончание работы скрипта и запускаем его снова с параметром ExtPeriodMultiplier=15, потом 30, 60, 240 и 1440. Таким образом из минуток будут сформированы таймфреймы М5, М15, М30, Н1, Н4 и D1. Перезагружаем терминал. Качественная история по данному символу готова.

Достоинства:

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

Недостатки: 

  • Нужен отдельный терминал, который будет использоваться как тестер. 
  • Достаточно трудоёмкая работа по подготовке базы. 
  • Требуется квалификация выше среднего уровня. При этом велика вероятность ошибки. 
  • Как и в первом методе объём базы достаточно велик. 

 

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

1. Терминал уже давно установлен, торговля ведётся, котировки за время работы поднакопились-поднакачались. Казалось бы, чего ещё надо? Торгуй, тестируй, оптимизируй. Но … не так всё просто: 

2. Такое решение вполне оправдано, если этот терминал:

  • Используется для торговли только на одном счёте и к другим счетам никогда не логинится и Вы копите в нём котировки, 
  • Вы не загружаете в него котировки из файлов.

 

3. Если терминал логинится к счетам, находящихся на различных серверах (даже у одного брокера), то получается мешанина котировок. У разных брокеров разное время сервера (сдвиг), различные алгоритмы фильтрации. Короче, это всё плохо. И даже если Вы видите достаточно высокое качество моделирования в отчёте тестера, то верить этому категорически нельзя! 

4. Глубина М1 котировок, которые можно форсированно выкачать с сервера брокера по требованию “on demand” составляет от полумесяца до месяца, что явно недостаточно для тестов высокого уровня по модели «все тики». 

5. Если требования п.2 соблюдены, то вариант вполне моет быть использован для модели «по ценам открытия» если Ваш эксперт имеет модуль явного контроля открытия бара. 

6. Кроме всего прочего зачастую этот вариант является единственно возможным для накопления М1 истории с реал-серверов.

7. Небольшая практическая рекомендация по принудительному закачиванию М1 котировок с сервера Вашего брокера (не путать с History Center сервера MetaQuotes). При ручной закачке в режиме «по требованию/on demand» с помощью клавиш Home/Page Up/Left происходит подкачка с торгового сервера Вашего брокера. На текущий момент глубина подкачиваемых данных М1 с торгового сервера составляет ~32768 баров (месяц), а остальных периодов ~16384. Если Вы не копили минутные данные самостоятельно, а закачали минутки с History Center, то скорее всего практически вся Ваша история будет из 
History Center.

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

F1