От MA до FRAMA через EMA и фрактал

Фрактальная теория позволяет адаптировать скользящую среднюю под различные состояния рынка. На основе нового индикатора FRAMA можно строить успешные торговые стратегии

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

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

В настоящее время существует несколько вариантов средних с переменной длиной. Это, например, индикатор Тушара Чанда VIDYA и так называемая Kaufman AMA. Сейчас мы рассмотрим еще один вариант такой средней, опирающийся на исходную задачу — в трендах уменьшать период расчета, а во флэтах увеличивать. Дело в том, что существует математическая величина, позволяющая отличать тренд от флэта. Построенная на основе этой величины скользящая средняя называется фрактальной адаптивной скользящей средней, или FRAMA.

ИСТОРИЯ ОДНОЙ МАТЕМАТИЧЕСКОЙ ПАТОЛОГИИ

В конце XIX века большинству математиков казалось, что изобретенный к тому времени математический анализ совершенен и достаточен для всех реальных задач. Некоторые, тем не менее, были с этим не согласны. Они придумали массу удивительных контрпримеров (объектов, которые невозможно описать в рамках классического матанализа). То из отрезка конечной длины получалась бесконечная кривая, то функция была нигде не дифференцируема, то еще какая-нибудь математическая неприятность всплывала. Французский математик Шарль Эрмит объявил всю эту деятельность созданием «зоопарка монстров», не имеющих отношения к реальной жизни, а консервативное большинство сочло придумывание подобных объектов патологией, играми разума математиков, злоупотребляющих причудами.

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

их друг от друга. Величину назвали размерностью Хаусдорфа. Для привычных нам из школьного курса геометрии кривых и фигур эта размерность равна топологической размерности, то есть для обычной прямой или кривой линии размерность Хаусдорфа равна 1, а для плоской фигуры — 2. А вот для патологий размерность Хаусдорфа отличается от топологической, и, что совсем уже плохо, она дробная. Что такое, например, геометрический объект с размерностью Хаусдорфа, равной 1,26? Это что-то среднее между прямой и плоскостью — фигура, которая называется кривой Коха.

Не многие математики того времени могли спокойно воспринимать странные свойства «монстров». Их стыдливо задвинули в самый дальний угол математики, где они и пылились до середины 50-х годов XX века, когда, решая какую-то весьма практическую задачу для телефонной станции, на них наткнулся будущий основатель фрактальной геометрии Бенуа Мандельброт. «Монстры» показались ему вполне симпатичными — большинство из них напоминали бесконечную мозаику, повторяющую свою структуру на всех масштабах. Заметив, что такие объекты состоят из многих частей, каждая из которых примерно похожа на объект в целом, Бенуа придумал для них название — фракталы (от лат. fractus — «дробленый, разбитый, состоящий из частей»).

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

ФРАКТАЛЬНАЯ РАЗМЕРНОСТЬ ДВИЖЕНИЯ ЦЕН

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

Вычислить фрактальную размерность можно на основе ценовых данных. Если она оказывается меньше 1,5, то состояние цены — это тренд. В тренде выполняется свойство «положительной» памяти: если вчера цена выросла, то сегодня она скорее вырастет, чем упадет. Если фрактальная размерность графика больше 1,5, то у цены появляется «отрицательная» память: если вчера цена выросла, то сегодня она скорее упадет (трейдерам такие состояния рынка хорошо знакомы — это флэты, появляющиеся на графиках в виде «боковиков», треугольников и флагов). Есть еще одно состояние цены, при котором размерность близка к 1,5: это классическое состояние случайного блуждания, когда цена движется случайным образом, подобно броуновской частице. Так фрактальные математические «чудовища» обрели вполне респектабельное место обитания в виде трех различных состояний цены на бирже с сильно отличающимися свойствами.

Поведение графиков цены и фрактальной размерности, рассчитанной по 16 свечам (показана красной линией). Минимумы фрактальной размерности в области значений меньше 1,5 очень часто совпадают с моментами окончаний трендов, максимумы фрактальной размерности в области значений выше 1,5 часто совпадают с моментами окончаний флэтов. Это позволяет достаточно строго разделить график цены на участки разного ценового поведения

Сколько времени цена проводит в разных состояниях? Результаты исследований последних десяти лет показывают, что все сильно зависит от конкретного инструмента. Каждая акция, валюта или даже страновой рынок оказываются индивидуальными, у каждого есть свой собственный, неповторимый характер. Если усреднить показатели по большому количеству акций для разных рынков, то получится, что доля трендов от 20 до 40%, доля флэтов — от 10 до 30%, доля случайного блуждания — от 30 до 50%. При этом оказывается, что валюты, например, более подвержены флэтам, чем трендам, российский рынок более трендовый, чем американский, Сбербанк более трендовый, чем «Сургутнефтегаз» на дневном масштабе, а «Газпром» на недельном масштабе гораздо чаще в случайном блуждании, чем он же на десятиминутных данных.

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

  1. Выбираем длину Т, по которой мы будем рассчитывать размерность. Т обязательно должно быть четным.
  2. Разбиваем исходный ряд длиной Т на две равных части от 1 до Т/2 и от Т/2 + 1 до Т.
  3. Рассчитываем амплитуду колебаний цен на первой половине ряда А1 = (Н1 – L1), где Н1 — максимум на первой половине ряда, а L1 — минимум.
  4. Рассчитываем амплитуду колебаний цен на второй половине ряда А2 = (Н2 – L2), где Н2 — максимум на второй половине ряда, а L2 — минимум.
  5. Рассчитываем амплитуду колебаний цен на всем ряде от 1 до Т. А3 = (Н3 – L3), где Н3 — максимум на всем ряде, а L3 — минимум.
  6. Рассчитываем приблизительную размерность по формуле: .

ПОСТРОЕНИЕ ИНДИКАТОРА FRAMA

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

где EMA (i) — текущее значение средней,  Close (i) — текущее значение цены закрытия,  EMA (i-1) — предыдущее значение скользящей средней,  α — параметр, который связан с периодом расчета Т соотношением α=2/(T+1).

Наша задача связать параметр α (и, соответственно, период расчета) со значением фрактальной размерности D следующим образом: если D маленькое (около 1), то период Т должен быть маленьким, например, 2 или 3; если D большое, то период должен быть большим, например, 100, 300 или даже 500. Эту связь α и D можно ввести множеством способов. Используем модифицированную идею знаменитого технического аналитика Джона Эйлерса, который предложил связь через экспоненциальную функцию. В варианте Эйлерса , что предполагает период усреднения, равный одной свече при D = 1, и период усреднения, равный 200 свечам при D = 2. Мы же хотим иметь возможность выбирать периоды расчета при разных значениях D. При D = 1 период расчета должен быть Т1, а при D = 2 — Т2. Понятно, что Т1 < T2 и Т1 имеет смысл выбирать от 1 до 10, а Т2 — от 100 до нескольких сотен. Не вдаваясь в промежуточные вычисления, запишем сразу конечную формулу связи2:

Определенное по этой формуле значение  необходимо подставлять в формулу расчета экспоненциальной средней3. Конечная «трехэтажная» формула расчета индикатора FRAMA в зависимости от значений D, T1 и T2 может оказаться полезной для создания торговых систем:

Как выглядит индикатор FRAMA с параметрами Т1 = 2, Т2 = 100 и длиной расчета фрактальной размерности Т = 4, показано на графике 2. В данном случае специально выбран достаточно сложный для большинства скользящих средних период российского индекса ММВБ, который состоит из очень коротких трендовых участков, прерываемых многочисленными флэтами. Как видно на графике, к поставленной цели мы приблизились. Полученная средняя оказывается достаточно гладкой и не слишком часто меняет направление во флэтах. С другой стороны, на начало роста или падения цен индикатор реагирует достаточно быстро.

Индекс ММВБ с 5 октября 2009-го по 7 июля 2010 года и индикатор FRAMA (красная линия) c параметрами Т1 = 2, Т2 = 100, длина расчета фрактальной размерности Т = 4

Индикатор можно использовать как для визуального анализа, так и для создания торговых алгоритмов. Промоделируем один из простейших вариантов такого алгоритма: будем условно покупать индекс ММВБ в случае, если FRAMA развернулась вверх, и продавать, если, наоборот, она указывает вниз. Кривая доходности (в какую сумму превратится один вложенный рубль) такой простой системы по сравнению с системой «купил и держи» показана на графике 3. Наш примитивный алгоритм вполне достойно выдерживает проверку. За время кризиса 2008 года он теряет чуть больше 20%, а за весь период тестирования обгоняет консервативную стратегию более чем в два раза.

Синяя линия — кривая доходности простейшего торгового алгоритма, использующего индикатор FRAMA с параметрами T1 = 3, T2 = 500 и период расчета фрактальной размерности Т = 4. Красная линия — кривая доходности системы «купил и держи». Ценовые данные — дневные значения индекса ММВБ с 29 ноября 2002-го по 18 июня 2010 года.

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

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

2 Подробности расчета представляют собой отдельную интересную задачу для любопытных и требуют навыков алгебры средней школы. Желающие разобраться в этой задаче могут обратиться к автору через редакцию или по электронному адресу starchenko@intrast.ru.

3 Файл в формате Microsoft Excel с расчетом индикатора FRAMA можно получить по этой ссылке.

Автор: Николай Старченко, управляющий активами ФК «Интраст»

Опубликовано: журнал D-Штрих №15/23 августа 2010 года

 
Статья прочитана 8696 раз(a).
 

Статьи из рубрики:

 

комментариев 14

  1. Отличная статья!

    У меня вопрос. Насколько я знаю, определение фрактальной размерности некоего множества таково: D=-lim(ln(N(e))/ln(e)) при e стремящимся к нулю, N(e)—количество сфер радиуса e, необходимое для полного закрытия множества. Всвязи с этим вопрос: как ваша формула f1 (D=1+ln…/ln2) соотносится с этим определением?

    С уважением,
    Анатолий Уткин

  2. Здравствуйте, Анатолий!

    Вы привели определение размерности Хаусдорфа. Из него можно получить и фрактальную размерность, но не во всех случаях. На практике, для временных рядов используют численные показатели, например показатель Херста. Можно показать, что зависимость средней амплитуды колебаний временного ряда от масштаба наблюдения связана с размерностью следующим образом А~t^(2-D)
    Формула, описанная в статье, дает приближение для размерности на основе этой формулы используя только большие масштабы (весь ряд и его половины). В этом случае можно получить достаточно простую арифметическую формулу, которая и приведена в статье.

  3. А почему в Excel формула D=1+ln…/ln2 рассчитывается, как D=ln…/ln2 (единица не прибавляется)?


  4. Денис:

    А почему в Excel формула D=1+ln…/ln2 рассчитывается, как D=ln…/ln2 (единица не прибавляется)?

    🙂 Привести к общему знаменателю,
    и формула ln(x) + ln(y) = ln(xy) в помощь….

  5. Николай, думаю, можно ещё немножко упростить формулу определения фрактальной размерности движения цен:
    D = (А1 + А2) / А3
    Корреляция результатов этой формулы и приведенной в статье более 99%.

  6. Спасибо за интереснейшую статью!! Николай, я был бы очень благодарен за формулу FRAMA для MetaStock, сам я пока не умею. Заранее спасибо.


  7. Макиенко Дмитрий:

    Николай, думаю, можно ещё немножко упростить формулу определения фрактальной размерности движения цен:
    D = (А1 + А2) / А3
    Корреляция результатов этой формулы и приведенной в статье более 99%.

    Корреляция, действительно, будет, но можно найти и точную формулу связи этой величины с D. Если обозначить Z = (А1 + А2) / А3, то Z=2^(D-2). При этом надо понимать, что предложенное в статье D есть только некоторое приближенное значение. Можно считать D более точно.


  8. Салов Илья:

    Спасибо за интереснейшую статью!! Николай, я был бы очень благодарен за формулу FRAMA для MetaStock, сам я пока не умею. Заранее спасибо.

    Увы, я не пользуюсь метастоком уже несколько лет, все забыл… Думаю, что любой нормальный пользователь метастока запишет этот индикатор минут за 10-15. Надо просто поискать такого пользователя… 🙂

  9. Спасибо за интереснейшую статью!! Николай, я был бы очень благодарен за формулу FRAMA для MetaStock, сам я пока не умею. Заранее спасибо.

    Вышлите запрос на umoz@yandex.ru. Оправлю код для Метоса

  10. Если шортить и покупать с маржей результаты заоблачные.

  11. Недавно прочел эти статьи
    http://stantrade.narod.ru/EMAVFS.pdf
    http://stantrade.narod.ru/EMAVFS2.pdf
    Подход другой, а визуально мувинги очень похожие получаются. Может кому полезно будет.

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

  13. А где в тексте речь о показателе Херста?

Здесь вы можете написать отзыв

This blog is kept spam free by WP-SpamFree.

Архивы

Коллеги

Читать Algoritmus

Контакты