Два фрактала не могут находиться на двух соседних барах по определению.
RTFM. А еще считается хорошим тоном вопросы новичков задавать в ветке для вопросов новичков.
Два фрактала не могут находиться на двух соседних барах по определению.
RTFM. А еще считается хорошим тоном вопросы новичков задавать в ветке для вопросов новичков.
Уточню:
double Fractal_up[1000]; double Fractal_down[1000]; int n=1000, k=1000; //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i; i=Bars-counted_bars-1; while(i>=0) { if(iFractals(Symbol(),0,MODE_LOWER,i)!=0) { Fractal_down[n]=iFractals(Symbol(),0,MODE_LOWER,i); if(Fractal_down[k]<Fractal_down[k+1]) //Сравнение фракталов вниз Alert("1"); } if(iFractals(Symbol(),0,MODE_UPPER,i)!=0) { Fractal_up[k]=iFractals(Symbol(),0,MODE_UPPER,i); if(Fractal_up[k]>Fractal_up[k+1]) //Сравнение фракталов вверх Alert("2"); } n--; k--; i--; } return(0); }
Все фракталы которые не равны нулю, помещаются в отдельный буфер. При сравнении фрактало вниз, ничего не происходит, хотя все данные поступают в него исправно
Уточню:
ничего не происходит, хотя все данные поступают в него исправно
Уточню, данные поступят один раз при старте и больше поступать не будут и очень быстро программа вылетит по ошибке.
Резюме, переделывайте код, так обрабатывать фракталы нельзя.
тебе нужно 2 верхние и 2 нижние точки фракталов?
int shift=0; while(true) // хай 1 { HigH1 = iFractals(Symbol(),0,MODE_UPPER,shift); // цена ближайшего верхнего фрактала if (HigH1>0) { HighN1=shift; shift=0; break; } // HighN1 - номер бара на котором он стоит shift++; } while(true) // хай 2 { HigH2 = iFractals(Symbol(),0,MODE_UPPER,HighN1+1+shift); // цена второго верхнего фрактала if (HigH2>0) { HighN2=HighN1+1+shift; shift=0; break;} // HighN2 - номер бара на котором он стоит shift++; } while(true) // лоу 1 { LoW1 = iFractals(Symbol(),0,MODE_LOWER,shift); // цена ближайшего нижнего фрактала if (LoW1>0) { LowN1=shift; shift=0; break; } // LowN1- номер бара на котором он стоит shift++; } while(true) // лоу 2 { LoW2 = iFractals(Symbol(),0,MODE_LOWER,LowN1+1+shift); // цена второго нижнего фрактала if (LoW2>0) { LowN2=LowN1+1+shift; shift=0; break; } // LowN2- номер бара на котором он стоит shift++; }
Два фрактала не могут находиться на двух соседних барах по определению.
Если стандартные в МТ4, то могут
Если стандартные в МТ4, то могут
И где же Вы это увидели? На рисунке этого нет
третий и четвертый слева
А пересчитать бары не пробовали. У каждого фрактала (изображенного на картинке) слева и справа есть два меньших бара. Я про верхние фракталы
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно сабж. При индефикаторе MODE_LOWER, данное условие не работает, если изменить его на MODE_UPPER, все будет впорядке
if(iFractals(Symbol(),0,MODE_LOWER,i)<iFractals(Symbol(),0,MODE_LOWER,i+1))
{
//--
}