А.Г., как вы относитесь к тому, чтобы размесить это в разделе "Новые направления"?
Ответить Ответы и комментарииФорум
Отправлено C1am, 16:11:40 20/06/2002:

 
Осредненный ROC.  
 
Идея индикатора:
 
Оценка изменений цены по данным OHLC нескольких последовательных баров.  
 
Метод:  
 
Расчет среднего (Js) всевозможных комбинаций изменения  
 
по Op-Открытие H-максимум L-минимум C-закрытие. Например, для 4 баров (12 точек):  
 
 
X(1) = (Op(0)-Op(-1))  
 
X(2) = (Op(0)-Op(-2))/2  
 
X(3) = (Op(0)-Op(-3))/3  
 
X(4) = (H(0)-H(-1))  
 
X(5) = (H(0)-H(-2))/2  
 
X(6) = (H(0)-H(-3))/3  
 
X(7) = (L(0)-L(-1))  
 
X(8 )= (L(0)-L(-2))/2  
 
X(9) = (L(0)-L(-3))/3  
 
X(10) = (C(0)-C(-1))  
 
X(11) = (C(0)-C(-2))/2  
 
X(12) = (C(0)-C(-3))/3  
 
 
Далее, расчет  ошибки оценки по 12 точкам    
 
mjs=Sqrt(Cумма((X(i)-Js)^2)/11/12)  
 
 
Оценка средней ошибки оценки mja как среднего от mjs по числу vs-точек (vs-параметр)
 
mja=Cреднее(mjs,vs);
 
 
Оценка доверительного интервала с помощью квантиля dv (dv-параметр)  
 
Js-dv*mja < Js < Js+dv*mja  
 
 
Интерпретация:  
 
1. Если   Js-dv*mja>0, то наблюдалась тенденция к росту в рамках 4 баров  
 
2. Если   Js+dv*mja<0, то наблюдалась тенденция к падению в рамках 4 баров  
 
3. Иначе — были колебания в диапазоне без ярко выраженной тенденции  
 
 
Изменяемые по желанию пользователя параметры:
 
 
p1:=Input("Использовать Log:1",0,1,1);
 
vs:=Input("Число точек для расчета дисперсии",1,9999,20);
 
dv:=Input("3начение квантиля",0,99,3.5);
 
 
Пути совершенствования индикатора:
 
1. Использование урезанного среднего.
 
Урезанное среднее является промежуточным между медианой
 
(наиболее устойчивой оценкой) и выборочным средним
 
(оптимальной оценкой для нормального случая).
 
Подходит для случая загрязненного нормального распределения.
 
Можно, например, выбросить верхнюю и нижнюю четверть, оставшуюся
 
внутреннюю половину усреднить.  
 
2. Выбор именно 4 или 9 баров — произвол.
 
Cледует выписать процедуры для произвольного числа баров ( N )
 
и подумать о выборе адекватного N при помощи некоторого критерия.
 
 
 
 
Тексты программ
 
 
Текст индикатора для Метастока  
 
по 4 барам
 
{OcRoc-4}
 
 
p1:=Input("Использовать Log:1",0,1,1);
 
vs:=Input("Число точек для расчета дисперсии",1,9999,20);
 
dv:=Input("3начение квантиля",0,99,3.5);
 
Xo:=If(p1>0,Log(O),O);
 
XH:=If(p1>0,Log(H),H);
 
XL:=If(p1>0,Log(L),L);
 
XC:=If(p1>0,Log(C),C);
 
js:=(ROC(Xo,1,$)+ROC(Xo,2,$)/2+ROC(Xo,3,$)/3+
 
ROC(XH,1,$)+ROC(XH,2,$)/2+ROC(XH,3,$)/3+
 
ROC(XL,1,$)+ROC(XL,2,$)/2+ROC(XL,3,$)/3+
 
ROC(XC,1,$)+ROC(XC,2,$)/2+ROC(XC,3,$)/3)/12;
 
mjs:=Pwr((Pwr(ROC(Xo,1,$)-js,2)+Pwr(ROC(Xo,2,$)/2-js,2)+Pwr(ROC(Xo,3,$)/3-js,2)+
 
Pwr(ROC(XH,1,$)-js,2)+Pwr(ROC(XH,2,$)/2-js,2)+Pwr(ROC(XH,3,$)/3-js,2)+
 
Pwr(ROC(XL,1,$)-js,2)+Pwr(ROC(XL,2,$)/2-js,2)+Pwr(ROC(XL,3,$)/3-js,2)+
 
Pwr(ROC(XC,1,$)-js,2)+Pwr(ROC(XC,2,$)/2-js,2)+Pwr(ROC(XC,3,$)/3-js,2))/132,0.5);
 
mja:=Mov(mjs,vs,TRI);
 
js-mja*dv;
 
js+mja*dv;
 
js;
 
 
 
Текст индикатора для Метастока  
 
по 9 барам
 
 
{OcRoc-9}
 
p1:=Input("Использовать Log:1",0,1,1);
 
vs:=Input("Число точек для расчета дисперсии",1,9999,30);
 
dv:=Input("3начение квантиля",0,99,3.5);
 
Xo:=If(p1>0,Log(O),O);
 
XH:=If(p1>0,Log(H),H);
 
XL:=If(p1>0,Log(L),L);
 
XC:=If(p1>0,Log(C),C);
 
js:=(ROC(Xo,1,$)+ROC(Xo,2,$)/2+ROC(Xo,3,$)/3+ROC(Xo,4,$)/4+ROC(Xo,5,$)/5+
 
ROC(Xo,6,$)/6+ROC(Xo,7,$)/7+ROC(Xo,8,$)/8+
 
ROC(XH,1,$)+ROC(XH,2,$)/2+ROC(XH,3,$)/3+ROC(XH,4,$)/4+ROC(XH,5,$)/5+
 
ROC(XH,6,$)/6+ROC(XH,7,$)/7+ROC(XH,8,$)/8+
 
ROC(XL,1,$)+ROC(XL,2,$)/2+ROC(XL,3,$)/3+ROC(XL,4,$)/4+ROC(XL,5,$)/5+
 
ROC(XL,6,$)/6+ROC(XL,7,$)/7+ROC(XL,8,$)/8+
 
ROC(XC,1,$)+ROC(XC,2,$)/2+ROC(XC,3,$)/3+ROC(Xc,4,$)/4+ROC(Xc,5,$)/5+
 
ROC(Xc,6,$)/6+ROC(Xc,7,$)/7+ROC(Xc,8,$)/8 )/32;
 
mjs1:=(Pwr(ROC(Xo,1,$)-js,2)+Pwr(ROC(Xo,2,$)/2-js,2)+Pwr(ROC(Xo,3,$)/3-js,2)+
 
Pwr(ROC(XH,1,$)-js,2)+Pwr(ROC(XH,2,$)/2-js,2)+Pwr(ROC(XH,3,$)/3-js,2)+
 
Pwr(ROC(XL,1,$)-js,2)+Pwr(ROC(XL,2,$)/2-js,2)+Pwr(ROC(XL,3,$)/3-js,2)+
 
Pwr(ROC(XC,1,$)-js,2)+Pwr(ROC(XC,2,$)/2-js,2)+Pwr(ROC(XC,3,$)/3-js,2));
 
mjs2:=(Pwr(ROC(Xo,4,$)/4-js,2)+Pwr(ROC(Xo,5,$)/5-js,2)+Pwr(ROC(Xo,6,$)/6-js,2)+
 
Pwr(ROC(XH,4,$)/4-js,2)+Pwr(ROC(XH,5,$)/5-js,2)+Pwr(ROC(XH,6,$)/6-js,2)+
 
Pwr(ROC(XL,4,$)/4-js,2)+Pwr(ROC(XL,5,$)/5-js,2)+Pwr(ROC(XL,6,$)/6-js,2)+
 
Pwr(ROC(XC,4,$)/4-js,2)+Pwr(ROC(XC,5,$)/5-js,2)+Pwr(ROC(XC,6,$)/6-js,2));
 
mjs3:=(Pwr(ROC(Xo,7,$)/7-js,2)+Pwr(ROC(Xo,8,$)/8-js,2)+
 
Pwr(ROC(XH,7,$)/7-js,2)+Pwr(ROC(XH,8,$)/8-js,2)+
 
Pwr(ROC(XL,7,$)/7-js,2)+Pwr(ROC(XL,8,$)/8-js,2)+
 
Pwr(ROC(XC,7,$)/7-js,2)+Pwr(ROC(XC,8,$)/8-js,2));
 
 
mja:=Mov(Sqrt((mjs1+mjs2+mjs3)/31/32),vs,TRI);
 
js-mja*dv;
 
js+mja*dv;
 
js;
 
 
 
Авторы А.Г.,СергейЮ, C1am
 
HowToTrade
 
2002


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

[an error occurred while processing this directive]

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

Rambler's Top100