Вы не проверяете каждый бар, который принадлежит бару более старшего таймфрейма. А ведь на один Н4 приходится 4 бара Н1 и 48 баров М5. Еще вы не учитываете, что экстремумы зигзага могут быть разнонаправленные. Вот пример для максимума зигзага:
if(iCustom(NULL,240,"ZigAndZag",5,ZZbar)==iHigh(Symbol(),240, ZZbar)){//Находим начальный и конечный бары на Н1datetime H1BarBegin =iBarShift(Symbol(),60,iTime(Symbol(),240, ZZbar));datetime H1BarEnd =iBarShift(Symbol(),60,iTime(Symbol(),240, ZZbar-1));// --------------------------------------// Проверяем наличие максимума зигзага на каждом баре Н1, которые принадлежат данному бару Н4for(int i = H1BarBegin; i > H1BarEnd; i--)if(iCustom(NULL,60,"ZigAndZag",5,i)==iHigh(Symbol(),60, i))break;// ------------------------------------------------------------------------------------------ if(i > H1BarEnd){//Находим начальный и конечный бары на M5datetime M5BarBegin =iBarShift(Symbol(),5,iTime(Symbol(),240, ZZbar));datetime M5BarEnd =iBarShift(Symbol(),5,iTime(Symbol(),240, ZZbar-1));// --------------------------------------// Проверяем наличие максимума зигзага на каждом баре M5, которые принадлежат данному бару Н4for(i = M5BarBegin; i > M5BarEnd; i--)if(iCustom(NULL,5,"ZigAndZag",5,i)==iHigh(Symbol(),5, i))break;// ------------------------------------------------------------------------------------------ if(i > M5BarEnd){// стрелка!!!}}}
Самое что смешное если коментишь любой таймфрейм и оставляешь два то он работает!
Вот так:
if(
(iCustom(NULL,5,"ZigAndZag",5,ZZbar)!=0)
//&&(iCustom(NULL,60,"ZigAndZag",5,ZZbar)!=0)
&&(iCustom(NULL,240,"ZigAndZag",5,ZZbar)!=0)
)
{buy=true;SetArrow(241,1,true,Blue);}
if(
(iCustom(NULL,5,"ZigAndZag",6,ZZbar)!=0)
//&&(iCustom(NULL,60,"ZigAndZag",6,ZZbar)!=0)
&&(iCustom(NULL,240,"ZigAndZag",6,ZZbar)!=0)
)
{sell=true;SetArrow(242,1,false,Red);}
ПОЧЕМУ??? Как сделать что-бы 3 тайм фрейма учитывалось???
создай для каждого периода отдельные переменные и запоминай их !
а после уже рули ими!
Вы не проверяете каждый бар, который принадлежит бару более старшего таймфрейма. А ведь на один Н4 приходится 4 бара Н1 и 48 баров М5. Еще вы не учитываете, что экстремумы зигзага могут быть разнонаправленные. Вот пример для максимума зигзага: