Прошу найти ошибки в сыром советнике с Боллинджером, также приветствуются советы по упрощению кода

 

Прошу найти ошибки в сыром советнике с Боллинджером, также приветствуются советы по упрощению кода

Цель: найти коридор сужения полос Боллинджера и как только начнется расширение торгуем.

Что бы легкое движение не отвлекало ввел Otklonenie=2п. (на Альпари 20п - значения приблизительные) которое позволяет не реагировать на слабые сигналы.

double Bollinjer1UP=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_UPPER, 1);
double Bollinjer1DOWN=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_LOWER, 1); 
double Bollinjer2UP=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_UPPER, 2);
double Bollinjer2DOWN=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_LOWER, 2);
double Bollinjer3UP=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_UPPER, 3);
double Bollinjer3DOWN=iBands( NULL, PERIOD_M15, period, 2, 0, PRICE_CLOSE, MODE_LOWER, 3);
//на 2м баре расстояние между линиями меньше чем на 1м
//                           : ДА - продолжаем
//                             НЕТ -  return(0); 
X1=Bollinjer1UP-Bollinjer1DOWN;
X2=Bollinjer2UP-Bollinjer2DOWN;
X3=Bollinjer3UP-Bollinjer3DOWN;
if (X3>=X2)   // сужение линий
   {
   if (X1>X2) // начинается расширение - торгуем
   {
   Y=X1-X2;
      if (Y<=Otklonenie) Trade ();// расширение больше допустимого отклонения
   }
   else return (0);
   }
else return (0);
 

ну визуальнее проще так

if (X3>=X2 && X1>X2 && X1-X2>=Otklonenie)   // сужение линий, затем расширение больше допустимого отклонения
   Trade ();
 
X1-X2>=Otklonenie уже подразумевает X1>X2
 
Roger >>:
X1-X2>=Otklonenie уже подразумевает X1>X2
подумайте еще раз ;-)