Как я вчера сам понял - нужно считать сумму отклонений по выборке и взять размах макс. значения суммы и минимального.
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
double arrfX[] = {27.4, 80.3, ..., 45.5};
double fXAverage = GetAverage(arrfX);
double fMinSwing = DBL_MAX, fMaxSwing = 0.0; // Минимальный и максимальный размахиdouble fSwingSum = 0.0; // Накопленное отклонение рядаfor (int i = ArraySize(arrfX) - 1; i >= 0; --i)
{
double fSwing = arrfX[i] - fXAverage; // Тут, скорее всего, нужен fabs. Ведь речь об отклонении. Хотя в формулах не нашел точного указания на абсолютное значение
fMinSwing = fmin(fMinSwing, fSwing);
fMaxSwing = fmax(fMaxSwing, fSwing);
fSwingSum += fSwing;
}
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
Что то вообще ничего не понял. Судя по коду то что я и сказал. Считаем сумму разности значения от средней и берём максимальное и минимальное значение суммы за выборку.
Что то вообще ничего не понял. Судя по коду то что я и сказал. Считаем сумму разности значения от средней и берём максимальное и минимальное значение суммы за выборку.
У меня в коде берутся максимальные и минимальные значения разностей, а не сумм. Но, возможно, как указал выше Ренат, нужно брать максимальное и минимальное значение именно суммы. То есть вот так:
В данной статье обосновывается практическая значимость Гипотезы фрактального рынка на основе расчета показателя Херста. Основная цель данной статьи заключается в анализе методов прогнозирования будущих цен финансовых активов, основываясь на концепции фрактальной структуры рынка и долговременной памяти рыночных цен. Ключевые слова...
если 0 ≤ H < 0,5 – цены являются фракталами, подтверждается справедливость FMH, имеют место «тяжелые хвосты» в распределении переменных, антиперсистентные серии, т.е. отрицательная корреляция в изменении цен, розовый шум с частыми изменениями направления движения цен;
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Скорее сумма отклонений.
Как я вчера сам понял - нужно считать сумму отклонений по выборке и взять размах макс. значения суммы и минимального.
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
возьмите ценовой ряд
пока не вижу аналогии с формулами, никакой
на каждом баре делаем расчет Zu
и затем находим макс и мин Zu
затем размах
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
Что то вообще ничего не понял. Судя по коду то что я и сказал. Считаем сумму разности значения от средней и берём максимальное и минимальное значение суммы за выборку.
возьмите ценовой ряд
пока не вижу аналогии с формулами, никакой
на каждом баре делаем расчет Zu
и затем находим макс и мин Zu
затем размах
Кстати, тоже вариант. Но тогда нельзя считать суммы по ряду справа налево, как в моем коде. Потребуется расчет исключительно слева направо.
Что то вообще ничего не понял. Судя по коду то что я и сказал. Считаем сумму разности значения от средней и берём максимальное и минимальное значение суммы за выборку.
У меня в коде берутся максимальные и минимальные значения разностей, а не сумм. Но, возможно, как указал выше Ренат, нужно брать максимальное и минимальное значение именно суммы. То есть вот так:
счас смотрю, чо то не то я тут написал
счас сделаю функцию
самому интересно уже
;)
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+cl;
}
X=sum/((double)(indBars+1));
max=0;
min=2.0*cl;
sum=0;
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+(cl-X);
if(sum>max)max=sum;
if(sum<min)min=sum;
}
R=max-min;
У меня в коде берутся максимальные и минимальные значения разностей, а не сумм.
Раз в формуле есть знак суммы, то нужно брать разность макс / мин суммы , а не максимум и минимум отклонения от средней. Я понимаю так.
счас смотрю, чо то не то я тут написал
счас сделаю функцию
самому интересно уже
;)
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+cl;
}
X=sum/((double)(indBars+1));
max=0;
min=2.0*cl;
sum=0;
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+(cl-X);
if(sum>max)max=sum;
if(sum<min)min=sum;
}
R=max-min;
Да, логика такая.
вот нашел, подробно и с примером расчета
https://research-journal.org/economical/pokazatel-xersta-kak-mera-fraktalnoj-struktury-i-dolgosrochnoj-pamyati-finansovyx-rynkov/
double cl,cl0,X,R,S,H,sum,sum2,max,min;
sum=0;
indBars=Bars-1;
cl0=iClose(Symbol(),Period(),indBars);
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+(cl-cl0)/Point();
}
X=sum/((double)(indBars+1));
max=0;
min=2000000000000;
sum2=sum=0;
for(i=indBars; i>=0; i--)
{
cl=iClose(Symbol(),Period(),i);
sum=sum+(cl-cl0)/Point()-X;
sum2=sum2+((cl-cl0)/Point()-X)*((cl-cl0)/Point()-X);
if(sum>max)max=sum;
if(sum<min)min=sum;
}
S=sum2/((double)(indBars+1));
R=max-min;
H=MathLog(R/S)/MathLog(1.57*(double)(indBars+1));
Print("H=",H);
2021.08.20 14:09:53.433 EURUSD,M1: H=0.4461942200231319
если 0 ≤ H < 0,5 – цены являются фракталами, подтверждается справедливость FMH, имеют место «тяжелые хвосты» в распределении переменных, антиперсистентные серии, т.е. отрицательная корреляция в изменении цен, розовый шум с частыми изменениями направления движения цен;