Отправлено 01 March 2013 - 18:07
Еще одна просьба сделать индикатор. Код написан под Омегу, а нужен индюк для Метатрейдер. Должен получится индикатор силы свечи
/*"ИНДИКАТОР СИЛЫ СВЕЧИ" НА ОСНОВЕ ИДЕИ Г-НА
ЛИХОВИДОВА В.Н. С АВТОМАТИЧЕСКИМ ОПРЕДЕЛЕНИЕМ
ГЕОМЕТРИЧЕСКИХ ПАРАМЕТРОВ СВЕЧИ*/
Bn=inparam("Параметр DOJI (0 для тела)", 0.0000, 0.0005, 0.0003);
Shun=inparam("Параметр 0 верхней тени", 0.0000, 0.0005, 0.0003);
Shdn=inparam("Параметр 0 нижней тени", 0.0000, 0.0005, 0.0003);
P1=inparam("Период опр. парам. свечи", 10, 500, 100);
//================================================== ======
//1. Авт. определение геометрических параметров свечи в пунктах:
//================================================== ======
//1.1. Тело
//------------
if(C>O) then b1= (C-O); else b1= (O-C);
Bd=hhv(b1, P1);
//Bd;
Bds=Bd/3; //малое тело
Bda=Bds*2; //среднее тело
//1.2.Тени:
//-----------
//1.2.1.Верхняя тень:
//------------------------
if(C>O) then su1= (H-C); else su1= (H-O);
Shu=hhv(su1, P1);
//Shu;
Shus=Shu/3; //малая верхняя тень
Shua=Shus*2; //средняя верхняя тень
//1.2.2.Нижняя тень:
//------------------------
if(C>O) then sd1= (O-L); else sd1= (C-L);
Shd=hhv(sd1, P1);
//Shd;
Shds=Shd/3; //малая нижняя тень
Shda=Shds*2; //средняя верхняя тень
//==============================
//2. Определение кода цвета свечи:
//==============================
//2.1.Белая свеча:
if (C-O)>Bn then Clw=64; else
if (C-O)<Bn and (C-O)>0 and (ref(O,-1)>ref(C,-1)) then Clw=64; else
if (C-O)<Bn and (C-O)>0 and (ref(O,-1)<ref(C,-1)) then Clw=0; else Clw=0;
//2.2.Черная свеча:
if (O-C)>Bn then Clb=0; else
if (O-C)<Bn and (O-C)>0 and (ref(C,-1)>ref(O,-1)) then Clb=0; else
if (O-C)<Bn and (O-C)>0 and (ref(C,-1)<ref(O,-1)) then Clb=64; else Clb=0;
//2.3.Фактический код цвета свечи:
Cl=(Clw+Clb);
//====================================
//3. Определение кода размера тела свечи:
//====================================
//Белая свеча:
if Cl<>0 then begin
Bdw=(C-O);
if Bdw<=Bn and Bdw>0 then Bd=0;
if Bdw<=Bds and Bdw>Bn then Bd=16;
if Bdw<=Bda and Bdw>Bds then Bd=32;
if Bdw>Bda then Bd=48;
end;
//Черная свеча:
if Cl<>64 then begin
Bdb=(O-C);
if Bdb<=Bn and Bdb>0 then Bd=48;
if Bdb<=Bds and Bdb>Bn then Bd=32;
if Bdb<=Bda and Bdb>Bds then Bd=16;
if Bdb>Bda then Bd=0;
end;
//=======================================
//4. Определение кода размеров теней свечи:
//=======================================
//Верхняя тень:
if (O<=C) then Shu=(H-C); else //белая свеча и doji
if (O>C) then Shu=(H-O); // черная свеча
if Shu<=Shun and Shu>=0 then Shedu=0;
if Shu<=Shus and Shv>Shun then Shedu=4;
if Shu<=Shua and Shv>Shus then Shedu=8;
if Shu>Shua then Shedu=12;
//Нижняя тень:
if (O<=C) then Shd=(O-L); else //белая свеча и doji
if (O>C) then Shd=(C-L); // черная свеча
if Shd<=Shdn and Shd>=0 then Shedd=3;
if Shd<=Shds and Shd>Shdn then Shedd=2;
if Shd<=Shda and Shn>Shds then Shedd=1;
if Shd>Shda then Shedd=0;
//Суммарный код теней свечи:
Sh=(Shedu+Shedd);
//=============================================
//5. Определение результирующего кода свечи свечи:
//=============================================
Code=(Cl+Bd+Sh); // результирующий код свечи
mov(Code,3,s); // сглаживание Cod
//=============================================
Спасибо