RT Syndicate - шаблон joomla Создание сайтов

Фрактальная размерность в поведении акций

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


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

 


В настоящее время существует несколько вариантов адаптивных (динамических) скользящих средних. Например, индикатор VIDYA Тушара Шанде, где используется осциллятор Chande Momentum Oscillator (CMO), который представляет собой отношение между суммой положительных приращений цен и суммой отрицательных приращений цен за определенный период. Или предложенный Пери Кауфманом индикатор Kaufman AMA (основанный на расчёте соотношения сигнал/шум, где сигнал это абсолютное значение разности между текущей ценой и ценой в начале периода вычислений, а шум это сумма абсолютных значений ежедневных приращений цены в течение периода вычислений; является шумовой составляющей).

 


Ещё один способ нахождения тренда — это использование теории фракталов. Одним из первооткрывателей фрактальной природы стал англичанин, геолог Гарольд Эдвин Хёрст, внесший огромный вклад в будущую фрактальную теорию. Работая над задачей предсказания величины разлива реки Нил, Хёрст обнаружил, что размах между самым высоким и самым низким разливом Нила растёт быстрее, чем если бы величина разлива имела распределение Гаусса. Он понял, что значение имеет не только масштаб разливов, но и их последовательность. Изучив в общеё сложности 51 природное явление и проанализировав около 6000 годовых измерений, Хёрст обнаружил, что весь окружающий мир, включая Нил, подчиняется одной формуле — размах расширяется пропорционально не корню квадратному (как при подбрасывании монеты), а пропорционально количеству наблюдений в степени 3/4 (0,73) [2]. В 1960-х, будущий основатель фрактальной геометрии, французский математик Бенуа Мандельброт обнаружил ту же «нильскую» структуру во многих других сферах, самой необычной оказались колебания котировок акций. Мандельброт показал, что поведение цен на бирже можно описать методами фрактальной геометрии.


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

 

Формулы для расчётов

Приблизительное значение размерности Хаусдорфа можно вычислить по простой методике:
•    Выбираем длину ряда и разбиваем ряд на две равные части (длина должна быть чётной)
•    Рассчитываем амплитуду колебаний цен на первой половине ряда: A1=H1-L1 (H1 и L1 – максимум и минимум на первой половине ряда); и на второй половине ряда: A2=H2-L2.
•    Рассчитываем амплитуду колебаний цен на всём ряде: A3=H-L
•    Вычисляем приблизительную размерность по формуле:

 

frama-01

Где α связана с периодом:  α=2/(T+1).

 

Для построения адаптивного скользящего среднего удобно взять экспоненциальное скользящее среднее:

frama-03

 

Наша задача — связать α с размерностью Хаусдорфа: если размерность D маленькая (тренд), то период Т должен быть маленький (1…10), если D большая (флэт), то T должен быть большой (100…500). Можно придумать множество способов введения этой связи. Например, популярный вариант Джона Эйлерса: frama-04  (при D=1 период  усреднения T1 равен одному бару, при D=2 период усреднения T2 равен 200 барам). Для возможности выбирать периоды Т1 и Т2 можно воспользоваться другой формулой связи, предложенной в [1]:

frama-05

 

В итоге, получаем формулу для фрактального адаптивного скользящего среднего:

frama-02

 

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

Создание и тестирование торговой системы проводилось в пакете MetaStock 11.  
С помощью встроенного скриптового языка создана пользовательская функция FRAMA (на основе формулы 4), с возможностью задания периода расчёта фрактальной размерности и граничных периодов усреднения скользящих средних.

 

D:=Input("Period of Fractal AMA (even 2!)",4,60,16); 
T1:=Input("Period T1",1,10,5); 
T2:=Input("Period T2",100,600,300); 
Pr:=(H+L)/2; 
A3:=(HHV(H,D)-LLV(L,D))/D;
A2:=(HHV(H,D/2)-LLV(L,D/2))/(D/2);
A1:=(Ref(HHV(H,D/2),-D/2)-Ref(LLV(L,D/2),-D/2))/(D/2); 
Dimen:=If(A1>0 AND A2>0 AND A3>0, (Log(A1+A2)-Log(A3))/Log(2),0); 
alpha:=(2/(T1+1))*Exp((Dimen-1)*Log((T1+1)/(T2+1)));; 
SC:=If(alpha<.01, 01="" if="" alpha="">1, 1, alpha)); FRAMA:=If(Cum(1)<=2*D, Pr, Pr*SC+PREV*(1-SC)); FRAMA;

 


Накладываем индикатор на график цены обыкновенных акций Сбербанка  на ММВБ. Получаем красивую картинку (см. рис.1).


 

frama-06

Рис.1. Фрагмент построенного индикатора FRAMA. D=4, T1=4, T2=100.


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

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

Визуальным методом для использования выбраны два FRAMA с параметрами (4, 4, 100) и  (4, 1, 100).
Изначально на реальных данных была апробирована следующая система:

Buy Order:

FmlVar("_dlrm_FRAMA2_1","FRAMA2")>FmlVar("_dlrm_FRAMA2_4","FRAMA2")
{Покупаем, когда быстрое FRAMA больше, чем медленное}

 

Sell Order:

FmlVar("_dlrm_FRAMA2_1","FRAMA2")>FmlVar("_dlrm_FRAMA2_4","FRAMA2")
{Продаём, когда быстрое FRAMA меньше, чем медленное}

 

 

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

Buy Order:

FmlVar("_dlrm_FRAMA2_1","FRAMA2")>FmlVar("_dlrm_FRAMA2_4","FRAMA2")
AND
FmlVar("_dlrm_FRAMA2_1","FRAMA2")-FmlVar("_dlrm_FRAMA2_4","FRAMA2")>0.004*Ref((C+O)/2,-1)

 

Sell Order:

FmlVar("_dlrm_FRAMA2_1","FRAMA2")0.004*Ref((C+O)/2,-1)

 

Sell  Short Order:

FmlVar("_dlrm_FRAMA2_1","FRAMA2")0.004*Ref((C+O)/2,-1) AND Mov(C, 14, E)

 

 

Построенная торговая система, отлаженная на данных с 10.01.2005 по 10.01.2009, была протестирована на данных с 10.01.2009 по 11.11.2010, а также на всём периоде: с 10.01.2005 по 11.11.2010.
Параметры тестов:
•    Initial Equity 10000;
•    Default size: 100 units;
•    Использование Long и Short позиций;
•    Margin: 12%;
•    Long Initial 100%; Long Mainteance 0;
•    Short Initial 200%; Long Mainteance 101%;
•    Comissions 0,1%;
•    Delay order opening 1 bar;
•    Slippage 0,1%.

На отрезке с 10.01.2005 по 10.01.2010 получены следующие результаты:

                                                                                                                                                                             Табл.1

Доходность

101.69 %

Средняя годовая доходность

25.60 %

 

 

Доходность Buy & Hold

8.91 %

Средняя годовая доходность B&H

2.24 %

 

 

Кол-во сделок

25

 

Эффективность торговли

9.21 %

 

(Средяя прибыль)/(Средние потери)

2.37

 

 

 

Buy & Hold Index

1041.83 %

 

Profit/Loss Index

71.85 %

 

Reward/Risk Index

99.81 %

 

 

frama-07

Рис.2. Доходность системы с 10.01.2005 по 10.01.2009


При использовании 100%-реинвестирования:

Табл.2

Доходность

262.38 %

Средняя годовая доходность

66.05 %

 

 

Доходность Buy & Hold

63.50 %

Средняя годовая доходность B&H

15.98 %

 

Кол-во сделок

25

Эффективность торговли

9.34 %

(Средяя прибыль)/(Средние потери)

1.52

 

Buy & Hold Index

313.21 %

Profit/Loss Index

56.03 %

Reward/Risk Index

99.92 %

 


 frama-08

 

Рис.3. Доходность системы с 10.01.2005 по 10.01.2009 со 100%-реинвестированием


Стоит отметить, что в ходе оптимизации, однако,  не была устранена просадка доходности при 100%-реинвестировании (на рис.3 обведена «облаком»). Но в целом система показала достаточно хороший результат по доходности и риску, что не удивительно, т.к. оптимизация проводилась как раз на данном отрезке времени.

 

Интереснее посмотреть, как повела бы себя данная система, если бы она была запущена после отладки на рынок — это можно сделать, прогнав систему на отрезке с 10.01.2009 по 11.11.2010.

                                                                                                         Табл.3

Доходность

60.16 %

Средняя годовая доходность

32.82 %

 

 

Доходность Buy & Hold

78.06 %

Средняя годовая доходность B&H

42.59 %

 

Кол-во сделок

13

Эффективность торговли

6.88 %

(Средяя прибыль)/(Средние потери)

2.63

 

Buy & Hold Index

-22.93 %

Profit/Loss Index

67.45 %

Reward/Risk Index

95.65 %


frama-09

Рис.4. Доходность системы с 10.01.2009 по 11.11.2010


При использовании 100%-реинвестирования:

                                                                                                          Табл.4

Доходность

317.13 %

Средняя годовая доходность

173.02 %

 

 

Доходность Buy & Hold

334.08 %

Средняя годовая доходность B&H

182.27 %

 

Кол-во сделок

12

Эффективность торговли

13.89 %

(Средяя прибыль)/(Средние потери)

3.27

 

Buy & Hold Index

-5.07 %

Profit/Loss Index

78.17 %

Reward/Risk Index

93.39 %

 

 

frama-10

Рис.5. Доходность системы с 10.01.2009 по 11.11.2010 со 100%-реинвестированием


Из приведённых выше результатов можно видеть, что система неплохо показала себя на реальных данных. Не смотря на то, что система на данном временном отрезке по прибыльности проиграла стратегии Buy & Hold, получился достаточно хороший результат, и в режиме 100%-реинвестирования эффективность торговли оказалась даже выше, чем на отладочном временном периоде.

 

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

  • Установление и устранение причин больших просадок на графике доходности (см. рис.3, рис.4, рис.5);
  • Использование более продвинутого аналитического программного обеспечения (например, Wealth-Lab), позволяющего проводить автоматическую параметрическую оптимизацию пользовательских функций;
    • Оптимизация по периодам FRAMA;
    • Оптимизация по величине финансовых рычагов;
    • Оптимизация по величине открываемой позиции;

 

Литература

1.    Старченко Н., От MA до FRAMA через EMA и фрактал / D-Штрих №15 2010
2.    Beniot B. Mandelbrot, Richard L. Hudson, The (mis)Behavior of Markets / 2004
3.    Копрыкин К. Динамические скользящие средние / Современный трейдинг, Сентябрь 2001

 

©2010 Иван Самков