Изучаем рынок: какой индикатор тренда самый лучший?

dreamstime_xs_32301422

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

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

Интересовать нас будут точки смены тенденции. Для ЗигЗагов из прошлой статьи это точки, в которых зарождается новое колено. Для канальных индикаторов – момент пробития канала. Ну и так далее. Очевидно, разница между ценами двух последовательных точек смены тенденции – это наша прибыль (убыток) в сделке. Если мы просуммируем разницы цен всех точек смен тенденции за какой-то период (не провравшись при этом в знаке – где-то это будет профит, а где-то убыток), мы получим наш общий профит (убыток) — при условии нулевого спреда и отсутствии комиссии и проскальзывания. Теперь разделим наш общий  профит (убыток) на количество колен (== сделок) и получим критерий, который по сути является матожиданием сделки для нашей переворотной стратегии. В этой статье мы будем использовать этот критерий для сравнения различных индикаторов между собой.

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

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

Теперь к делу. Выбираем пару EURUSD, период времени 2009.01.01 — 2015.06.01, минимальное количество сделок 1000. В качестве испытуемых я взял хорошо известные индикаторы: Envelopes, Bollinger Bands, MACD (в виде RAVI), Hi-Low N Bars (пробой hi или low за N баров), Keltner Channel, ADX, ZigZagPips (стандартный однопараметрический ЗигЗаг). Для MACD требуется некоторое пояснение, т.к. переворотная система на ней так сразу не строится. Поэтому я взял индикатор RAVI (Range Action Verification Index), который есть по сути нормированная главная линия MACD (разница между двумя средними).

Пишем простенький советник который выдает в тестере наш критерий, т.е.,  матожидание (детали ниже), прогоняем оптимизацию по всем параметрам индикатора в тестере, получаем результаты. Для случая Bollinger Bands, скажем, все выглядит примерно так. Отсортированные результаты с положительным мат ожиданием

bb eurusd m15 plus

Отсортированные результаты с отрицательным мат ожиданием

bb eurusd m15 minus

Количество положительных и отрицательных результатов сравнимое (отрицательных слегка больше). Мы видим, что индикатор не имеет выраженного характера (тренд/контр-тренд). В то же время, он хорошо подгоняется под историю. Экстремальные значения +4.7 и -5.8 соответствуют прибыльности стратегии даже с учетом потерь на спред и комиссию.

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

fig3

Результаты получаются достаточно любопытные. Большинство индикаторов демонстрируют трендовый или нейтральный характер. Отчасти это должно быть связано с общим трендовым характером выбранной валютной пары EURUSD (что уже отмечалось в предыдущей статье).

Наилучшим трендовым индикатором из числа исследованных оказывается Keltner Channel. У него найдено как максимальное значение положительного матожидания так и ярко выраженный трендовый характер (количество положительных прогонов много больше количества отрицательных прогонов).   Другими выражено трендовыми индикаторами оказываются Hi-Low N Bars и ZigZagPips. Однако у них максимальное значение положительного матожидания уступает каналу Кельтнера.

Единственным выраженным контр-трендовым индикатором из числа исследованных оказался – как ни удивительно – ADX (Average Directional Index). Который всеми обычно рассматривается как индикатор тренда. Мы же видим эффект, прямо противоположный ожидаемому – определение тренда у этого индикатора настолько запаздывает, что когда тренд определился индикатором, более выигрышным оказывается торговать против тренда а не по нему.

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

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

Первым шагом является определение тренда с помощью выбранного индикатора. Для Bollinger Bands это выглядит так:

fig4

На втором шаге мы строим ЗигЗаг согласно выбранному определению тренда:

fig5

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

fig6

И на последнем шаге мы возвращаем через OnTester единственный результат, который нас в данный момент интересует, матожидание сделки:

fig7

Ну вот и все. Конструктивная критика и предложения по улучшению приветствуются 🙂 .

 

Автор: Владимир aka loopsider
22.07.2015

Метки: , , ,
Опубликовано в Публикации, Секреты мастерства




Советники ARGOLab
Последние статьи

Комментарии
E-Mail:
Форекс рейтинг . Форекс каталог