Тестирование советников в тестере стратегий: ЧаВо

voprosС чего начать?

1. С закачки котировок. Зайти в «Архив котировок» в MetaTrader 4: меню «Сервис» / «Архив котировок» (клавиша F2). Выбрать интересующий таймфрейм необходимого инструмента (кликнуть два раза мышкой, например, на EURUSD / М1) и нажать «Загрузить».
Для тестирования рекомендуется использовать демо-счет от Альпари, посколько у них загружаются относительно приличные котировки (подробнее о качестве котировок читаем здесь).

2. В тестере стратегий выбрать советник, валютную пару, период времени, тип моделирования (все тики/контрольные точки/цены открытия).
Не забыть установить спред!
Capture
По умолчанию в тестере стоит «текущий спред», что может быть причиной фантастических результатов, особенно если вы тестируете на выходных.

3. Загружаем в эксперт желаемые настройки — и вперед.

Какой тип моделирования выбрать?

«Все тики» — самый точный из стандартно-доступных типов моделирования, но он же и самый долгий. Некоторые советники можно тестировать без потери точности по контрольным точкам или по ценам открытия. Если вы не сильно разбираетесь в советнике, который тестируете, то имеет смысл подойти к вопросу экспериментальным путем. Тестируете по всем тикам, потом по контрольным точкам, потом по ценам открытия и смотрите разницу. Если небольшая, то можно оптимизировать советник наиболее быстрым методом, а потом проверять по всем тикам. Если существенная, то можно грубую оптимизацию проводить быстрым методом, а тонкую — по всем тикам. Если разница совсем большая, то делать нечего и придется оптимизировать долго и упорно по всем тикам.

Есть класс советников, в которых рабочий таймфрем прописан в настройках, у них результаты тестирования не зависят от выбранного таймфрейма в тестере. Такие советники, как правило можно тестировать практически без потери точности на (М1/контрольные точки). Получается намного быстрее чем по всем тикам, а результат практически тот же самый. Опять-таки, оптимизируем быстрым методом; найденный лучший вариант проверяем по всем тикам и убеждаемся, что все ОК.

Что значат параметры, выдаваемые при оптимизации настроек советника?

Параметры: Прибыль, число сделок, Прибыльность, Матожидание,
Просадка в $, Просадка в %. Что они значат, расписано здесь.

На какие из них надо ориентрироваться при отборе результатов оптимизации?

Во-первых, на число сделок.
Чем меньше сделок, тем больше эффект подгонки, а значит тем меньше вероятность, что оптимизированные настройки имеют какой-то смысл.
Желательно чтобы число сделок было больше 1000. Если сделок меньше, надо увеличивать промежуток времени.

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

Код:
double GetRecoveryFactor( void ) {
  double Res = 0;
  double MaxDD = TesterStatistics(STAT_EQUITY_DD);
  if (MaxDD != 0)
      Res = TesterStatistics(STAT_PROFIT) / MaxDD;
  return(Res);
}
double OnTester( void ) {
  return(GetRecoveryFactor());
}

и перекомпилировать советник. После этого при оптимизации в тестере появится новая колонка OnTester. Она будет содержать коэффициент восстановления. Щелкнув по шапке этой колонки, можно отсортировать результаты оптимизации по этому параметру.

aaa

Откуда берутся рассогласования котировок и что с ними делать?

Многие встречались с ситуацией когда в отчете о тестировании советника тестер жалуется на ошибки рассогласования котировок и пишет качество моделирования n/a:
aa1
Если взглянуть в логи, то там будет масса ошибок такого вида:
aa2
Откуда они берутся? Как правило, из-за рассогласования котировок, полученых от брокера напрямую и загруженных через архив котировок (через F2).
Что делать? Проще всего от проблемы избавиться следующим образом.

1. Стираем историю котировок по данной паре (Меню Файл -> Открыть каталог данных -> history -> имя торгового сервера -> стираем все файлы EURUSD*.hst).

2. Перегружаем терминал.

3. Загружаем заново котировки EURUSD через архив котировок (F2 -> EURUSD -> M1 -> Загрузить).
aa3
Теперь прогоняем советник в тестере — и видим, что ошибки исчезли, а качество моделирования 90%:

 


Автор: Владимир aka loopsider
01.07.2015

Метки: , , , ,
Опубликовано в Публикации




Советники ARGOLab
Последние статьи
.
.
Комментарии
E-Mail:
Форекс рейтинг . Форекс каталог