Как сделать советника с функцией определение тренда за N баров

 
Как сделать советника с функцией определение тренда за N баров. Идея простая.
Используем индикатор ADX и ищем, что за N баров, сигнальная +DI > -ID и как только сигнальная станет +DI < -ID то открываемся на Sell, а
если за N баров, сигнальная +DI < -ID и ждём когда станет +DI > -ID и открываемся на Bay. Все перелопатил не получается сделать такую функцию может кто подскажет.
 
bool adx_up=true;

 double adx_plus=EMPTY_VALUE;

  double adx_min=EMPTY_VALUE;

 

for(int i=0;i<N;i++) 

{

 adx_plus=...

adx_min=...

if(adx_plus<adx_min)

{

adx_up=false; 

break; 

} 

} 
 
Vasyl Nosal:
А если использовать другой индикатор? как будет выглядеть функция
 
Sergey Novikov:
А если использовать другой индикатор? как будет выглядеть функция

как то так:

bool другой_индикатор_up=true;

 double другой_индикатор_plus=EMPTY_VALUE;

  double другой_индикатор_min=EMPTY_VALUE;

 

for(int i=0;i<N;i++) 

{

 другой_индикатор_plus=...

другой_индикатор_min=...

if(другой_индикатор_plus<другой_индикатор_min)

{

другой_индикатор_up=false; 

break; 

} 

} 
 
o_O:

как то так:

  Правильно ли я делаю? у меня выдает ошибку

  bool trend_buy() {
 
  bool adx_up=true;

  double adx_plus=EMPTY_VALUE;

  double adx_minus=EMPTY_VALUE;

 

for(int i=0;i<80;i++) 

{

adx_plus=iADX(Symbol(), TrendTf, 14, PRICE_CLOSE, MODE_PLUSDI, i);

adx_minus=iADX(Symbol(), TrendTf, 14, PRICE_CLOSE, MODE_MINUSDI, i);

if(adx_plus<adx_minus)

{

adx_up=false; 

break; 


}
 
o_O:

как то так:

Посмотрите правильно ли я сделал?
 
Sergey Novikov:
Посмотрите правильно ли я сделал?

Перед последней скобкой поставьте return(adx_up);

И не забудьте объявить переменную TrendTf.

 
А как сделать с одним индикатором у которого только одна линия и один буфер?
 
Sergey Novikov:
Посмотрите правильно ли я сделал?
А как сделать с одним индикатором у которого только одна линия и один буфер?