А ларчик просто открывался... через буфер индикатора. Надо удалить точку --> Буфер2[i] =NULL
А ларчик просто открывался... через буфер индикатора. Надо удалить точку --> Буфер2[i] =NULL
Если я сделаю таким образом, то точка будет пропадать вместе с фракталом, а нужно чтобы она оставалась.
//---- buffers double up[]; double dn[]; double upp[]; double dnp[]; datetime t=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,up); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexBuffer(1,dn); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(2,upp); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,108); SetIndexBuffer(3,dnp); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,108); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- for(int i=2;i<555;i++) { up[i]=iFractals(NULL,0,MODE_UPPER,i); dn[i]=iFractals(NULL,0,MODE_LOWER,i); upp[i]=iFractals(NULL,0,MODE_UPPER,i); dnp[i]=iFractals(NULL,0,MODE_LOWER,i); }
Вы правильно поняли задания? Вот ссылка. Рисунок слева: появился знак фрактала. Но цена пробила фрактал, и знак исчез.
В этом месте в момент исчезновения знака фрактала и надо нарисовать точку.
Приветствую! Пишу индикатор по такому простому ТЗ:
Индикатор. Устанавливает метки(точки разным цветом для верхнего и нижнего) только вместо и в месте пропавших фракталов штатного индикатора.
Некоторые объекты то удаляются то нет, в чем может быть причина? Точка должна быть только на месте пропавшего фрактала. Может быть возможно реализовать как то иначе?
А зачем тебе штатный индикатор фракталов? Ведь у тебя задача проста как арифметика 3го класса. Всего лишь 2 условия
if(High[i+2] > High[i+3] && High[i+2] > High[i+4] && High[i+2] > High[i+1] && High[i+2] > Open[i] && High[i+2] < High[i]) up[i+2] = High[i+2]; else up[i+2] = 0; // или EMPTY_VALUE if(Low[i+2] < Low[i+3] && Low[i+2] < Low[i+4] && Low[i+2] < Low[i+1] && Low[i+2] < Open[i] && Low[i+2] > Low[i]) dn[i+2] = Low[i+2]; else DN[i+2] = 0; // или EMPTY_VALUE
И зачем точки рисовать объектами??? Можно ведь выбрать какую-то звёздочку, точку или ещё чего-то, хоть бомбочку.
SetIndexArrow(0, 77);
А зачем тебе штатный индикатор фракталов? Ведь у тебя задача проста как арифметика 3го класса. Всего лишь 2 условия
И зачем точки рисовать объектами??? Можно ведь выбрать какую-то звёздочку, точку или ещё чего-то, хоть бомбочку.
if(High[i+2] > High[i+3] && High[i+2] > High[i+4] && High[i+2] > High[i+1] && High[i+2] > Open[i]) up[i+2] = High[i+2]; if(Low[i+2] < Low[i+3] && Low[i+2] < Low[i+4] && Low[i+2] < Low[i+1] && Low[i+2] < Open[i]) dn[i+2] = Low[i+2];
Благодарствую. Сделал с помощью подсказок )
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую! Пишу индикатор по такому простому ТЗ:
Индикатор. Устанавливает метки(точки разным цветом для верхнего и нижнего) только вместо и в месте пропавших фракталов штатного индикатора.
Некоторые объекты то удаляются то нет, в чем может быть причина? Точка должна быть только на месте пропавшего фрактала. Может быть возможно реализовать как то иначе?