C1am. Осредненный ROC (Price ROC) c расчетом доверительных интервалов.
Re: Технический (статистический) анализ. Механистические торговые системы -- admin3   Ответить Форум
Отправлено:
06/20/2002, 17:04:27

Author Profile e-mail автора
Осредненный 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;

Обсуждения на форуме (адреса действительны до 30 июня 2002 года)

http://www.howtotrade.ru/wtboard/3504.shtml
http://www.howtotrade.ru/wtboard/3537.shtml

Обсуждения на форуме (адреса действительны после 30 июня 2002 года)

http://howtotrade.wallst.ru/archive/3504.shtml
http://howtotrade.wallst.ru/archive/3537.shtml


Ответить   Назад |Вперед |Текущая страница
Rambler's Top100