Как выжать больше из оптимизации торгового алгоритма

Время на чтение: 7 минут

Как выжать больше из торгового алгоритма

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

Содержание

Кому будет полезен данный материал

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

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

Вторую часть посвятим методу, который, надеемся, позволит трейдеру-разработчику алгоритмов ответить на целый ряд вопросов: «Как найти «горячую» настройку робота?» «Когда ее запустить?» «А когда остановить?». Сделаем предостережение — не стоит рассчитывать на безотказную работу данного метода, применяйте его как дополнительный элемент в вашем инструментарии.

Как провести оптимизацию в домашних условиях

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

Испытаем стратегию Sudden Death (отсюда) на валютных парах EUR/USD, USD/JPY на исторических котировках с 05.01.2015 по 07.06.2019, всего четыре с половиной года.

На какой платформе лучше оптимизировать стратегии

Есть выбор платформ для оптимизации. Чаще используют Metatrader 4/5 либо платформу JForex от Дукаскопи. Мы проводили тесты в JForex. Ее главное отличие от МТ5 — возможность сохранить результаты единичных бэктестов и подробно проанализировать журналы сделок из них.

Как оптимизировать ТС
Для четырех параметров заданы диапазоны и шаг. Выходит 225 конфигураций.

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

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

150 минут видео о создании торговых роботов доступно бесплатно и без регистрации

Не упустите возможность автоматизировать ваши торговые стратегии для финансовых рынков.

Что выдал перебор настроек робота

По евро/доллару из 225-ти комбинаций топовая дает 9.1% годовых. Распределение всех годовых доходностей на изображении.

Распределение доходностей
Распределение доходностей стратегии по EUR/USD.

По доллару/иене лучшая настройка робота за 4.5 года выдала 15.2% годовых дохода.

Распределение доходностей
Распределение доходностей стратегии по USD/JPY.

Риск на сделку по всем бэктестам равнялся 1%, то есть в случае стоп-лосса депозит теряет 1%.

Топовые комбинации по выбранным парам проявили себя так:

Топовые комбинации
Лучшая кривая доходности по EUR/USD.
Топовые комбинации
Лучшая кривая доходности по USD/JPY.

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

Метод повышения доходности (пока на истории)

К вопросу о повышении доходности можно подойти «в лоб» и перебрать все возможные настройки робота, посмотреть на их результативность. Так мы только что и сделали.

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

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

Период обучения и применения робота

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

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

В методе «форвардного анализа» (walk forward analysis — WFA) используются 2 набора. Цель у этих подходов одна — избежать подгонки робота под исторические данные.

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

Оптимизация тренировочного и тестового периода

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

Перебор периода обучения (learn) робота и его применения (test) по EUR/USD. Обе шкалы в неделях.

Рассмотрим изображение. Здесь показано, какую доходность мы получим за 4.5 года, если перепробуем период обучения робота от 4 до 52 недель с шагом 4, а также период его применения с 2 до 20 недель с шагом 2.

Например, лучший вариант — это «учить» робота 32 недели, а применять 20. Так, выбирая самую доходную настройку из 225-ти, мы на истории получили 5.1% годовых. Что не лучше топовой настройки, давшей 9%.

Однако вся таблица оказалась красной, с такими соседями применять данный метод не стоит. Даже желтая подсветка, которая указывает на центр самого прибыльного участка из 9-ти клеток, не помогает. Средняя доходность этого участка -4% (см. верхний левый угол изображения).

Переходим к иене.

Перебор периода обучения (learn) робота и его применения (test) по USD/JPY. Обе шкалы в неделях.

Пик в таблице — это 28 на 16 недель. То есть, если каждый 28 недель выбирать лучшую из 225-ти настроек, а затем применять ее 16 недель, то получим 13.5% годовых, что, кстати, недотягивает до 15.2% годовых от топовой настройки за весь период.

Центр лучшего участка из 9-ти клеток приходится на 32х16 недель. Средняя годовая доходность при этом 5.1% (см. в верхнем левом углу изображения).

Топовые конфигурации не всегда работают — как это исправить?

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

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

Но, поскольку работа оптимизатора очень скучная, иногда хочется развлечься и испытать какой-нибудь идиотский подход. Например, ставить на САМУЮ ХУДШУЮ настройку робота! Раз топы не хотят работать, может, аутсайдеры на что-то способны.

Проверим, что будет после перебора величин тренировочного и тестового набора.

Перебор периодов обучения и применения, ставка на худшую настройку EUR/USD.

По евро эксперимент явно не удался. Ставки на топов оказались выгоднее ставок на аутсайдеров. Лучший результат -21.2%, а средняя клетка в лучшем регионе из 9-ти клеток дает -16.2%.

Теперь иена.

Перебор периодов обучения и применения и ставка на худшую настройку, USD/JPY.

Та-дам! Топовая ячейка выдала 49.6% годовых, которые стали возможными на 36 неделях обучения и 2 применения. А лучшая область из 9-ти ячеек имеет среднее значение 36.3%.

Отобразим доходность за каждые 4 недели применения робота.

Доходность по 4 недели с октября 2015 по июнь 2019, USD/JPY, ставка на худшую настройку робота из 225-ти.

Предварительное заключение

Ни один уважающий себя трейдер-управляющий не скажет своему инвестору, что он ставит на ХУДШИЕ настройки своего робота, это не к лицу и нелогично) Однако этот эксперимент показал, что оптимизация — это не только поиск топовых настроек робота.

Материалы

С нас — 28 бесплатных уроков и 76 минут видео о трейдинге, с вас — подписка на статьи. Идет? Тогда переходите по кнопке ниже, нас уже 2139 человек

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

Поделиться статьей

Поделиться в facebook
Поделиться в vk
Поделиться в twitter
Поделиться в telegram

С радостью ответим на ваши комментарии

Читайте также

Scroll Up
Поделиться в facebook
Поделиться в vk
Поделиться в twitter
Поделиться в telegram