Дивергенции на MACD: была — не была?
Ответить Ответы и комментарииФорум
Отправлено C1am, 15:27:28 21/06/2002:

 
Для решения этого вопроса можно использовать
 
 
Осредненный MACD.
 
Идея индикатора:
 
Расчет среднего значениия MACD по данным OHLC и нескольким периодам.
 
Метод:
 
Расчет среднего (Js) всевозможных комбинаций изменения MACD
 
по Op-Открытие H-максимум L-минимум C-закрытие. Например, для следующих комбинаций (20 точек):
 
 
X(1) = Mov(Op,10,e)-Mov(Op,26,e)
 
X(2) = Mov(Op,11,e)-Mov(Op,26,e)
 
X(3) = Mov(Op,12,e)-Mov(Op,26,e)
 
X(4) = Mov(Op,13,e)-Mov(Op,26,e)
 
X(5) = Mov(Op,14,e)-Mov(Op,26,e)
 
X(6) = Mov(H,10,e)-Mov(H,26,e)
 
X(7) = Mov(H,11,e)-Mov(H,26,e)
 
X(8 )= Mov(H,12,e)-Mov(H,26,e)
 
X(9) = Mov(H,13,e)-Mov(H,26,e)
 
X(10) = Mov(H,14,e)-Mov(H,26,e)
 
X(11) = Mov(L,10,e)-Mov(L,26,e)
 
X(12) = Mov(L,11,e)-Mov(L,26,e)
 
X(13) = Mov(L,12,e)-Mov(L,26,e)
 
X(14) = Mov(L,13,e)-Mov(L,26,e)
 
X(15) = Mov(L,14,e)-Mov(L,26,e)
 
X(16) = Mov(C,10,e)-Mov(C,26,e)
 
X(17) = Mov(C,11,e)-Mov(C,26,e)
 
X(1J = Mov(C,12,e)-Mov(C,26,e)
 
X(19) = Mov(C,13,e)-Mov(C,26,e)
 
X(20) = Mov(C,14,e)-Mov(C,26,e)
 
 
На появление дивергенции в большей степени влияет поведение более короткой скользящей средней, поэтому варьируется именно она.
 
 
Далее, расчет ошибки оценки по 20 точкам
 
mjs=Sqrt(Cумма((X(i)-Js)^2)/19/20)
 
 
Оценка средней ошибки оценки mja как среднего от mjs по числу vs-точек (vs-параметр)
 
mja=Cреднее(mjs,vs);
 
 
Оценка доверительного интервала с помощью квантиля dv (dv-параметр)
 
Js-dv*mja < Js < Js+dv*mja
 
 
Интерпретация:
 
Аналогично MACD. Появление дивергенций на индикаторе MACD должно подтвеждаться  непересечением доверительных интервалов.
 
 
Изменяемые по желанию пользователя параметры:
 
 
p1:=Input("Использовать Log:1",0,1,1);
 
vs:=Input("Число точек для расчета дисперсии",1,9999,20);
 
dv:=Input("3начение квантиля",0,99,3.5);
 
 
{OcMacd-20}
 
p1:=Input("Log:1",0,1,1);
 
vs:=Input("Число точек для расчета дисперсии",1,9999,30);
 
dv:=Input("3начение квантиля",0,10,3.5);
 
b:=If(p1>0,Log(O),O);
 
j1:=Mov(b,10,E)+Mov(b,11,E)+Mov(b,12,E)+Mov(b,13,E)+Mov(b,14,E)-5*Mov(b,26,E);
 
b:=If(p1>0,Log(H),H);
 
j2:=Mov(b,10,E)+Mov(b,11,E)+Mov(b,12,E)+Mov(b,13,E)+Mov(b,14,E)-5*Mov(b,26,E);
 
b:=If(p1>0,Log(L),L);
 
j3:=Mov(b,10,E)+Mov(b,11,E)+Mov(b,12,E)+Mov(b,13,E)+Mov(b,14,E)-5*Mov(b,26,E);
 
b:=If(p1>0,Log(C),C);
 
j4:=Mov(b,10,E)+Mov(b,11,E)+Mov(b,12,E)+Mov(b,13,E)+Mov(b,14,E)-5*Mov(b,26,E);
 
js:=(j1+j2+j3+j4)/20;
 
 
b:=If(p1>0,Log(O),O);
 
jsp:=js+Mov(b,26,E);
 
mj1:=Pwr(Mov(b,10,E)-jsp,2)+Pwr(Mov(b,11,E)-jsp,2)+Pwr(Mov(b,12,E)-jsp,2)+Pwr(Mov(b,13,E)-jsp,2)+Pwr(Mov(b,14,E)-jsp,2);
 
 
b:=If(p1>0,Log(H),H);
 
jsp:=js+Mov(b,26,E);
 
mj2:=Pwr(Mov(b,10,E)-jsp,2)+Pwr(Mov(b,11,E)-jsp,2)+Pwr(Mov(b,12,E)-jsp,2)+Pwr(Mov(b,13,E)-jsp,2)+Pwr(Mov(b,14,E)-jsp,2);
 
 
b:=If(p1>0,Log(L),L);
 
jsp:=js+Mov(b,26,E);
 
mj3:=Pwr(Mov(b,10,E)-jsp,2)+Pwr(Mov(b,11,E)-jsp,2)+Pwr(Mov(b,12,E)-jsp,2)+Pwr(Mov(b,13,E)-jsp,2)+Pwr(Mov(b,14,E)-jsp,2);
 
 
b:=If(p1>0,Log(C),C);
 
jsp:=js+Mov(b,26,E);
 
mj4:=Pwr(Mov(b,10,E)-jsp,2)+Pwr(Mov(b,11,E)-jsp,2)+Pwr(Mov(b,12,E)-jsp,2)+Pwr(Mov(b,13,E)-jsp,2)+Pwr(Mov(b,14,E)-jsp,2);
 
 
mjs:=Sqrt((mj1+mj2+mj3+mj4)/19/20);
 
mja:=Mov(mjs,vs,TRI);
 
js-mja*dv;
 
js+mja*dv;
 
js;
 
 
 
Отзывы и рецензии приветствуются.
 
C уважением
 


Ответы и комментарии:

[an error occurred while processing this directive]

Форум Начало Ответить Назад Вперед

Rambler's Top100