Видео блог разработчика https://www.youtube.com/watch?v=kOyreTVnmAQ

Обновление VR Watch list and Linker новая версия 22.082 от 12.08.2022

Применить

Как оптимизировать форекс- и криптосоветники
Полные инструкции для MetaTrader 4 и MetaTrader 5

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

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

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

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

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

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

Как выполнить оптимизацию

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

Выбор задачи оптимизации

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

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

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

  • типу моделирования;
  • таймфрейму;
  • инструменту;
  • наименованию программы.

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

После выбора одной из задач на стартовой странице пользователь должен выполнить более тонкую настройку параметров тестирования:

  • выбрать эксперта;
  • установить период;
  • определить инструменты;
  • прочие опции. 

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

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

Первым делом выбирается контекстное меню нужного советника и выполняется команда  «Тестировать».

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

В результате произойдет выбор советника в тестере стратегий.

Установка символов в окне «Обзор рынка» для мультивалютных экспертов

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

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

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

Настройки оптимизации

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

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

  1. Выбор советника для тестирования или оптимизации.
  2. Выбор финансового инструмента.
  3. Временной интервал тестирования и оптимизации.
  4. Включение форвард тестирования.
  5. Включение задержек исполнения ордеров.
  6. Выбор типа моделирования цен.
  7. Выбор начального депозита.
  8. Включение и выбор типа оптимизации.
  9. Выбор периода тестирования или оптимизации.
  10. Дата начала тестирования или оптимизации.
  11. Дата конца тестирования или оптимизации.
  12. Дата начала форвард теста.
  13. Выбор валюты депозита.
  14. Выбор кредитного плеча.
  15. Включение визуального режима тестирования (значительно замедляет процесс тестирования, для оптимизации не работает).
  16. Настройки финансового инструмента.
  17. Открытие редактора MetaEditor для получения доступа к исходному коду программы.
  18. Выбор файла настроек советника.
  19. Дополнительные «тонкие» настройки оптимизации и тестирования.
  20. Выбор типа расчета прибыли (для многих торговых систем может работать  некорректно).
  21. Вкладка обзора предустановленных типов тестирования или оптимизации.
  22. Вкладка настроек тестирования или оптимизации.
  23. Вкладка настроек советника.
  24. Вкладка агентов-ядер процессора для оптимизации.
  25. Вкладка журнала тестирования и оптимизации (в данную вкладку терминал пишет все ошибки и результаты работы программы).
  • Надо помнить, что если указан символ, это не означает использования тестером исключительно обозначенных исторических данных. Тестер в автоматическом режиме осуществляет загрузку информации по всем символам, которые применяются в советнике.
  • Также автоматически происходит загрузка в платформу всех доступных ценовых данных на основе символа основного графика. И происходит это еще до начала тестирования/оптимизации. Если трейдер использует недостаточно скоростной интернет, на эту операцию может уйти довольно много времени.
  • Все данные скачиваются однократно. При очередном запуске происходит дозагрузка только недостающей информации.
  • В окне «Обзор рынка» доступны символы, которые могут быть использованы для тестирования/оптимизации.
  • Еще одна автоматически выполняемая операция – скачивание с сервера данных по востребованным символам.
  • Время начала и окончания тестирования – 00ч.00м.00 с. Нельзя забывать, что в период тестирования включают только начальную дату тестирования/оптимизации. Конец тестирования – это последний пик предшествующего дня. Конечная дата не может быть больше текущей: тестирование все равно закончится на текущей дате, которая не включается. 

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

После завершения всех настроек активируется кнопка «Старт» и запускается процесс тестирования либо оптимизации:

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

Входные параметры

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

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

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

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

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

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

Расширенные настройки тестирования

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

  • комиссии;
  • торговые ограничения;
  • маржа;
  • прочие.

Благодаря такой возможности трейдер моделирует разнообразные торговые условия у биржевых брокеров.

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

Общие настройки

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

Маржа

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

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

  1. Модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом.
  2. Уровень средств на счете, при достижении которого он переходит в состояние Margin call.
  3. В данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:

    • Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
    • Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
    • Использовать нереализованную прибыль — использовать только прибыль.
    • Использовать нереализованный убыток — использовать только убыток.
  4. В данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:

    • Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
    • Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета ("Заблокировано"). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).
  5. Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.
  6. Уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).

Комиссия

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

  • Комиссии делятся на одноуровневые и многоуровневые. В первом случае размер взимаемой комиссии не меняется с изменением объема сделки или оборота, тогда как во втором случае эта зависимость существует.
  • Время взимания комиссии назначается либо сразу после закрытия сделки, либо по окончании определенного торгового периода – дня или месяца.
  • Имеется разделение комиссий в зависимости от направления сделки: за выход, за вход, за то и другое.
  • Комиссия устанавливается либо за каждую сделку, либо за каждый лот.
  • Виды взимания комиссий могут варьироваться (в пунктах, процентах, деньгах).

При включении опции «Использовать свои настройки комиссии» становятся доступными настройки комиссии текущего торгового счета.

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

Собственные настройки символа тестирования

Основной торговый инструмент, на котором осуществляется тестирование или оптимизация, может перенастраиваться пользователем. У него имеется доступ практически ко всем параметрам специфики:

  • режиму исполнения;
  • объемам;
  • маржинальным требованиям;
  • режимам торговли;
  • многому другому.

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

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

Если спецификация символа изменяется, то на иконке настроек (как и на иконке собственного символа) в списке появляется звездочка. Благодаря этому пользователь всегда понимает, что для тестирования применяются пользовательские настройки.

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

Запуск оптимизации

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

Как и где ознакомиться с результатами оптимизации

Просмотр подробных результатов по каждому отдельному проходу доступен на вкладке «Оптимизация». Здесь можно ознакомиться с общими результатами тестирования:

  • информация по количеству торговых операций;
  • размер прибыли;
  • различные статистические показатели, помогающие при оценке качества робота.

Для получения подробной информации достаточно перейти в раздел «Отчет о тестировании».

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

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

Показатели, выводимые для каждого отдельного прохода оптимизации:

  • Проход – номер прохода.
  • Результат – итоговый показатель параметра, являющийся критерием оптимизации, по которому подбираются лучшие проходы.
  • Прибыль – прибыль или убыток, которые получены по результатам прохода.
  • Всего трейдов – количество трейдов (сделок, которые привели к фиксации прибыли или убытка), проведенных в текущем проходе.
  • Прибыльность – соотношение общей прибыли к общему убытку в процентах. Единица означает, что размер прибыли и убытка совпадают. 
  • Матожидание выигрыша – статистически рассчитываемый показатель, который отражает среднюю прибыльность или убыточность одной сделки.
  • Просадка – относительная просадка средств, наивысший убыток (в процентах) от максимального показателя средств. Снятие денег (Withdrawal) советником во время оптимизации учитывается при расчете просадки.
  • Фактор восстановления – этот параметр отражает рискованность стратегии (какой суммой советник рискует чтобы получить прибыль). Показатель высчитывается как соотношение полученной прибыли к максимальной просадке.

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

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

Команды контекстного меню позволяют скрывать или показывать некоторые из перечисленных в таблице столбцов. Чтобы работать было удобнее, включается опция «Автопереключение на результаты». В итоге, как только завершится оптимизация, будет выполнено автоматическое переключение тестера стратегий на вкладку результатов. Имеется подобная команда и в контекстном меню, которое открывается после активации вкладки «Журнал».

Благодаря фильтрам пользователь может оперативно скрыть имеющиеся в списке неудачные проходы, в которых:

  • отсутствуют сделки;
  • роботом показаны убытки;
  • показатель просадки превышает 50%;
  • фактор восстановления ниже единицы;
  • уровень коэффициента Шарпа не достигает 0,5.

Для удобства выполнения визуального анализа проходов принято окрашивать результаты оптимизации в следующие цвета:

  • Баланс: синий – значения превышают начальный депозит; красный – значения ниже начального депозита.
  • Прибыль: синий – значения выше нуля; красный – значения ниже нуля.
  • Матожидание выигрыша: синий – выше нуля; красный – ниже нуля.
  • Просадка: зеленый – от 0 до 5%; красный – выше 30%.
  • Коэффициент Шарпа: зеленый – превышает 2; красный – ниже нуля.
  • Фактор восстановления: зеленый – больше двух; красный – не доходит до единицы.
  • Если при оптимизации использовалось форвард-тестирование, то в означенной вкладке будут отображены надлежащие показатели критерия оптимизации (параметра оптимизации) для форвард-теста и бэк-теста. Чтобы выполнить переключение режимов просмотра результатов форвард-тестирования и бэк-тестирования, необходимо воспользоваться контекстным меню.
  • Если два раза нажать на левую клавишу мыши, наведя курсор на один из результатов оптимизации, произойдет запуск тестирования советника. В случае завершения оптимизации будут применены параметры этого прогона.
  • Иногда возникает ситуация идентичности входных параметров очередного прохода (члена популяции) с показанным проходом, который был протестирован ранее. По этой причине данный проход не отразится на вкладке результатов. Но он будет отражен на графике оптимизации, где отображение всех проходов позволяет показать, как проходили поиски наилучшего результата.
  • Красный фон строки прохода оптимизации сигнализирует о наличии ошибки в работе советника. Аналогичная запись будет внесена в журнал тестера. 

Кэш оптимизации

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

Кэши оптимизации, которым придан вид бинарных файлов, хранятся в папке \Tester\cache. Название файлам дается согласно следующему правилу: ExpertName.Symbol.Period.StartDate.EndDate.GenerationModeOptimizationMode.Hash.opt.

Здесь:

  • ExpertName – название эксперта, который оптимизируется;
  • Symbol – символ;
  • Period – таймфреймы;
  • StartDate – дата начала оптимизации;
  • EndDate – дата окончания оптимизации;
  • GenerationMode (режим генерации тиков): 0 – «Все тики», 1 – «Каждый тик на основе реальных тиков», 2 – «OHLC на M1», 3 – «Только цены открытия», 4 – «Математические вычисления».
  • OptimizationMode (тип оптимизации): 0 – «Медленная (полный перебор параметров)», 1 – «Быстрая (генетический алгоритм)», 2 – «Все символы, выбранные в окне «Обзор рынка»».
  • Hash.opt – хэш-производная от всех остальных параметров (применяется для нахождения кэш-файлов).

Наличие кэш-файлов всегда позволяет ознакомиться с результатами оптимизации, которые были получены ранее. Для этого необходимо открыть вкладку «Результаты оптимизации», выбрать эксперта, а также файл, содержащий кэш оптимизации:

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

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

  • дату проведения оптимизации;
  • информацию о входных параметрах;
  • настройки тестирования (даты, таймфрейм, символ).

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

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

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

  • Чтобы оптимизировать ресурсы дискового пространства, кэш-файлы автоматически удаляются, если ими не пользуются на протяжении тридцати дней.
  • Когда осуществляется генетическая оптимизация, сохранение промежуточных результатов в кэше выполняется после того, как рассчитывается каждое поколение (файл папка_данных_платформы/tester/cache/*.gen). Таким образом, прерывание процесса генетической оптимизации можно производить в любой момент. Даже если это произойдет по каким-либо внешним причинам, процесс будет автоматически продолжен с места, на котором он был прерван, как только причина прерывания будет устранена. Хранение кэша генетической оптимизации прекращается, если меняются настройки оптимизации или завершается процесс оптимизации.
  • Если оптимизация прервана с помощью кнопки «Стоп»,  сохранение всех рассчитанных ранее проходов гарантируется. Возобновление оптимизации служит сигналом для продолжения процесса с того места, на котором произошла остановка.

Как визуально представлены результаты оптимизации

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

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

График с результатами и Линейный график (1D)

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

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

Горизонтальная ось графика используется для отметки номера прохода, а вертикальная – для значений параметра, являющегося критерием оптимизации.

В зависимости от того, какое значение имеет критерий оптимизации, для раскраски графика применяются цветные градиенты начиная с зеленого и заканчивая красным.

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

Линейный график (1D) используется для отображения параметра. По вертикальной оси выбирается критерий оптимизации, а по горизонтальной – один из оптимизируемых параметров, выбранный для отображения на этой оси. Используя команду «Ось X» из контекстного меню, пользователь выбирает, какой параметр будет отображаться на горизонтальной оси.

Плоский (2D) и Объемный (3D) графики

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

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

Когда выбирается трехмерный режим просмотра, для отметки изменений, имеющих место в выбранных параметрах, используются оси X и Y, а на вертикальной оси Z отображаются критерии оптимизации. Через команду «Ось X» и «Ось Y» пользователь может выбрать параметры для отображения на вертикальной и горизонтальной осях.

3D-графиком можно управлять с помощью мыши:

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

Управление 3D-графиком при помощи клавиатуры:

  • Включение/выключение координатной сетки – G.
  • Переключение между сплошной заливкой и заливкой при помощи линий – пробел.
  • Движение камеры верх (график перемещается вниз) – стрелка вверх.
  • Движение камеры вниз (график перемещается вверх) – стрелка вниз.
  • Движение камеры вправо (график перемещается влево) – стрелка вправо.
  • Движение камеры влево (график перемещается вправо) – стрелка влево.
  • Приближение камеры (увеличение графика) – плюс.
  • Отдаление камеры (уменьшение графика) – минус.
  • Вращение графика на себя вокруг горизонтальной оси – Home.
  • Вращение графика от себя вокруг горизонтальной оси – Page Up.
  • Вращение графика вокруг вертикальной оси против часовой стрелки – End.
  • Вращение графика вокруг вертикальной оси по часовой стрелке – Page Down.
  • Перемещение нулевой плоскости вверх на единицу – Ctrl+Стрелка вверх.
  • Перемещение нулевой плоскости вниз на единицу – Ctrl+Стрелка вниз.
  • Перемещение нулевой плоскости вверх на 10 единиц – Ctrl+Page Up.
  • Перемещение нулевой плоскости вниз на 10 единиц – Ctrl+Page Down.
  • Перемещение нулевой плоскости в максимальное значение графика – Ctrl+Home.
  • Перемещение нулевой плоскости в минимальное значение графика – Ctrl+End.
  • Увеличение прозрачности нулевой плоскости – Ctrl+Плюс.
  • Уменьшение прозрачности нулевой плоскости – Ctrl+Минус.
  • Установить максимальную прозрачность нулевой плоскости (исчезает) – Ctrl+Стрелка вправо.
  • Установить минимальную прозрачность нулевой плоскости (становится непрозрачной) – Ctrl+Стрелка влево.
  • Вернуться к настройкам графика по умолчанию – клавиша «5» на цифровой клавиатуре.

Проверка робота форвард-тестированием на неоптимизированном участке

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

Алгоритм включения форвард-тестирования – вкладка «Настройки» => поле «Форвард-период» => указание той части общего периода, для которого должна быть применена проверка:

  • нет – необходимость в форвард-тестировании отсутствует;
  • 1/2 – для форвард-тестирования используется только половина выбранного периода;
  • 1/3 – для форвард-тестирования используется одна третья часть выбранного периода;
  • 1/4 – для форвард-тестирования используется одна четвертая часть выбранного периода;
  • пользовательский – выбирая данное поле, необходимо с правой стороны указывать дату начала форвард-тестирования.

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

  • Форвард-тестированию всегда подвергается последняя (вторая) часть из общего периода.
  • Вертикальная линия на графике оптимизации – это дата запуска форвард-периода.

В поле «Использовать дату» от выбранного периода надо отделить выбранную часть:

  • первую из них принято называть бэк-тестированием;
  • вторую – форвард-тестированием.

Период бэк-тестирования используется для проведения полной оптимизации советника (медленной или быстрой). После этого выполняется отбор лучших прогонов:

  • если имеется полный перебор, то отбирается 10%;
  • при генетическом анализе отбирается 25%.

И именно их тестируют на форвард-периоде.

Установлен нижний предел для числа прогонов форвард-тестирования:

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

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

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

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

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

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

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

Агенты бывают трех типов:

  • Локальные – устанавливаемые по умолчанию вместе с установкой торговой платформы.
  • Удаленные – использующие мощности других компьютеров.
  • Облачные – работающие аналогично предыдущим.

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

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

На что нужно обратить внимание:

  • Чтобы снизить расход заряда батареи ноутбука, лучше отказаться от использования локальных агентов и перейти на облачные или удаленные.
  • На протяжении пяти минут не происходит выгрузки из памяти компьютера процессов использованных локальных агентов, если тестирование не останавливалось через кнопку «Стоп» или это произошло не по причине закрытия торговой платформы. Благодаря этому удается избавиться от задержек из-за подготовки исторических данных и запуска процессов агентов. Но это утверждение справедливо только тогда, когда при повторном запуске тестирования или оптимизации не меняются эксперт, символ, период или временной интервал.  
  • Установка по умолчанию одновременно с торговой платформой касается только локальных агентов. Их использование возможно исключительно в тесте стратегий конкретной локальной платформы. Установка удаленных агентов возможна только в ручном режиме.   

Локальная ферма агентов для ускорения оптимизации

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

Алгоритм создания фермы агентов

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

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

Чтобы произвести установку «с нуля», после закачки приложения MetaTrader 5 Strategy Tester Agent необходимо выполнить простую инструкцию:

  1. Перейти во вкладку «Службы» в менеджере.
  2. Выбрать необходимое количество устанавливаемых агентов, которое зависит от того, сколько ядер имеет процессор.
  3. Указать пароль, по которому будут подключаться агенты.
  4. Выбрать диапазон портов.
  5. Активировать кнопку «Добавить».

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

Для использования удаленных агентов подходят только 64-битные ОС.
С целью экономии пространства на диске и трафика, а также для повышения безопасности, на удаленных агентах не рекомендуется:
  • выводить в журнал сообщения советников и сведения, относящиеся к торговым операциям;
  • вызывать DLL.

Порядок подключения агентов

После открытия тестера стратегий выполняется переход на вкладку «Агенты», где выбирается пункт «Local Network Farm» и выполняется клик кнопкой «Добавить».

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

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

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

После нажатия кнопки «Готово» можно будет тестировать все найденные агенты.

Имеется еще несколько вариантов, позволяющих добавить агентов:

  • Использовать IP-адрес или доменное имя сервера. Для этого указываются перечисленные данные, а также диапазон портов в сочетании с паролем, установленным для подключения агентов.
  • Импорт из файла *.mt5. После нажатия кнопки «Далее» указывается файл *.mt5, с которого планируется импорт агентов.

Если для установки агентов на компьютер была использована MetaTester 5 Agents Manager, то они могут быть подключены как удаленные на этом же ПК. При наличии некоторого запаса мощности появляется возможность увеличения нагрузки и использования всего вычислительного потенциала.

Изменение настроек агента

Чтобы изменить настройки агента, в его контекстном меню активируется команда «Редактировать».

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

В окне, предназначенном для настроек, имеются следующие поля:

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

Локальные агенты могут быть только включены или выключены.

Импорт и экспорт параметров внешних агентов

В платформу заложена возможность импортировать и экспортировать настройки внешних агентов в тестовые файлы с целью облегчения этого процесса. У файлов настроек агентов имеется расширение *.mt5. Местоположение команд импорта и экспорта – вкладка «Агенты».

Формат файла настроек агентов: Name;Address:port;Password;Description;Enable.

Он имеет следующие обозначения:

  • Name – указание имени агента.
  • Address:port – указание IP-адреса и порта подключения к агенту.
  • Password – пароль подключения.
  • Description – краткое описание технического оборудования, на котором работает агент.
  • Enable – цифра 1 (агент включен) или 0 (агент выключен).

Для отделения настроек разных агентов используется перевод строки.

Сеть облачных вычислений MQL5 Cloud Network для ускорения оптимизации

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

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

Нюансы, связанные с работой MQL5 Cloud Network

При работе с MQL5 Cloud Network нужно учитывать следующие моменты:

  • Задействование мощностей сети MQL5 Cloud Network происходит при наличии полного перебора параметров.
  • Особенность генетического алгоритма такова, что генетическая оптимизация требует использования только одной точки доступа.
  • В случае, когда суммарное число шагов оптимизации преодолевает планку в 100 000 000, включение режима генетической оптимизации осуществляется в автоматическом режиме.
  • Для использования сети MQL5 Cloud Network на компьютере должна использоваться 64-битная система.
  • Пользователь может быть не только потребителем MQL5 Cloud Network, но и поставщиком собственных вычислительных мощностей в сеть. Для установки удаленных агентов и подключения их в сеть рекомендуется использовать специальную утилиту MetaTester.
  • Для получения полной информации о сети MQL5 Cloud Network необходимо зайти на официальный сайт cloud.mql5.com

Расходы на использование MQL5 Cloud Network

Агентами сети MQL5 Cloud Network не получится воспользоваться бесплатно. Чтобы ознакомиться с формулой расчета стоимости, следует перейти в отдельный раздел сайта cloud.mql5.com. Для отображения величины текущего баланса аккаунта MQL5.community выделено место выше списка облачных агентов.

Использование MQL5 Cloud Network возможно, если на счету аккаунта MQL5.community не меньше $1. Пользователь должен быть готов заплатить за услуги по пакетной раздаче заданий на некоторое количество точек доступа.

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

Запуск MQL5 Cloud Network

Для задействования агентов сети надо перейти в контекстное меню и активизировать команду  «Включить». Если отсутствует информация о наличии аккаунта на MQL5.community,  пользователю будет предложено внести ее.

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

Если ранее не была пройдена регистрация, нужно перейти по ссылке www.mql5.com, чтобы создать новый аккаунт.

Алгоритм запуска вычислений с помощью MQL5 Cloud Network

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

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

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

Типы оптимизации

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

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

Медленный режим (наличие полного перебора параметров)

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

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

Быстрый режим (генетический алгоритм)

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

Генетический алгоритм позволяет выполнить за короткий промежуток времени объем работы, на выполнение которого методом полного перебора понадобится несколько дней (а иногда и недель).

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

Общий вид алгоритма можно описать следующим образом:

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

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

Количество проходов тестирования

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

  • Размер популяции – может иметь значение в пределах от 64 до 256. Основой для его расчета является количество вероятных комбинаций параметров, подвергающихся оптимизации.
  • Безусловное количество поколений – может колебаться от пятнадцати до тридцати одного. При этом 15 проходов являются обязательными. Если на одном из поколений между 15 и 31 нет улучшения критерия оптимизации, то запускается дополнительное тестирование всех поколений на предмет оценки сходимости.
  • Число поколений для оценки сходимости – расчетное количество составляет одну треть от обусловленного количества поколений. Например, если на семнадцатом поколении зафиксирован лучший результат, а на восемнадцатом он отсутствует, то выполняется дополнительное тестирование пяти поколений – потому что улучшения уже отсутствовали на восемнадцатом поколении, а чтобы проверить сходимость, требуется отсутствие положительной динамики на шести поколениях (18/3).

Тестирование заканчивается, если не наблюдается улучшения на оговоренном количестве поколений.

  • Быстрая оптимизация включается в автоматическом режиме, когда суммарное число шагов оптимизации достигает отметки  1 000 000 (32-битная система) либо 100 000 000 (64-битная система).
  • Для сохранения промежуточных результатов при генетической оптимизации, после того как рассчитывается каждое поколение, используется кэш (файл папка_данных_платформы/tester/cache/*.gen). Поэтому прерывание процесса генетической оптимизации возможно на любом этапе. Даже когда генетическая оптимизация прервана внешними факторами (отсутствует свет), точкой автоматического продолжения оптимизации станет последнее рассчитанное поколение.
  • Сохранность кэша обеспечивается либо до изменения настроек оптимизации, либо до момента, когда оптимизация полностью завершится.
  • Если для остановки оптимизации применили кнопку «Стоп», происходит сохранение ранее рассчитанных проходов и возобновленная оптимизация начнется с места ее остановки.

Критерий оптимизации

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

Необходимость в критерии оптимизации возникает только при использовании генетического алгоритма.

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

Имеется доступ к следующим критериям оптимизации:

  • Максимальный баланс – показателем оптимизированности является максимальное значение баланса.
  • Максимальная прибыльность – показателем является максимальное значение прибыльности.
  • Максимальное матожидание выигрыша – показателем является матожидание выигрыша.
  • Минимальная просадка – в данном случае учитывается уровень просадки: Баланс/Просадка по эквити.
  • Максимальный фактор восстановления – показателем является фактор восстановления.
  • Максимальный коэффициент Шарпа – показателем является коэффициент Шарпа.
  • Пользовательский критерий оптимизации – при выборе данного параметра в качестве критерия оптимизации будет учитываться значение функции OnTester() в советнике. Данный параметр дает возможность применить любой пользовательский показатель для оптимизации.

Кроме того, имеется «Максимум комплексного критерия», являющийся комплексным, интегральным показателем качества прохода тестирования.

В нем одновременно учитываются следующие параметры:

  • число сделок,
  • уровень просадки,
  • коэффициент Шарпа,
  • математическое ожидание выигрыша,
  • фактор восстановления.

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

  • в первую очередь оценивается количество сделок;
  • затем – математическое ожидание прибыли;
  • далее – фактор восстановления;
  • и дальше по порядку.

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

Окно «Обзор рынка» и символы, выбранные в нем

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

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

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

Реальные и сгенерированные тики

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

Реальные тики

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

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

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

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

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

При использовании режима генерации «Все тики» бары строятся по ценам Bid, а сделки совершаются по Bid и Ask. Рассчитывается цена покупки, берется наилучшее предложение о покупке актива другими пользователями, и к данной цене прибавляется разница между ценой покупателя и продавца, или Spread. В итоге формула выглядит следующим образом:

Ask = Bid + Spread (минутного бара).

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

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

Информация по тикам – размер и так называемый вес – значительно серьезнее и больше минутных данных. Именно по этой причине аналитика данных (особенно при первом запуске) занимает очень много времени. Потому что ТКС хранит информацию за несколько месяцев торговых операций в каталоге \bases\[имя торгового сервера]\ticks\[имя символа]\.

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

Генерация тиков

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

Тестер стратегий содержит несколько различных режимов генерации тиков. И вариант «Все тики» самый точный из них.

Создаются различные тики в зависимости от разницы показаний тикового объема:

Тиковый объем = 1

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

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

Тиковый объем = 2

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

Выглядит это так:

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

Тиковый объем >= 3

Ситуация резко меняется для баров с тремя и более тиками. В этих случаях создаются различные графики тиков – в зависимости от их количества.

Схемы развития баров

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

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

На графике это отображается следующим образом:

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

Во втором случае стоимость начала торгов на бирже менялась в сторону повышения (или понижения) и в конце дня ушла значительно выше (или ниже) стоимости открытия. Тогда будет иметь место или   наивысшая, или минимальная цена (на биржевом сленге – High/Low) – в зависимости ситуации на рынке. Надо помнить, что цена открытия и цена закрытия торгов не равны.

На графике будет следующая картина:

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

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

На графике будет следующая ситуация:

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

Четвертое значение – стоимость только росла или, наоборот, падала. При этом не имелось обратных всплесков, был только бычий или медвежий тренд. Тогда по завершении торгов бар не имеет наивысшей или наименьшей стоимости (High/Low).

На графике это отображается таким образом:

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

Генерация тиков для баров с тремя и более тиками

Разумеется, создание тиков зависит от опорных точек. Максимальное их число – 11. Цена открытия Open не входит в подсчет количества опорных точек, так как с нее начинается движение.

Опорные точки всегда разделены на три основные группы:

  • создание открывающей тени;
  • размер так называемой «свечки»;
  • результат закрывающей тени.

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

При этом есть прямая зависимость от количества тиков, и выглядит это так:

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

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

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

Разумеется, бывают случаи, когда в размере участвует четное количество точек. Это решается крайне просто:

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

Идеальное распределение (3-5-3)

Существует так называемое идеальное распределение опорных точек, которое зависит от цены начала торгов на бирже. Для вычисления распределения точек 3-5-3 используют определенные формулы.

Бычья свеча:

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

Медвежья свеча:

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

Свечи «Дожи»

В тех случаях, когда появляется свеча «Дожи» (Close = Open),  необходимо проверять предыдущую свечу. Если она была нисходящей, то текущую нужно считать восходящей, и наоборот.

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

Тени с тремя точками

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

Тогда формирование тени происходит так:

Медвежья свеча

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

Бычья свеча

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

Точно так же формируется и завершающая тень.

Тени с двумя точками

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

Медвежья свеча

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

Бычья свеча

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

Точно так же формируется и завершающая тень.

Размах свечи

Размах свечи создается на циклических волнах.

Например, когда Prev равен Low, то есть предшествующий курс – это и есть Low, то применяется такой цикл:

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

Когда Prev равен High, то есть предшествующий курс – это и есть High, то применяется такой цикл:

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

Где:

N1, N2 – это опорные точки в цикле;

Prev – предшествующий курс;

Step – величина шага.

Шаг рассчитывается по такому алгоритму: (H — L — 1)/(Количество циклов) + 1.

При этом количество циклов рассчитывается по такой формуле: (Количество опорных точек в размахе + 1)/2.

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

Промежуточные тики

Существуют также определенные правила для генерации промежуточных тиков между точками опоры:

  • Когда количество тиков превышает количество пунктов между точками опоры, создается «пила» (первоначальный показатель +/-1).
  • Когда между точками опоры большое количество пунктов, создается линейная цепочка тиков. 

Методы генерации тиков

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

Здесь доступны такие варианты:

«Все тики»

Как понятно из названия, работают не только OHLC, но и «промежуточные». Метод генерации для такого случая рассмотрен выше.

OHLC на M1

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

Выбор этого режима не означает, что тестирование или оптимизация будет проводиться с периодом М1. Котировки будут формироваться на каждом минутном баре для значений Open, High, Low и Close.

При этом событие OnTick тоже нужно запускать четыре раза в минуту:

  • на открытии;
  • на закрытии;
  • на минимуме;
  • на максимуме.

По факту курсы OHLC есть в исторических котировках. То есть при тестировании создается только время прихода тиков Open, High, Low и Close. И курсовые показатели берутся из истории.

Только цены открытия

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

И здесь есть ряд ограничений:

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

Поэтому оптимальным решением будет использовать режим «Все тики», но это замедлит работу советника.

Математические вычисления

При таком режиме работы все поля становятся неактивными, кроме следующих:

  • «Режим оптимизации»;
  • «Выбор эксперта».

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

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

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

Перед началом оптимизации характеристик советника выполняется настройка. Она происходит по следующему алгоритму:

  • выбирается советник, и задаются его входные показатели;
  • осуществляется выбор не только финансового инструмента, но и его периода;
  • из трех способов, используемых для моделирования баров, выбирается один;
  • в необязательном порядке выполняется задание временных пределов для оптимизации.

Чтобы тестировать и оптимизировать советники, в терминале имеется окно, предназначенное специально для этой цели. Оно так и называется – «Тестер». В нем нужно перейти во вкладку «Настройка» для выполнения всех вышеперечисленных настроек.

Характеристики советника

Эксперт, показатели которого нуждаются в оптимизации, находится в поле окна «Тестер – Советники». Но выбран может быть не любой файл советника, а лишь тот, к которому имеется доступ в терминале клиента. Чтобы они там оказались, их необходимо скомпилировать и сохранить в папке /EXPERTS.

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

  1. Выбор типа тестируемой программы;
  2. Выбор программы для тестирования - оптимизации;
  3. Выбор финансового инструмента;
  4. Выбор типа эмулирования цен;
  5. Включени использования дат тестирования и оптимизации;
  6. Включение режима визуализации (Значительно замедляет процесс тестирования, для оптимизации не работает);
  7. Ползунок скорости тестирования (Для оптимизации не работает);
  8. Выбор даты начала тестирования;
  9. Кнопки паузы тестирования и пропуска визуального режима;
  10. Выбор даты окончания теста;
  11. Выбор даты пропуска тестирования в визуальном режиме;
  12. Выбор периода;
  13. Выбор размера спреда;
  14. Включение функции оптимизации;
  15. Открытие окна настроек советника или индикатора;
  16. Открытие окна свойств финансового инструмента;
  17. Открытие графика финансового инструмента;
  18. Открытие редактора MetaEditor для получения доступа к исходному коду программы;
  19. Вкладка настроек тестера;
  20. Вкладка журнала тестирования и оптимизации (В данную вкладку терминал пишет все ошибки и результаты работы программы);
  21. Индикатор процессы тестирования;
  22. Запуск/Остановка процесса тестирования;

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

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

В результате данного действия открывается новое окно с тремя вкладками:

  • «Тестирование».
  • «Входные параметры».
  • «Оптимизация».

Процесс тестирования

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

  • Only Long – для открытия исключительно длинных.
  • Only Short – открываются только короткие.
  • Long and Short – позиции могут открываться и в ту, и в другую сторону.

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

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

Перечень параметров, доступных для оптимизации:

  • Balance – наибольшее значение баланса.
  • Profit Factor – наибольшее значение фактора прибыльности.
  • Expected Payoff – наибольшее значение математического ожидания выигрыша.
  • Maximal Drawdown – наибольшее значение просадки.
  • Drawdown Percent (%) – наименьшее значение относительной просадки.
  • Custom – критерием для выбора этой характеристики оптимизации станет значение, присущее функции OnTester() в советнике.

Входные характеристики

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

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

Чтобы задать входные параметры советника для оптимизации, используются следующие поля:

  • «Старт» (стартовые значения).
  • «Шаг» (шаг изменения).
  • «Стоп» (финишные значения).

Левее строки с названием переменных ставится галочка, после чего параметр включается в оптимизацию.

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

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

Оптимизация

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

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

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

Ограничивающие параметры:

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

Финансовый инструмент – что это такое

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

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

Директория /TESTER используется для записи файлов исторических данных, имеющих формат *.FXT и используемых в тестировании.  Создание этих файлов при проведении тестирования происходит автоматически, когда выбран инструмент, имеющийся в терминале.

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

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

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

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

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

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

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

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

С учетом цен открытия

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

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

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

Контрольные точки

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

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

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

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

Все тики

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

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

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

С помощью фрактальной интерполяции также выполняется генерация движения цены между выбранными для контроля точками.

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

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

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

Цены Bid сохраняются в истории ценовых данных (клиентский терминал). Тестер стратегий при моделировании цен Ask по умолчанию использует текущий спред инструмента на момент запуска оптимизации. Но у  пользователя имеется возможность задать собственное значение спреда для оптимизации. Чтобы это сделать, ему достаточно перейти в поле «Спред».

Временной диапазон

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

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

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

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

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

Важно учитывать:
  • При отсутствии флажка возле пункта «Оптимизация» и нажатой кнопке «Старт» запустится не оптимизация, а тестирование советника.
  • Пользоваться собственными файлами истории можно как при оптимизации, так и при тестировании.

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

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

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

Оптимизация отличается от тестирования тем, что она предполагает многократное выполнение прогонов МТС (механическая торговая система). При этом можно использовать различные входные характеристики. Цель этого действия заключается в определении характеристик советника, которые позволят ему достичь максимального уровня прибыльности.

Для проведения оптимизации нужно выставить флажок с таким же названием во вкладке для настройки тестирования и активировать кнопку «Старт». Результатом этих действий станет появление в окне двух новых вкладок:

  • «График оптимизации».
  • «Результаты оптимизации».

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

Для удобства пользователей вся информация выводится в виде таблицы, в которой имеются поля со следующими названиями:

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

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

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

Отсутствие выделенных строк служит командой для копирования в буфер обмена всей таблицы. Это действие также может быть выполнено выбором команды «Копировать все».

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

Список других команд для настройки отображения результатов из контекстного меню:

  • Пропустить бесполезные результаты – показ или сокрытие результатов прогонов, принесших убыток.
  • Показать входные параметры – показ или сокрытие колонки под названием «Входные параметры».
  • Авторазмер столбцов – установка величины столбцов в автоматическом режиме, когда изменяется размер окна. Это действие выполняется и путем нажатия клавиши A.
  • Сетка – показ или сокрытие сетки, посредством которой разделяются колонки. Аналогичный результат получается после нажатия клавиши G.

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

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

Нижняя часть отведена для графика, на котором отображается число сделок по ходу каждого прогона:

  • если сделки прибыльные, используется зеленый цвет;
  • если сделки убыточные, используется красный цвет.

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

Для копирования в буфер обмена изображения графика следует использовать сочетание клавиш Ctrl+C (либо команду контекстного меню «Копировать»), после чего его можно использовать в иных приложениях. Кроме того, с помощью сочетания клавиш Ctrl+S (либо команды контекстного меню «Сохранить как рисунок») график в виде GIF-файла сохраняется на жестком диске.

Отзывы и обсуждения

Для написания комментария авторизуйтесь через
Для авторизации отключите блокировщик рекламы и обновите страницу.
Сначала авторизуйтесь на сайте.

Статьи по вашему выбору

Как установить - обновить приложение в MetaTrader
Как установить или обновить форекс- и криптосоветники
Полные инструкции для MetaTrader 4 и MetaTrader 5
Пошаговая инструкция, как правильно и без ошибок установить или обновить форекс- и криптосоветник, индикатор или скрипт в терминале MetaTrader. Инструкция написана для MetaTrader 4 и MetaTrader 5.
17.01.2022 Комментарии Читать Начинающему, Уроки, Справка, MetaTrader
Как купить советинк, индикатор или скрипт для MetaTrader
Как купить форекс- и криптосоветники
Полные инструкции для MetaTrader 4 и MetaTrader 5
Пошаговая инструкция, как купить или арендовать приложение для MetaTrader.
В инструкции описаны два способа приобретения приложения в терминале MetaTrader и на сайте mql5.com.
13.01.2022 Комментарии Читать Начинающему, Уроки, Справка, MetaTrader
Как тестировать форекс и крипто советники в MetaTrader
Как тестировать форекс- и криптосоветники
Полные инструкции для MetaTrader 4 и MetaTrader 5
Как качественно провести тестирование советников в MetaTrader для рынков Forex и Crypto. Максимально подробная инструкция с рекомендациями. Инструкция написана для терминалов MetaTrader 4 и MetaTrader 5. Все расписано по шагам с картинками.
06.01.2022 Комментарии Читать Начинающему, Уроки, Справка, MetaTrader
Урок N1 Скринер акций, как установить в MetaTrader разные версии программ
Скринер VR Watch liat and linker справка
Справка по скринеру акций и валют для MetaTrader
19.07.2022 Комментарии Читать Советники, Инвестирование, Справка, MetaTrader
Обратная связь Иконка наверх
Мы используем как собственные файлы cookie, так и файлы cookie третьих сторон с целью анализа, а также для показа рекламы с учетом ваших предпочтений, в соответствии с вашими привычками просмотра сайтов и вашего профиля. Чтобы получить более подробную информацию, посмотрите нашу Политику конфиденциальности.