Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Скорее сумма отклонений.
Как я вчера сам понял - нужно считать сумму отклонений по выборке и взять размах макс. значения суммы и минимального.
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
Не суммы, а разности. Пока считается сумма, нужно параллельно найти минимальную разность (минимальный размах) и максимальную разность (максимальный размах):
возьмите ценовой ряд
пока не вижу аналогии с формулами, никакой
на каждом баре делаем расчет 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, имеют место «тяжелые хвосты» в распределении переменных, антиперсистентные серии, т.е. отрицательная корреляция в изменении цен, розовый шум с частыми изменениями направления движения цен;