Господа, время будет, подскажите! Заблудился в трех соснах.

 

В советнике под любую базовую (простую) стратегию все работает, все исправно. В инклюде критерион, при подключении разных стратегий, основанных на вычислении различных торговых критериев на комбинациях МА,  индикаторах (Аллигатор, сстох и т.д.) также все работает, советник тестируется на истории, открывает ордера, работает в режиме реального времени и т.д. Но при подключении в инклюд стратегии, основанной на правиле 4-х недель Д.Мерфи, все компилируется, но советник на истории не работает, ордера не открываются, хотя условия были,  старт истории с 2000г и по наст. время. 

//--------------------------------------------------------------------
// Criterion.mqh
// Правило 4-х недель
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy  
// 20 - открытие Sell 
// 11 - закрытие Buy
// 21 - закрытие Sell
// 0 - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
// Внешние переменные:
extern int i,                                    // Индекс бара for max min  
  Counted_bars1=20,                     // Количество просчитанных баров (20 дней) 
  Counted_bars2=10;                    // Количество просчитанных баров (10 дней) 
   //--------------------------------------------------------------- 3 --
 int Criterion()                              // Пользовательская функция
  {
  string Sym="EURUSD";
  if (Sym!=Symbol())                       // Если не наш фин. инструмент
  {
  Inform(16);                                 // Сообщение..
  return(-1);                                  // .. и выход
  }
  double
  Max_20=Bid, Min_20=Bid,             // нач знач max за период 20 дней 
  Max_10=Bid, Min_10=Bid;            // нач знач min за период  10 дней
       
  //--------------------------------------------------------------- 4 --
  // Параметры торговых критериев:
   
  for(i=0;i<=Counted_bars1-1;i++) // цикл для 20 дней 
  {  
  if (Low[i]< Min_20)                     // Если < известного  
  Min_20=Low[i];                         // то оно и будет мин  
  if (High[i] > Max_20)                  // Если > известного  
  Max_20=High[i];                       // то оно и будет макс  
  }  
  
  for(i=0;i<=Counted_bars2-1;i++)    // цикл для 10 дней 
  {  
  if (Low[i]< Min_10)                  // Если < известного  
  Min_10=Low[i];                      // то оно и будет мин  
  if (High[i] > Max_10)               // Если > известного  
  Max_10=High[i];                      // то оно и будет макс  
  }  

     //--------------------------------------------------------------- 5 --
   
  // Вычисление торговых критериев
   
  if(Close[0]>Max_20)                      //цена закрытия выше макс цены за последние 20 дней
  return(10);                                   // Открытие Buy  
   
   
  if (Close[0]<Min_20)                    //цена закрытия ниже мин цены за последние 20 дней
  return(20);                                 // Открытие Sell
   
  if(Close[0]<Min_10)                        //цена закрытия ниже мин цены за последние 10 дней
  return(11);                                   // Закрытие Buy  
  
   
  if(Close[0]> Max_10)                   //цена закрытия выше макс цены за последние 10 дней
  return(21);                                 // Закрытие Sell  
   
   
   
  
   
   
//--------------------------------------------------------------- 6 --
  return(0); // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --