Всем привет. Представьте ситуацию, решили собрать компьютер по комплектующим. Купили самую дорогую видеокарту, материнскую плату, оперативки 32Gb и тд. Собрали все в системный блок и работаете, что называется как есть, без драйверов. Как думаете, будет ли такой компьютер, удовлетворять ваши ожидания? Думаю что нет. Прежде чем работать на нем, ему нужно установить хотя бы драйвера, я уж не говорю о более глобальных настройках.
С торговыми советниками дело обстоит ровно так же. Да, безусловно разработчики дают свои настройки, но время идет, и, как уже сказано выше, то что работало вчера, может не работать сегодня. Поэтому, будем разбираться, как правильно оптимизировать советника.
Настраиваем параметры для оптимизации
В маркете, скачал советник BF Scalper EA (не знаете как устанавливать советники, читайте статью Как установить и запустить торгового советника в MetaTrader 4 (MT4)). Что это за зверь и по какому принципу работает не знаю, да это и не важно. На его примере будем разбираться с настройками и оптимизацией.
Для начала, прогоним тест с предустановленными настройками. Автор пишет, что его робот, хорошо торгует на паре GBPUSD, таймфрейм М15. Запускаем дату от 01.01.2019 до 28.02.2019 и посмотрим какой график доходности получится.
Не плохо. Со $100, советник заработал еще $178. На истории советник отработал очень даже хорошо и это вдвойне нас устраивает. Если бы советник отработал даже на истории в минус, то вообще на него смотреть смысла не было бы.
И все же, нет предела совершенству. Будем оптимизировать советник и пытаться улучшить результаты. Для этого, в окне тестера стратегий, нажимам «Свойства эксперта». Перед нами три вкладки:
- Тестирование;
- Входные параметры;
- Оптимизация.
Во вкладке «Тестирование» установим интересующий начальный депозит в $100. Торговать советник будет и на покупку и на продажу, поэтому в поле «Позиции» выберите «Long & Short».
В блоке «Оптимизация», нам предлагают выбрать «Оптимизируемый параметр» из предложенного списка:
- Balance;
- Profit Factor;
- Expected PayOff;
- Maximal Drawdown;
- Drawdown Percent;
- Custom.
Если хотите чтобы в выдаче участвовали только результаты с положительным итогом, то установите галочку на против «Генетический алгоритм».
Вкладка «Входные параметры», включает в себя переменные, которые будем оптимизировать.
Установите галочку на против поля, которое хотите оптимизировать. В моем случае были выбраны StopLoss и TakeProfit. Столбец «Значение», оставляем без изменений. В этом столбце расположено значение, предустановленное при предыдущем тестировании, по умолчанию. Нас интересуют столбцы:
- Старт — с какого значения начинается оптимизация;
- Шаг — какой шаг для следующего значения;
- Стоп — по достижении какого значения, оптимизация должна быть остановлена.
На скрине ниже выбрано для переменной StopLoss, начало оптимизации 20 пп, с шагом 5 пп, пока не дойдем до 50 пп. Аналогично с TakeProfit.
В советнике, оптимизировать можно любой параметр: StopLoss, TakeProfit, Максимальную просадку и тд.
Вкладка «Оптимизация» включает в себя ограничения. Работает по принципу описанному выше. К примеру, мы не хотим чтобы максимальная просадка во время работы советника, доходила до 30%. Устанавливаем галочку в поле «Максимальная просадка» и вводим значение 30. Во время оптимизации советника, любой проход который будет включать просадку 30%, автоматически останавливается и тест начинается со следующими параметрами.
С настройками все, теперь начинаем оптимизацию.
Оптимизация и бэк тестирование советника
Бэк тест — это тест на исторических данных с новыми, оптимизированными параметрами. Делается он для точного понимания на сколько прибыльно будет работать советник и стоит ли переходить к форвард тесту, или нужно вернуться на этап оптимизации.
Во время бэк тестирования, в поле использовать дату до, обязательно указывайте дату хотя бы на месяц раньше текущей даты.
На этом этапе можно приступать к оптимизации советника и выявлению оптимальных параметров для дальнейшей торговли. Нужно сказать, если параметров для оптимизации выбрано очень много, то и время потребуется достаточно много.
Переходим в тест стратегий, выбираем оптимизируемый советник, настраиваем все поля и, главное, на забудьте поставить галочку напротив поля «Оптимизация». Запускаем тестер и ждем.
Тестер оптимизировал параметры для советника, в моем случае на это ушло чуть больше 30 минут. Давайте смотреть что из этого вышло.
Перейдите во вкладку «Результаты оптимизации», здесь представлена подробная информация о все проходах. Нажимая на название столбцов, можно отсортировать по нужному показателю.
Найдите в списке приемлемы для вас вариант. Справой стороны есть колонка «Входные параметры». Это те параметры, при которых советник совершил подходящий для вас результат. Чтобы не переписывать в ручную каждый параметр, достаточно нажать на строчку правой кнопкой мыши и выбрать «Установить входные параметры». Параметры будут скопированы в советник.
Теперь, можно перейти в «Настройки» → «Свойства эксперта» → «Входные параметры» и нажать кнопку «Сохранить». Выберите названия для сохранения полученных параметров и нажмите Ок, файл сохранится с расширением .set, который можно передать для использования на другом терминале с этим советником.
Для большей наглядности полученных результатов, предусмотрена вкладка «График оптимизации», в которой прямоугольники с более темным фоном, означают наилучший результат оптимизации советника.
Введите оптимизированные параметры во «Входные параметры» и запустите тестер стратегий, не меня установленной ранее даты. Согласитесь, бэк тест с новыми параметрами, выглядит получше.
Во время бэк тестирования, очень важно не переоптимизировать советник. В противном случае, можно получить очень красивый, растущий график на истории и камнем падающий график при реальной торговле. Ищите золотую середину.
С бэк тестом закончили, теперь переходим к форвард тесту.
Форвард тест советника
Во время бэк тестирования, в графе «Использовать дату до» мы ввели дату, на месяц раньше текущей. Для форвард теста, мы должны ввести в тестер стратегий не используемые ранее даты.
Как вы понимаете, делается это для того, что наш советник не был подстроен. Получается следующее, мы оптимизировали график за определенные даты, что бы не устанавливать его на реальный рынок и не проверять в живую, мы берем временной участок по которому оптимизация произведена не была и прогоняем советник на нем. Посмотрим на результат.
Форвард тест показал, что с оптимизированными параметрами, советник за последний месяц хорошенько слил бы наш депозит. Что делать? Варианта два: либо вновь оптимизировать и пытаться найти лучшие параметры, либо отказаться от советника и искать другой.
Надеюсь, прочитав эту статью, с оптимизацией советников вам все стало ясно. Процедура не самая сложная, но очень полезная. Оптимизация и последующие бэк и форвард тесты, сохранят ваши деньги и время.
В случае если результаты устраивают, переходите к тестированию советника. Удачной торговли.