Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Индекс вариации Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Пт Мар 16, 2012 12:31 pm Ответить с цитатой Вернуться к началу

Цитата:
В настоящее время наиболее популярными представителями фрактальных временных функций являются финансовые временные ряды.
Фрактальная структура этих рядов хорошо известна и, по словам Мандельброта, есть «переформулировка известной рыночной поговорки, что движения акций или валют вполне похожи, независимо от масштаба времени и цены. Наблюдатель не может сказать по внешнему виду графика, относятся ли данные к недельным, дневным или же часовым изменениям» [1].
Для определения фрактальной размерности обычно вычисляют показатель Херста [2]. Однако для надежного вычисления этого показателя требуется большой объем данных (~10^3), что слишком много по сравнению с продолжительностью торгуемых трендов.
Авторами [1] вводится новая фрактальная характеристика - индекс вариации (m), тесно связанного с обычной фрактальной размерностью.
В отличие от показателя Херста для определения индекса вариации требуется данных на два порядка меньше. Это приводит к возможности использовать его в качестве локальной характеристики, определяющей динамику ценового ряда. При этом случай m < 0.5 может быть интерпретирован как тренд, а случай m > 0.5 - как флэт.
Предлагаемый индикатор вычисляет индекс вариации на предшествующем интервале длины 2^n. Параметр n задается пользователем.

Общие правила применения индикатора следующие:

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

взято вот отсюда http://codebase.mql4.com/ru/4483
там есть код для метатрейдера, может кто нибудь сможет перевести его на АФЛ?
Мне кажется полезный индикатор должен получится Smile

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пт Мар 16, 2012 8:30 pm Ответить с цитатой Вернуться к началу

Выложу сегодня ближе к ночи. Когда то выдернул этот показатель из FRAMA, где он как раз используется. Ксать, как обычно бывает, результаты тестов не показали ничо особенного. Wink
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Сб Мар 17, 2012 4:30 am Ответить с цитатой Вернуться к началу

Есть такой вариант, правда он называется размерностью Хаусдорфа. Описалово такое:
Цитата:

важнейшая численная характеристика фракталов (размерность Хаусдорфа) изменяется от 1 (абсолютный тренд, прямая) до 2 (абсолютный флет, вся плоскость).
Размерность < 1.5 - считаем тренд. Если > 1.5 - флет. При 1.5 - случайное блуждание. Алгортим подсчета размерности (примерный)
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 Рассчитываем приблизительную размерность по формуле: D = 1 + (ln(A1+A2)-ln(A3))/ln(2)

Соответсвенно код:
Код:

HausdorfDimension =0;
periodStop = 16;                              //должен быть четным
stopFast = 6;//Optimize("Fast Period ", 6, 2, 10, 2);   // Быстрая ЕМА - нижняя граница для Frama
stopSlow = 36;//Optimize("Slow Period ", 20, 20, 50, 2);   // Медленная ЕМА - верхняя граница для Frama
function HDim(price, fr_period)      
{
   halfPeriod = fr_period/2;

   A3 = HHV(High, fr_period) - LLV(Low, fr_period);      // амплитуда колебаний на всем ряде

   HH = HHV(High, halfPeriod);
   LL = LLV(Low, halfPeriod);
   A1 = HH - LL;                                           // амплитуда колебаний на первой половине ряде

   HH = HHV(Ref(High, -halfPeriod), halfPeriod);
   LL = LLV(Ref(Low, -halfPeriod), halfPeriod);
   A2 = HH - LL;                                           // амплитуда колебаний на второй половине ряде

   Dimen = IIf( A1>0 AND A2>0 AND A3>0, 1 + (log(A1+A2) - log(A3))/log(2), 2);    //размерность Хаусдорфа - равна 2(абс флет), если торги уперлись в линию и цены вытянулись в линию
   A =  scFast*(scSlow/scFast)^(Dimen-1);
   HausdorfDimension = Dimen;   
}
HDim(C, 16);

Plot( HausdorfDimension , _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
Посмотреть профиль Отправить личное сообщение ICQ Number
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Пн Мар 19, 2012 3:06 pm Ответить с цитатой Вернуться к началу

Спасибо Smile
Код ругается на scFast и подобные, поменял на stopFast, вроде так и должно быть...
Но что картинка не впечатлила совсем Smile

Если это из фрама, то вы имеете в виду вот этот показатель?
Код:
Price = (H+L)/2;
N = Param( "N", 16, 2, 200, 2 ); // must be even
N3 = ( HHV( High, N ) - LLV( Low, N ) ) / N;
HH = HHV( High, N / 2 ) ;
LL = LLV( Low, N / 2 );
N1 = ( HH - LL ) / ( N / 2 );
HH = HHV( Ref( High, - N/2 ), N/2 );
LL = LLV( Ref( Low, - N/2 ), N/ 2 );
N2 = ( HH - LL ) / ( N / 2 );
Dimen = IIf( N1 > 0 AND N2 > 0 AND N3 > 0, ( log( N1+N2) - log( N3 ) )/log( 2 ), Null );
alpha = exp( -4.6 * (Dimen -1 ) );
alpha = Min( Max( alpha, 0.01 ), 1 ); // bound to 0.01...1 range


Самое печальное, что
Цитата:
Ксать, как обычно бывает, результаты тестов не показали ничо особенного.

хоть что то вообще есть рабочее? Устал уже копать Sad

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Мар 19, 2012 3:21 pm Ответить с цитатой Вернуться к началу

Ну да, показатель Dimen он и есть, что хотел тебе показать Smile Код просто переписал под себя для большей наглядности.
Вообще хз, есть ли что рабочее для определения состояния тренд/флет. Если бы был такой 100-пудовый индюк, то его смело можно было причислить к граалю. Если вдруг найдешь - дай знать! Smile А пока остается только работать с вероятностями, стопами и мани-менеджментом.
Посмотреть профиль Отправить личное сообщение ICQ Number
alexby



Зарегистрирован: 30.01.2012
Сообщения: 1

СообщениеДобавлено: Ср Мар 26, 2014 8:48 pm Ответить с цитатой Вернуться к началу

Вот здесь перевели
http://www.bot4sale.ru/forum/strategies/179-indeks-variatsii-tsenovogo-ryada.html#629


_SECTION_BEGIN("iVAR");

n = Param("n",5,3,15);
Sx = Sy = Sxx = Sxy = 0;

for (i=0; i<=n; i++)
{ nInterval = 2^(n-i);

//---- суммируем разницы максимальной и минимальной цен на интервале
Delta = 0;
for(k=0; k<2^i ; k++)
Delta += HHV(Ref(High,-nInterval*k),nInterval)- LLV(Ref(Low,-nInterval*k),nInterval);

//---- вычисляем координаты вариации в двойном логарифмическом масштабе
Xc = (n-i)*log(2);
Yc = log(Delta);

//---- накапливаем данные для нахождения коэффициентов линии регрессии с помощью МНК
Sx += Xc;
Sy += Yc;
Sxx += Xc*Xc;
Sxy += Xc*Yc;
}

ibuffer = -(Sx*Sy-(n+1)*Sxy)/(Sx*Sx-(n+1)*Sxx);
Plot(ibuffer,"iVar("+NumToStr(n,1,False)+")",IIf(ibuffer>0.5,colorRed,colorBlack),styleLine);
Plot(0.5,"",colorBlack);
_SECTION_END();
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen