Помогите с Циклом

 

Задача вроде как проста но нужно подкоорденираватся у спецов кода.


На рисунке видно  что есть уравни. Мне нужно через цикл перебрать закрытия свечь и определить закрывалась ли свеч ниже уравня (А). Примером допустим может быть 100 свечей.

 

Есть уровни - аж четыре горизонтальных и два наклонных, чем они нарисованы неизвестно. Где уровень А тоже не известно и что он из себя представляет тоже неизвестно.

 


ТВ - точька входа.

Уравень А самый нижний. 

Нужно по Клоус свечи определить Был ли клоус нуже уравня за период 100 свечей. Отщитывать нужно от свечи со здвигом 1 .

 
Yevheniy Kopanitskyy:


ТВ - точька входа.

Уравень А самый нижний. 

Нужно по Клоус свечи определить Был ли клоус нуже уравня за период 100 свечей. Отщитывать нужно от свечи со здвигом 1 .


Пройти в цикле по барам - это не проблема. Нужно значение уровня.

Можно проще - функции iHighest(), iLowest() с MODE_CLOSE, но все равно нужно значение уровня. 

 
Dmitry Fedoseev:

Пройти в цикле по барам - это не проблема. Нужно значение уровня.

Можно проще - функции iHighest(), iLowest() с MODE_CLOSE, но все равно нужно значение уровня. 

значение уравня расчитывается при сигнале. В случаи с картинкой это 1,15008 свеча входа 4 утра 27/07/17 таймфрейм Х4
 

Как-нибудь так:

bool Crossing(
               double Level,  // уровень
               int N,         // количество баров
               int Shift      // бар с которого начинать
   ){
   
   if(Close[Shift]>Level){
      for(int i=Shift+1;i<Shift+1+N;i++){
         if(Close[i]<Level){
            return(true);
         }
      }
   }
   else if(Close[Shift]<Level){
      for(int i=Shift+1;i<Shift+1+N;i++){
         if(Close[i]>Level){
            return(true);
         }
      }
   }   
   return(false);
}
 

Спасибо за подсказку, использавал  iHighest(), iLowest()  именно то что нужно

Причина обращения: