понедельник, 30 ноября 2015 г.

Индикатор Японских свеч(код для Румус 2)





//!_IC_22



if c>o then xh=h-c;else xh=h-o;
if c>o then xl=o-l;else xl=c-l;
tsh=mov(xh,20,s);
tsl=mov(xl,20,s);

//покупка

if (xl>2*tsl and xh<1.5*tsh) or (c-o)> 2*tsh or (xl>2*xh and xl>tsl) then br=3; else br=0;
if (o-c)>2*tsl then br=0;
//r;

//продажа

if ( xh>2*tsh and xl<1.5*txl) or (o-c)> 2*tsl or (xh>2*xl and xh>tsh) then sr=-3; else sr=0;
if abs(xh-xl)<((tsh+tsl)/2) and abs (o-c)<((tsh+tsl)/2) then

begin br=0;
sr=0;
end;

if (c-o)>2*tsh then sr=0;

a=h;
b=ref(h,-1);
if a>b then h2=a; else h2=b;
a1=l;
b1=ref(l,-1);
if a1<b1 then l2=a1; else l2=b1;
o2=ref(o,-1);
c2=c;

//покупка

if c2>h2-(h2-l2)/3 then br2=1; else br2=0;

//r2;

//продажа

if c2<l2+(h2-l2)/3 then sr2=-1; else sr2=0;

zzz=sr2+br2+br+sr;

if zzz>0 then rr=zzz; else rr=0;

if zzz<0 then rr1=zzz; else rr1=0;
rr;
rr1;

С комментариями

 //!_IC_22
if c>o then xh=h-c;else xh=h-o;//вычисляется размер верхней тени
if c>o then xl=o-l;else xl=c-l;//вычисляется размер нижней тени
tsh=mov(xh,20,s);//усредняется
tsl=mov(xl,20,s);//усредняется
//покупка
if (xl>2*tsl and xh<1.5*tsh) or (c-o)> 2*tsh or (xl>2*xh and xl>tsl) then br=3; else br=0;//(большая нижняя тень и маленькая верхняя, по средним сравнение), или (белое тело свечи в 2 раза больше средней верхней тени), или (нижняя тень этой свечи в 2 раза больше верхней и нижняя этой свечи больше средней нижней тени) то балл одинарной свечи=+3
if (o-c)>2*tsl then br=0;// если тело свечи большое и чёрное :D, балл будет =0, даже если выполнены условия выше
//r;
//продажа
if ( xh>2*tsh and xl<1.5*tsl) or (o-c)> 2*tsl or (xh>2*xl and xh>tsh) then sr=-3; else sr=0;// (сравнение теней со средней тенью: большая верхняя тень и маленькая нижняя тень) или (чёрное тело свечи в 2 раза больше средней нижней тени) или (верхняя тень в 2 раза больше нижней тени этой свечи и и больше средней верхней тени) то балл одинарной свечи =-3
if abs(xh-xl)<((tsh+tsl)/2) and abs (o-c)<((tsh+tsl)/2) then
begin br=0;
sr=0;
end;// если разница между верхней тенью и нижней тенью свечи меньше средней тени и тело свечи меньше средней тени, то свеча нейтральная, балл=0
if (c-o)>2*tsh then sr=0;//если тело свечи большое и белое, то балл будет 0, даже если выполнены условия балл=-3
a=h;
b=ref(h,-1);
if a>b then h2=a; else h2=b;// выбирается наивысший хай по двум последним свечам
a1=l;
b1=ref(l,-1);
if a1<b1 then l2=a1; else l2=b1;//выбирается наименьшее лоу по двум последним свечам
o2=ref(o,-1);
c2=c;
//покупка
if c2>h2-(h2-l2)/3 then br2=1; else br2=0;//если свеча закрылась в верхней трети диапазона последних двух свечей, то балл=1(для двух свечей)
//r2;
//продажа
if c2<l2+(h2-l2)/3 then sr2=-1; else sr2=0;// если свеча закрылась в нижней трети диапазона последних двух свечей, то балл=-1(для двух свечей)
zzz=sr2+br2+br+sr;
if zzz>0 then rr=zzz; else rr=0;
if zzz<0 then rr1=zzz; else rr1=0;
rr;
rr1;// сравнение конфигураций из одной и из двух свечей и вывод результатов
0;