Манипуляция статистикой при подборе параметров индикатора

Статистика индикатора на истории и самообман

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

Небольшое отступление

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

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

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

Цитата по теме

Существуют три вида лжи: ложь, наглая ложь и статистика.

Бенджамин Дизраэли — английский государственный деятель

Что такое манипулция статистикой

Что имеется в виду под манипуляцией статистикой, если речь идет об индикаторах технического анализа? Предположим, трейдер выбирает какой-либо индикатор, например Moving Average, и анализирует потенциал доходности, который он мог бы получить, если бы торговал в прошлом на основании этого индикатора. Мысль сама по себе здравая. Этот процесс называется тестированием на исторических данных и он дает предварительное понимание того, насколько та или иная торговая концепция достойна внимания.

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

Поиск идеальных параметров индикатора Moving Average.

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

Например, перебираются все возможные периоды скользящих средних от небольшого до существенного периода (допустим, от 5 до 200), и определяются параметры индикатора, которые дают самые лучшие результаты. Этот процесс, когда на исторических данных выбираются те параметры индикатора, которые дают наилучшие значения доходности, называется «оптимизация».

Так в чем подвох?

Чем тестирование и оптимизация отличаются от манипуляции статистикой? Манипуляция статистикой начинается тогда, когда мы, найдя наилучшие значения периода индикатора (например, обнаружив, что с периодом 25 Moving Average дает хорошие сигналы в рамках отдельного периода истории, как показано выше на скриншоте 1), начинаем использовать данные значения индикатора для того, чтобы прогнозировать будущее движение цен на рынке.

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

Скриншот 2. Тестирование индикатора на истории

Скриншот 2. Тестирование индикатора на истории.

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

Например, мы можем взять движения рынка за 2013–2014 годы, и оптимизировать какую-нибудь торговую концепцию в рамках данного периода, выбрать оптимальные параметры данной торговой стратегии, и протестировать, насколько эти параметры работоспособны на будущих движениях рынка (например, на движениях рынка, которые имели место в 2015 году). Затем оптимизировать на 2015-2016 годах и тестировать на 2017 и так далее.

График доходности при тестировании и в реальной торговле

Скриншот 3. График доходности при тестировании индикатора на истории и в практической торговле.

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

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

Наглядный эксперимент №1

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

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

Оптимизация была проведена с 2012 по 2014 год. Тестер стратегии показал, с какими идеальными параметрами двух скользящих средних с 2012 по 2014 год на 4-часовом таймфрейме можно было получить наилучший результат. Процесс оптимизации занял примерно 18 минут, было проработано 54 набора параметров.

Тестировани и оптимизация торговой концепции в Метатрейдере

Скриншот 4. Тестирование и оптимизация торговой концепции в Метатрейдере.

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

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

Был выбран самый лучший по абсолютной доходности результат – $3135. Таким образом получены оптимальные параметры индикатора – два периода скользящих средних, которые генерировали этот финансовый результат.

Результаты тестирования торговой системы с наилучшими параметрами.

Скриншот 5. Результаты тестирования торговой системы с наилучшими параметрами.

На слайде выше мы видим результаты тестирования данного робота с параметрами, полученными в результате оптимизации на прошлых данных. График доходности выглядел бы примерно следующим образом. С $10 000 капитал вырос бы до $13 000.

Скриншот 6. Форвардное тестирование полученных в результате оптимизации параметров индикаторов для определения доходности при их использовании в 2014-2015 гг.

На скриншоте 6 мы видим форвардное тестирование. Это тестирование полученных в результате оптимизации параметров индикатора для определения доходности при их использовании в 2014-2015. То есть оптимизация, подборка идеальных параметров проводилась по данным предыдущих лет, а тестирование – на последующих данных.

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

Эксперимент №2

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

График доходности при использовании индикатора с заданным параметрами на истории.

Скриншот 7. График доходности при использовании индикатора с заданным параметрами на истории.

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

Форвардное тестирование параметров индикатора, полученных в результате оптимизации на предыдущем отрезке времени.

Скриншот 8. Форвардное тестирование параметров индикатора, полученных в результате оптимизации на предыдущем отрезке времени.

Как видно на скриншоте 8, в результате торговый счет снизился бы с $10 000 до $9 000. Это также классической оверфит*, подгон торговой стратегии под исторические данные, манипуляция статистикой, которая редко дает хорошие результаты.

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

Эксперимент №3

Следующий пример – это оптимизация, которая проводилась на 5-минутном таймфрейме с января по февраль 2015 г. Как и в предыдущих примерах, выберем идеальные в рамках этого отрезка графика параметры. Затем протестируем робот на отрезке, на котором проводилась оптимизация. График доходности выглядит впечатляющим:

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

Скриншот 9. Результаты торговли на истории при использовании идеальных параметров индикатора. Эксперимернт 3.

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

Манипуляция статистикой на примере мувингов.

Скриншот 10. График доходности на тестовом периоде, на котором определялись идеальные параметры индикатора (до жёлтой метки), и на последующем отрезке (после жёлтой метки).

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

Выводы

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

Share