Оптимизация советников форекс в mt4


Возможности MetaTrader 4 для тестирования и оптимизации советников

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

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

Подготовка советника к тестированию в MetaTrader 4. Загрузка истории котировок

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

Что бы загрузить минутные данные, следует установить в терминале MetaTrader 4 размер исторических данных (меню «Сервис ->Настройки):

В поле «Макс. баров истории» во вкладке «Графики» следует установить вручную число, согласно следующих расчетов: минутные данные одного года содержат 525600 баров. Соответственно, понадобится более 5 млн. баров для 10-летней истории. Для вступления в силу значения новых параметров, необходим перезапуск программы.

Данные истории загружаются в модуле программы «Архив котировок» (пункт «Сервис ->Архив котировок»).

В появившемся окне необходимо выбрать период — 1 минута, а так же символ торгового инструмента, для которого требуется загрузить историю. Затем нажать на кнопку «Загрузить». Теперь, после загрузки, база данных содержит требуемое количество котировок. Следует помнить, что количество загруженных данных может у различных брокеров различаться.

Также необходимо провести согласованность котировок на различных временных интервалах, что достигается пересчетом данных минутного интервала в данные более крупных тайм фреймов. Выполняется такая операция с помощью скрипта «period_converter», который следует перетащить на минутный график финансового инструмента:

При этом в окне входных параметров следует указать длительность пересчитываемого временного в минутах (M15-15; h2-60; …). Согласование необходимо повторить для всех временных интервалов.

Алгоритм тестирования советника в торговом терминале MT4

Для тестирования советников используется модуль «Тестер стратегий» (пункт «Вид ->Тестер стратегий»):

Необходимо указать в окне тестера стратегий следующие настройки:

  • валютная пара и временной период, на котором планируется тестирование
  • анализируемый советник, а так же свойства

  • способ аппроксимации движений цены (рекомендуется «все тики»)

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

  • (в случае неустановленной опции «Использовать дату» тестирование будет проведено на всех исторических данных)

  • необходимость проведения оптимизации параметров советника

Выбор советника и параметров тестирования в тестере стратегий

Необходимо в списке «Советники» выбрать советник для тестирования. В списке торгового терминала в папке «experts» находятся все скомпилированные эксперты. Кнопка «Свойства эксперта» позволяет открыть список дополнительных настроек советника. В графе «Тестирование» можно посмотреть и задать общие параметры советника:

Вы можете установить здесь валюту депозита, начальный размер торгового счета, характер торговых сделок: все сделки – Short и Long, только позиции на покупку – Only Long, только позиции на продажу – Only Short. Параметры оптимизации будут рассмотрены ниже.

Ниже приведена вкладка «Входные параметры», которая содержит основные переменные, оказывающие влияние на алгоритм работы эксперта:

Если вам необходимо изменить значения параметров, то для этого нужно отредактировать столбец значений. Установленные параметры следует сохранить на диске и позже загрузить. Для возврата значений по умолчанию следует кликнуть по кнопке «Сброс».

Настройки «Период» и «Символ» тестера стратегий

В поле «Символ» задается финансовый инструмент, на котором будет осуществляться тестирование советников, а в «Период» – тайм фрейм. Необходимым и важнейшим условием проведения качественного тестирования обязательное наличие минутных исторических котировок финансового инструмента.

Метод моделирования тестера

В выпадающем списке «Модель» необходимо выбрать пункт «Все тики». Этот способ обеспечивает точную эмуляцию ценовой динамики внутри бара и делает процесс тестирования более достоверным.

Временной диапазон тестирования

Если вам необходимо использовать не все исторические данные, а лишь часть, необходимо включить опцию тестера «Использовать дату» и ввести необходимые вам значения даты в полях окна «От» и «До».

Эффект визуализации тестирования

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

Запуск процесса тестирования и анализ полученных результатов

Запускается процесс тестирования нажатием кнопки «Старт» тестера стратегий. По индикатору хода выполнения можно оценить время выполнения операции:

После завершения процесса тестирования на экране появятся окна новых вкладок: «Результаты», «График», «Журнал» и «Отчет».

Во вкладке «Результаты» можно просмотреть все события и их последовательность во время тестирования стратегии:

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

Во вкладке «Журнал» находится отладочная информация непосредственно самого процесса тестирования эксперта. Здесь содержатся успешно выполненные операции, а также ошибки, возникшие во время работы советника:

Вкладка тестера стратегий «График» отображает баланс (линия синего цвета), а также динамику торгового счета с учетом открытых позиций (свободные средства – зеленая линия). Эти линии часто совпадают, а сильное расхождение говорит о том, что позиции передержаны.

Во вкладке тестера стратегий «Отчет» отображаются самые важные результаты тестирования советника.

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

Наиболее важные показатели системы – максимальная просадка, чистая прибыль, количество сделок.

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

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

Чистая прибыль означает разница между начальным и конечным состоянием баланса счета.

Фактор восстановления (соотношение прибыли к максимальной просадке) – это важный показатель работы советника и его эффективности. При эффективной работе фактор восстановления должен быть более трех.

Так же, важными характеристиками советника являются средняя прибыльная/убыточная сделка. Оптимальным вариантом является соотношение средней прибыли к средним убыткам 1:3, а также превышение числа убыточных сделок над прибыльными на уровне 1:2. То есть, должна расти прибыль, а убытки быстро фиксироваться.

Большое значение имеет показатель психологического фактора, который определяется максимальным числом непрерывных проигрышных сделок. Если он высокий, то лучше использование такой торговой системы отложить, или трейдер должен быть готовым морально пережить «черную» полосу.

Визуализация тестирования советника в терминале MT4

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

Для визуализации в режиме после проведения теста необходимо кликнуть на строку «Открыть график» на вкладке «Настройки». Откроется новая вкладка в окне MT4 с символами совершенных сделок и графиком тестируемой валютной пары.

Второй режим позволяет просматривать график тестируемого инструмента непосредственно в период тестирования. Данный режим можно активизировать опцией «Визуализация», расположенной на вкладке «Настройки» тестера. После нажатия на «Старт» график тестируемого валютного инструмента будет открыт автоматически, и на него будут поступать последовательно смоделированные тики. При этом, вы можете регулировать скорость их поступления, а так же приостановить поступление котировок полностью. Кнопкой «Пропустить до» трейдер имеет возможность запустить визуализацию с определенного момента времени.

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

Оптимизация советника в терминале MT4

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

Параметры оптимизации советника настраиваются в свойствах эксперта:

Для этого надо выбрать критерий выбора стратегии в списке «Оптимизируемый параметр». Чаще всего, выбирается значение «Баланс». При этом, включение опции «Генетический алгоритм» время процесса оптимизации ускоряет, используя для этого полученные данные отработанных проходов ранее. Это вносит некоторую погрешность в вычисления, поэтому окончательную оптимизацию следует проводить с отключенным генетическим алгоритмом.

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

Вкладка «Оптимизация» позволяет трейдеру отвергнуть любой из результатов оптимизации, если достигается одно из перечисленных условий во время прогона:

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

Для выполнения оптимизации следует установить в тестере стратегий во вкладке «Настройки» опцию «Оптимизация» и нажать кнопку «Старт»:

Процесс оптимизации займет определенное время:

После его завершения появятся вкладки: «График оптимизации», а так же «Результаты оптимизации». Полученные результаты оптимизации включают все итоги проведенных прогонов:

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

График оптимизации демонстрирует область возможных прибыльных настроек:

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

Практическое использование МТС

Следует помнить, что даже хорошо протестированная на истории система никогда не является гарантией успешных показателей при торговле на реальном счету. Поэтому основная задача тестирования, а так же и оптимизации советников – анализ рынка и выработка торговых правил. А полная передача управления торговым счетом роботу – решение рискованное и гарантию получить прибыль вам вряд ли кто-то даст.

Смотрите также по теме:

  • Просмотров: 11399
  • 08.07.2015 в 23:26
  • Автор: Admin
Теги

tempofox.com

Язык MQL — Урок 7 «тестирование и оптимизация в MT4»

На прошлом уроке Язык MQL — Урок 6 «эксперт Hedge Hog» мы написали советник Forex торгующий по стратегии Hedge Hog. Сегодня займемся его тестированием и оптимизацией в Metatrader.

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

Для этого необходимо выполнить следующие действия:1. Проверить его на тестере стратегий MT42. Провести оптимизацию советника и проверить ее результат3. Проверить, как работает советник форекс на демо-счете4. Проверить советник на центовом счете форекс

Пункты 1,2,4 обязательны к выполнению! Пункт 3 желателен, но необязателен. Дело в том, что проверка на демо-счете и центовом счете занимают много времени. В отличии от тестера стратегий Metatrader 4 — торговля на них идет в реальном режиме времени. Поэтому один из этих этапов, начинающие трейдеры форекс частенько пропускают. Я настоятельно рекомендую НЕ пропускать 4 пункт - тестирование советника форекс на центовом счете. Советник может прекрасно работать на тестере и демо счете, а на реальном, как не странно, не торговать вовсе или «слить» ваш депозит. На реальном счете (центовый счет — это реальный счет с минимально разрешенными суммами депозита) присутствуют такие моменты, которых нет в тестере или на демо счете. Это отказы в обслуживании брокером форекс, проскальзывание цен и т.д.

Итак, начнем по порядку.

Запускаем тестер стратегий MT4 , выбираем наш советник «expert1». Выбираем символ "EURUSD" как того требует стратегия Hedge Hog. Модель рекомендую выбрать "Все тики" как наиболее точный метод тестирования. Указываем интервал дат истории для тестирования. Я указал за декабрь месяц 2009 года. Выбираем Период на котором будет работать наш советник. Я выбрал часовой, хотя для нашего советника это не важно.

Нажимаем кнопочку «Старт» и ждем окончания процесса тестирования советника.У меня советник не совершил ни одной сделки. А в журнале появилось много ошибок. Дело в том что я использовал сервер Алпари для тестирования. У них 5 значные котировки, а стратегия «Hedge Hog» писалась для 4 значных котировок.

Это легко исправимо. Достаточно тейкпрофит увеличить в 10 раз (вместо 14 пунктов указать 140 пунктов). Нажимаем кнопочку «Свойства эксперта» и в появившемся окошке изменяем.

Нажимаем «OK» и запускаем тестирование еще раз.Теперь появились сделки. Открываем график:

Что-то не радует меня эта картинка. Да и какие-то странные ошибки в журнале еще до запуска тестирования советника. Что же не так? Ответ прост: в истории терминала Metatrader есть пропуски котировок. Терминал у меня запущен не постоянно, поэтому часть истории потерялась.

Необходимо подгрузить историю. Для этого нажимаем кнопочку F2. В открывшемся окне выбираем интересующую нас валюту:

И замечаем что в заголовке окна указана "USDCHF" и котировки явно не "EURUSD". Несколько раз щелкаем мышкой на таимфрейм «1 Минута» и высвечивается:

Вот теперь все нормально. Нажимаем кнопочку «Загрузить» и ждем пока подгрузится история. После подгрузки нажимаем еще раз «Загрузить»

Соглашаемся. После пересчета закрываем окно подгрузки истории и запускаем тестирование еще раз.

График не изменился. Значит проблема не в котировках. Ошибок в журнале тоже нет

Проверим — а правильно ли открываются сделки в нашем советнике форекс:

Видим что советник торгует строго по стратегии. Сделки открываются в 00:00, а убыточные закрываются через 48 часов. Лот тоже удваивается при убыточных сделках.

Попробуем оптимизировать советник форекс (подобрать оптимальные параметры для торговли, при которых прибыль максимальна). Помните что мы время открытия ордеров вынесли во внешний параметр? Сейчас нам это пригодится! Нажимаем кнопочку «Свойства эксперта» и задаем параметры оптимизации:

Кроме этого указываем тестеру стратегий Metatrader 4 что мы хотим оптимизировать (галочка «Оптимизация»)

Нажимаем кнопочку «Старт» еще раз. Оптимизация занимает много времени. Можно пока сходить выпить чашечку «кофе».

После завершения открываем результаты оптимизации и смотрим на результат:

Вот оно! При открытии ордеров в 18:00 получается минимальная просадка и максимальная прибыль. Проверим. Выделяем эту строчку, нажимаем на ней правую кнопочку мышки и говорим «установить входные параметры». Галочка «Оптимизация» у нас отключена. Запускаем тестирование с новыми параметрами.

И вот какого результата мы добились, благодаря оптимизации советника на тестере стратегий Metatrader 4:

Правда красиво?

Но как убедится что наш советник и дальше будет показывать такой же результат?

Я задавал интервал тестирования советника Hedge Hog — декабрь 2009. Попробуем теперь прогнать советник на будущих данных. Зададим интервал с 01.01.2010 по сегодняшний день.

Результат тестирования получается следующий:

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

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

Рекомендую это сделать вам, в качестве домашнего задания, самостоятельно.

Вывод: Советник Hedge Hog — рабочий и потихоньку зарабатывает. Значит и стратегия Hedge Hog является прибыльной. Но такие просадки не каждый сможет перенести. Лично я не рискну бы торговать таким советником форекс на реальном счету. Необходимо придумать какие то фильтры для уменьшения просадок в данном советнике форекс !

Советы: Период для тестирования и оптимизации советника желательно (и даже необходимо) выбирать гараздо больше, чем мы выбрали (рекомендую — от одного года). Модель тестирования и оптимизации новичкам советую использовать "Все тики". После оптимизации советника форекс, обязательно проверяйте результат на будущих данных. Не забывайте подгружать историю котировок в терминал Metatrader 4.

mql4you.ru

Причины переоптимизации форекс советников

Здравствуйте, товарищи форекс трейдеры!

Довольно часто можно встретить печальные рассказы начинающего алготрейдера о том, как он нашел отличные сет файлы для советника, а, поставив их в работу на реальный счет, потерпел потери. И вроде бы делал все верно, даже форвард тестирование проводил, а все равно деньги потерял. Почему же так происходит? Как же так выходит, что отличные по результатам тестирования настройки «льют» при работе реал-тайм? Ситуация, подобная этой называется среди трейдеров переоптимизация или подстройка параметров. О ней и о том, как же ее избежать, мы сегодня и поговорим.

Что такое переоптимизация?

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

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

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

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

Причины переоптимизации

Как я уже говорил, причины кроются в нарушении правил оптимизации. Из практики могу назвать шесть примеров таких нарушений:

  1. Слишком много правил и условий, ограничивающих число степеней свободы.

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

  1. Слишком мала выборка данных, непрезентативный отрезок исторических данных для оптимизации.

Грубо говоря, например, в отрезок для оптимизации вошел только период трендового рынка, а период летнего флета выпал. Кроме того, рынок меняется часто из года в год, а также вообще на пустом, казалось бы, месте. Связано это может быть с некими глобальными процессами, происходящими внутри стран, валюты которых образуют рассматриваемую нами пару. Характер валютной пары подчас может смениться до неузнаваемости, вплоть до того, что стратегии, созданные под эти пары, перестают работать совсем.

  1. Ошибки в процессе создания самой системы.

Часто разработчик системы изначально закладывает в систему возможность переоптимизации. Вот пара таких возможностей:

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

— Тестирование многих вариантов одного и того же правила. Например, вход в зону перекупленности/перепроданности и выход из нее.

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

  1. Слишком маленькое количество совершенных сделок.

Я уже рассказывал вам, что такое стандартная ошибка и зачем она нужна. Чем больше было совершено сделок, тем меньше вероятность ошибки. Скорость торговли у всех систем разная, некоторые скальперы наберут 300 сделок по одной паре за месяц, а некоторые не наберут и 50 сделок за год. Поэтому также важно выбрать период оптимизации исходя и из «темперамента» советника.

  1. Неверная оценка результатов сета.

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

При оптимизации двух параметров мы получаем график оптимизации, подобный этому:

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

  1. Всплеск прибыли.

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

  1. Чрезмерное сканирование.

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

Кто виноват и что делать?

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

С уважением, Дмитрий аkа SilentspecTradeLikeaPro.ru

tradelikeapro.ru

Как оптимизировать советник на Форекс. Процедура оптимизации советника

Привет Всем!

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

Итак, поехали :-). Как помните из предыдущей статьи как тестировать советник, мы протестировали стандартный эксперт MACD Sample из стандартными параметрами на истории котировок (за 2011 год) и получили неутешительные результаты. Сейчас же мы проведем оптимизацию этого советника и посмотрим, как изменится его эффективность торговли.

Для того чтобы выбрать оптимальные параметры для торгового работа, после проведения тестирования, в окне тестера стратегий нажимаем на кнопку «Свойства эксперта» / вкладка «Входные параметры».

Что мы здесь видим? Это список параметров и их значения, по которым торгует советник. Для того чтобы оптимизировать какой-то из них, нужно обозначить их галочками (рис. ниже).

Лот мы не выбираем, поскольку данный советник не использует никакой тактики мани менеджмента на Форекс, потому проставляем значение 0.1 для всех случаев.

Теперь давайте разберемся, что означают значения в полях «Старт», «Шаг» и «Стоп». Это параметры, которые советник будет прогонять (каждый по циклу) на заданной истории котировок, после чего Вы будете иметь возможность выбрать лучший вариант из сделанных прогонов, но об этом чуть позже.

Для примера, если вы поставите для параметра TakeProfit:

Старт — 5 пунктов

Шаг — 1 пункт

Стоп – 200

А для всех остальных параметров эксперта значение шаг и стоп будут равны 0, то оптимизация советника, в таком случае, будет проходить только для параметра тейк профит и выглядеть так:

Первый цикл — он прогоняет со значением параметра TakeProfit — 5 пунктов (это один прогон).

Второй цикл — с значением 6 пунктов (так как шаг у нас 1 пункт, это уже второй прогон)

И т.д. до значения 200. В результате мы получаем 195 прогонов советника из которых будем выбирать лучший вариант.

Так эти значения «Старт», «Шаг» и «Стоп» проставляются для каждого параметра советника отдельно и тогда проводится оптимизация.

Идем дальше. Прописываем значение всем параметрам советника для прогонов (нагляднее на рисунке ниже):

  • Параметр TakeProfit у нас будет прогонятся по порядку от значения 50 пунктов до 200 с шагом 1.
  • Lots не оптимизируем, соответственно для колонок шаг и стоп оставляем 0.
  • Трейлинг стоп от 10 до 100 пипсов.
  • Для параметров MACDOpenLevel выставляем количество свечей от 3 до 30 с шагом 1. MACDCloseLevel от 2 до 30.
  • И периоды для скользящей средней МАTrendPeriod от 20 до 100.

Есть! Установили :-). Теперь на вкладке «Тестирование» выбираем депозит (в нашем случае, 1000$) для которого будет проводится оптимизация советника, после чего нажимаем на кнопку «ОК».

После этого, обязательно ставим галочку «Оптимизация» и нажимаем «Старт».

Оптимизация советника займет несколько минут в зависимости какой мощности у Вас компьютер. Соответственно после завершения оптимизации, в окне тестера стратегий появляются дополнительные вкладки «Результаты оптимизации» и «График оптимизации».

В первой, Вы можете просмотреть результаты каждого прогона (у нас их получилось 4511), отсортировать их по прибыли, количестве сделок, просадке т.д. После того как проанализировали и выбрали для себя лучший вариант прогона, кликаем правой кнопкой мыши по строчке данного прогона и в открытом контекстном меню нажимаем «Установить входные параметры».

Если после этого зайдем на вкладку «Свойства эксперта», то увидим, что советник принял новые параметры, которые мы ему установили.

Как показано на рисунках выше, я отсортировал колонку с наибольшей прибылью (она составила – 1586$) и установил эти параметры для эксперта. Теперь нужно заново протестировать советник, чтобы получить реальный график и отчет эффективности его торговли за указанный период. Для этого снимаем галочку «Оптимизация» и нажимаем на кнопку «Старт».

Как видно на рисунке выше, из вкладки «График», оптимизация советника и его повторный тест показал значительно лучший результат (прибыль за указанный период (год) составила – 1586 дол.) по сравнению с предыдущим тестированием со стандартными параметрами (прибыль – 452$).

Теперь нужно сохранить оптимизированные настройки советника, для этого заходим на вкладку «Входные параметры» и нажимаем кнопку «Сохранить». В открывшемся окне, пишем название файла с настройками, выбираем папку в которой будем его хранить и сохраняем в специальном формате — .set.

После стандартного теста можно провести так называемый «форвард тест», т.е. тестирование за период с неизвестными для советника котировками. Для примера, так как мы проводили тестирование за период и котировками за 2011 год, то для форвард теста возьмем весь доступный период 2012 года (котировки для робота, в этом случае, будут неизвестны). Результаты, я уверен, будут отличаться существенно, и они будут более достоверны для анализа работоспособности советника на реальном счете.

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

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

Видео обязательное для просмотра «Миф об оптимизации торговых советников»:

Всем пока. До встречи на форекс блоге

yavforex.ru

Как правильно оптимизировать советников Илан в тестере стратегий: часть первая

Давайте рассмотрим, как правильно оптимизировать и тестировать роботов - советников в тестере стратегий программы МетаТрейдер 4 на примере советника Илан 1.6. Советники из серии Ilan пользуются большой популярностью среди начинающих трейдеров. Практически каждый новичок, пришедший на валютный рынок Форекс, осуществляет знакомство с автоматической торговлей именно посредством использования советников Ilan. Оно не удивительно, ведь Иланы - это простые советники Форекс, которые могут быть скачаны в сети интернет бесплатно. Скачать Иланов различных модификаций можно и на нашем сайте автофорекс.ру.

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

Скачать советника Ilan 1.6 с входными параметрами, описание которых будет рассмотрено ниже, можно по следующей ссылке:

Скачать архив с советником и SET-файлом - ilan_1.6.rar [17,86 Kb] (скачиваний: 1697)

После стандартной процедуры скачивания архива, его распаковки и копирования файлов советника в папку с терминалом, перезагружаем терминал МетаТрейдер 4, в окне Навигатор - Советники находим советника Ilan 1.6 и перетаскиваем на график валютной пары. Открывается окно, где указываются входные параметры Илана по умолчанию, отвечающие за его настройки.

Рассмотрим каждую переменную, указав ее значение и суть.

Переменная LotExponent: по умолчанию ее значение равно 1.4. Это коэффициент увеличения лота при выставлении следующего колена. То есть, если первый лот открывается объемом 0.01, то второй будет открываться в размере 0.01 * 1.3 = 0.013. Но, так как открыть ордер таким лотом нельзя, то он автоматически округляется до 0.01, а в памяти сохраняется значение 0.013. При определении объема лота для третьего ордера уже 0.013 * 1.3. Получается 0.0169, значение округляется до 0.02. Объем четвертого ордера будет высчитываться следующим образом: 0.0169*1.3 = 0.2197, округляется опять до 0.02. Пятый ордер будет открыт объемом 0.03, так как 0.2197*1.3 = 0.02856, что как раз и округляется до 0.03. Дальше расчет объемов лотов, с которыми будут открываться ордера, рассчитываются аналогичным образом. Если же первый ордер открывается с лотом 0.1, то второй ордер с объемом 0.13 без округления, так как сделки такими лотами могут совершаться.

Вторая переменная - DynamicPips, может принимать 2 значения - true и false. True - в настройках обозначается как 1 (разрешить), а false - как 0 (запретить). Каков смысл этой переменной? Если установить значение true, то советнику будет разрешено динамически изменять переменную DefaultPips, о которой речь пойдет чуть ниже. Если проставлено значение false, то шаг между выставлением новых ордеров будет фиксированным и равен значению переменной DefaultPips.

DefaultPips - определяет шаг между выставлением новых ордеров по умолчанию. То есть, если задать значение DefaultPips 12, а значение DynamicPips - false, то советник Илан 1.6 будет открывать каждый новый ордер после прохождения ценой расстояния в 12 пунктов. В противном случае, переменная DefaultPips будет изменяться динамически.

Переменная Glubina - обозначает, сколько баров (или свечей) эксперт будет анализировать перед открытием первой сделки. Так, при установленном параметре, равном 24, робот отсчитает предыдущие High и Low свечи в общем количестве 24, и проанализирует по ним состояние рынка.

Параметр DEL - коэффициент расчета динамического DefaultPips при DynamicPips - true. При этом DefaultPips будет рассчитываться по формуле [количество High свечей - количество Low свечей]/DEL.

Переменная SLIP (проскальзывание) - определяет, насколько может отличаться цена, если дилинговый центр запросит реквоты. К примеру, если в процессе обработки заявки советника дилинговый центр сообщает об изменении цены на столько-то пунктов, и размер этого изменения равен или меньше значения SLIP, то ордер все равно будет обработан. А если изменение цены больше переменной SLIP, то ордер открыт не будет.

Переменная Lots определяет объем первого открываемого советником ордера. Значение по умолчанию - 0.01. Однако не все дилинговые центры при выбранном типе счета разрешают торговать микро-лотом, устанавливая возможный минимальный объем - 0.01. Тот же популярный у новичков дилинговый центр RoboForex на центовом счете типа Fix-Cent разрешает открывать ордера минимальным объемом 0.1.

Переменная LotDecimal определяет, сколько знаков будет рассчитывать советник Ilan 1.6 в лоте после запятой. Если он торгует микролотами, то есть в диапазоне от 0.01 до 0.09, то значение LotDecimal должно составлять 2. В условиях торговли минилотами (от 0.1 до 0.99) LotDecimal = 1, при торговле нормальными лотами (1 и более) переменная LotDecimal = 0. Подробная информация и мини, микро и стандартных лотах доступна здесь.

Переменная TakeProfit задает количество пунктов прибыли от безубытка всей серии ордеров, при которой робот закроет ордера.

Переменная Drop определяет значение вшитого в советник Ilan индикатора CCI с периодом 55. Рекомендуемое значение Drop = 500. Когда индикатор CCI превышает отметку 500, все открытые ордера советник закроет, во избежание больших потерь.

Сам индикатор CCI (Commodity Chanel Index) - это трендовый индикатор индекса товарного канала, который измеряет отклонение цены валютной пары от среднестатистической цены. Для индикатора задан диапазон от +100 до -100, и если он выходит за эти пределы, то это свидетельствует о тренде вверх (значение индикатора больше +100) или тренде вниз (значение меньше -100) валютной пары, на графике которой установлен индикатор CCI.

Наглядно рассмотрим этот индикатор, вынеся его окно отдельно на график. Для этого при открытом окне выбранной валютной пары в панели Индикаторы выбираем тип Трендовые - Commodity Chanel Index.

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

Под окном графика появляется окно индикатора с уровнями +100, 0, -100. Кривая линия обозначает направление движения тренда. На примере видно, что при резком нисходящем движении индикатора наблюдается снижение цены инструмента. При этом, график индикатора опускается ниже значение -500, достигая отметки -517.

Если до этого были открыты сделки на покупку, а цена пошла в сторону снижения, и индикатор CCI достиг отметки -500, то советник принудительно закроет все открытые сделки на покупку, чтобы избежать больших убытков, связанным с неверным определением направления для открытия сделок. В Журнале торгового терминала MetaTrader 4 отразится запись Closed All due to TimeOut, которая означает, что все сделки закрыты по тайм-ауту, то есть, дожидаться улучшения рыночного состояния не целесообразно.

Аналогично, принудительно будут закрываться сделки на продажу при достижении индикатором уровня +500.

Следующая переменная RsiMinimum - также является встроенным в код советника индикатором RSI. Рекомендуется задавать ей значение 30, которое будет являться нижней границей индикатора. Ниже этой границы советник не будет открывать сделки на продажу.

Переменная RsiMaximum - граница индикатора RSI, выше которой советник Ilan 1.6 не будет открывать сделки на покупку.

Индикатор RSI - Relative Strenght Index - индекс относительной силы, измеряет импульс движения цены. Его значение находится в диапазоне от 0 до 100%. Значения ниже 30% считаются зоной перепроданности, то есть далее продавать валюту не рационально, поэтому в советнике значение 30 и является нижней границей. Также, пока индикатор будет находиться ниже уровня 30, будут ограничения на совершения сделок на покупку.

Значение выше 70 - является зоной перекупленности. Если индикатор выше этой отметки, то советник не будет совершать сделок на покупку, так как рынок сигнализирует о скором изменении направления тренда. Однако будет существовать запрет и на открытие сделок на продажу.

Значения индикатора RSI в советнике Илан 1.6 по умолчанию определяются на тайм-фрейме 1 час.

Сам индикатор относится к осцилляторам, поэтому искать его следует в панели Индикаторы - Осцилляторы - Relative Strenght Index терминала MT 4. В появившемся окне параметров все значения оставляются по умолчанию.

Переменная MagicNumber - магическое число, которое присваивается каждой сделке, открытой советником, для того, чтобы отличать их от сделок, открываемых в торговом терминале другими советниками или самим трейдером вручную. По умолчанию, "магик" эксперта Илан 1.6 равен 2222.

MaxTraders = 20 - переменная, определяющая максимальное количество ордеров, которые робот может открывать в рамках одной серии.

Переменная UseEquityStop может принимать два значение - true (1 - разрешить) и false (2 - запретить). При значении true - Илан следит за общим убытком сделок, то есть, разрешается работа переменной TotalEquityRisk.

TotalEquityRisk - задает размер максимальной просадки по эквити, которую может допустить советник. Так, при значении TotalEquityRisk = 20, Ilan закроет все свои ордера, если общая просадка составит 20% от суммы средств на счету.

Что такое эквити? Эквити (на английском - Equity) - это баланс счета с учетом текущих прибылей и убытков по открытым позициям. Если на счете перед открытием первой сделки есть 1000 долларов, и размер убытков по открытым советником позициям составляет 20%, то есть 200 долларов, то все сделки принудительно закрываются.

Параметр UseTrailingStop может иметь значения 1 (true -разрешить) и 2 (false - запретить). В случае, когда задано значение true, и сделки входят в зону безубытка, будет активироваться трейлинг-стоп и скользить за ценой, пока она идет в нужном направлении. Аналогичный принцип слежения за ценой заложен в работу советника Forex Trailingator, который сам сделки не открывает, а только сопровождает их.

Параметр UseTimeOut опять же принимает два значения true - 1 и false - 2. При значении переменной true советник Ilan 1.6 будет закрывать сделки, которые висят уже долгое время. Период, определяющий, как долго может висеть сделка открытой, выставляется переменной MaxTradeOpenHours. Значение переменной MaxTradeOpenHours измеряется в часах.

Как видно, правильная оптимизация советника Ilan 1.6, а также его тестирование будут зависеть от того, насколько верно и грамотно будут заданы его входные параметры. Поэтому очень важно научиться разбираться в них, чтобы правильно оптимизировать советника Илан 1.6 или других советников в тестере стратегий, заранее отсекая убыточные параметры.

Для закрепления материала рекомендуем ознакомиться с видео - версией первой части оптимизации советника Илан 1.6, а именно - с обзором переменных данного советника:

Во второй части статьи, которая опубликована здесь, подробно рассмотрен непосредственно сам процесс оптимизации и тестирования советника Илан 1.6 в тестере стратегий торгового терминала МетаТрейдер 4.

avtoforex.ru

Как оптимизировать советники Форекс » В мире Forex

Если вы работаете в направлении создания торгового советника, то стоит понимать, что процесс настройки торговых советников является не менее важным, чем сама работа, направленная на разработку торговой стратегии. В качестве примера можно привести торгово-аналитический терминал Meta Trader 4 (см. Торговый терминал MetaTrader 4 (МТ4)). С помощью этой торговой платформы у трейдера имеется возможность провести одномерную оптимизацию советников.

В общем, если говорить проще, то самые лучшие параметры будут выбираться за счет анализа лишь одного показателя. И здесь таким показателем, как правило, выступает или же просадка, или прибыль, либо просто математическое ожидание.

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

В торгово-аналитическом терминале Meta Trader 4 реализована возможность автоматизировать данный процесс. Но не спешите начинать процедуру оптимизации. Для начала хорошенько покопайтесь в настройках. И чтобы это сделать, необходимо выполнить следующие действия:

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

В торговой платформе Мета Трейдер 4 все действия, которые связаны с настройкой торговых советников для работы, осуществляются в отдельном окне под названием «Тестер». Терминал уже заранее предусматривает возможность для трейдеров использовать различные варианты отображения исторических данных. Понятно, что данном случае было бы более правильно сопоставлять данные. То есть, брать информацию и за короткий и за длинный промежуток времени, чтобы можно было сделать объективные выводы. Например, когда мы будем анализировать данные за мелкие периоды, то сможем понять, каковы колебания цен внутри баров. К примеру, в том случае, если оптимизация робота делается на часовом периоде, то динамика цен внутри свечи может быть отображена на базе информации за каждую минуту.

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

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

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

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

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

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

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

forexman.info


Смотрите также