Почему Советник не открывает SELL

 

пробую делать советника, но почему то он не совершает SELL и не выходит по сигналу STOP

не могу понять в чем ошибка, подскажите пожалуйста, использую шаблон Н.Косицина

#property copyright ""
#property link ""
//----+ +---------------------------------------------------------------------------+
//---- ВХОДНЫЕ ПАРАМЕТРЫ ЭКСПЕРТА ДЛЯ BUY СДЕЛОК 
extern bool   Test_Up = true;//фильтр направления расчётов сделок
extern double Money_Management_Up = 0.1;
extern int    Timeframe_Up = 240;
// Объявления и инициализации внешних параметров эксперта для лонгов для среднего таймфрейма
//---- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
extern string s="OsMA";
extern int Fast=12;
extern int Slow=26;
extern int Signal=5;

extern int TimeframeN_Up = 15;
extern int FastM15=12;
extern int SlowM15=26;
extern int SignalM15=5;


// Объявления и инициализации внешних параметров эксперта для лонгов для младшего таймфрейма
//---- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

extern int    STOPLOSS_Up = 50;  // стоплосс
extern int    TAKEPROFIT_Up = 100; // тейкпрофит
extern bool   ClosePos_Up = true; // разрешение принудительного закрывания позиции
extern bool   Test_Dn = true;

//---- Целые переменные для минимума расчётных баров
int MinBar_Up,  MinBarN_Up;
//+==================================================================+
//| Custom Expert functions                                          |
//+==================================================================+
#include <Lite_EXPERT1.mqh>
//+==================================================================+
//| TimeframeCheck() functions                                       |
//+==================================================================+
void TimeframeCheck(string Name, int Timeframe)
  {
//----+
   //---- Проверка значения переменной Timeframe на корректность
   if (Timeframe != 1)
    if (Timeframe != 5)
     if (Timeframe != 15)
      if (Timeframe != 30)
       if (Timeframe != 60)
        if (Timeframe != 240)
         if (Timeframe != 1440)
           Print(StringConcatenate("Параметр ",Name,
                     " не может ", "быть равным ", Timeframe, "!!!"));    
//----+ 
  }
//+==================================================================+
//| Custom Expert initialization function                            |
//+==================================================================+
int init()
  {
//---- Проверка значения переменных таймфреймов на корректность
   
   TimeframeCheck("Timeframe_Up", Timeframe_Up);
   TimeframeCheck("TimeframeN_Up", TimeframeN_Up);

//---- Проверка значения переменных таймфреймов на корректность 
 

//---- Инициализация переменных для лонгов            
   // инициализация переменной для минимума расчётных баров для старшего таймфрейма
   MinBar_Up = 100;// инициализация переменной для минимума расчётных баров для среднего таймфрейма
   MinBarN_Up =100; // инициализация переменной для минимума расчётных баров для младшего таймфрейма

//---- Инициализация переменных для шортов
  
//---- завершение инициализации
   return(0);
  }
//+==================================================================+
//| expert deinitialization function                                 |
//+==================================================================+  
int deinit()
  {
//----+
   
    //---- Завершение деинициализации эксперта
    return(0);
//----+ 
  }
//+==================================================================+
//| Custom Expert iteration function                                 |
//+==================================================================+
int start()
  {
   //----+ Объявление локальных переменных алгоритмов сделок
   //----+ Объявление статических переменных алгоритмов сделок
   double OSMA1,OSMA2, OSMA3,M5345_1,M5345_2,M5345_22,M5345_12;
   //----+ Объявление статических переменных
   //static datetime StopTime_Up, StopTime_Dn;
   //---
   static int  LastBars_Up;
   
   static int  LastBarsN_Up;
   //---
   static bool BUY_Sign, BUY_Stop;
   static bool SELL_Sign, SELL_Stop;
   static bool NoiseBUY_Sign, NoiseSELL_Sign;
   static bool NoiseBUY_Stop, NoiseSELL_Stop;
   
   
   //----+ +---------------------------------------------------------------+
   //----++ КОД ДЛЯ ДЛИННЫХ ПОЗИЦИЙ                                        |
   //----+ +---------------------------------------------------------------+
   if (Test_Up) 
    {
      int IBARS_Up = iBars(NULL, Timeframe_Up);
      
      int IBARSN_Up = iBars(NULL, TimeframeN_Up);
     
      if (IBARS_Up >= MinBar_Up &&  IBARSN_Up >= MinBarN_Up)
       {       
                  
         //----+ +----------------------------------------+
         //----+ ОПРЕДЕЛЕНИЕ СИГНАЛОВ ДЛЯ ВХОДА В РЫНОК   |
         //----+ +----------------------------------------+
         if (LastBars_Up != IBARS_Up )
          {
           //----+ Инициализация переменных 
           BUY_Sign = false;
           BUY_Stop=false;
           
           SELL_Sign = false;
           SELL_Stop=false;
           LastBars_Up = IBARS_Up;
           //----+ Инициализация шумовых переменных 
           //NoiseBUY_Sign = false;
           ///StopTime_Up = iTime(NULL, Timeframe_Up, 0)
           //                               + 50 * Timeframe_Up;
                    
           // Алгоритм для определения точки входа в рынок на среднем таймфрейме
                                                //(Инициализация переменной BUY_Sign)
           M5345_1=iCustom(NULL,Timeframe_Up,"5_34_5",0,1)  ; //lightBlue  
           M5345_2=iCustom(NULL,Timeframe_Up,"5_34_5",1,1)  ; //red
           M5345_12=iCustom(NULL,Timeframe_Up,"5_34_5",0,2)  ;
           M5345_12=iCustom(NULL,Timeframe_Up,"5_34_5",0,2)  ;
           OSMA1=iOsMA(NULL,Timeframe_Up,Fast,Slow,Signal,PRICE_CLOSE,1);
           OSMA2=iOsMA(NULL,Timeframe_Up,Fast,Slow,Signal,PRICE_CLOSE,2);  
           OSMA3=iOsMA(NULL,Timeframe_Up,Fast,Slow,Signal,PRICE_CLOSE,3); 
           
           
            if(OSMA1>OSMA2 && OSMA3>OSMA2) 
                BUY_Sign=true;    
          
           
            if(M5345_1 > M5345_2 && M5345_12<M5345_22)  
                 BUY_Stop=true;
            
            if(OSMA1<OSMA2 && OSMA3<OSMA2) 
                SELL_Sign=true;    
          
           
            if(M5345_1 <M5345_2 && M5345_12>M5345_22)  
                 SELL_Stop=true;                     
          }
         
         //----+ +------------------------------------------------+
         //----+ ОПРЕДЕЛЕНИЕ ШУМОВЫХ СИГНАЛОВ ДЛЯ ВХОДА В РЫНОК   |
         //----+ +------------------------------------------------+
         
          if (LastBarsN_Up != IBARSN_Up)
           {
             NoiseBUY_Sign = false;
             NoiseBUY_Stop = false;
             NoiseSELL_Sign = false;
             NoiseSELL_Stop=false;
             LastBarsN_Up = IBARSN_Up;
             //---
             
             // Алгоритм для уточнения точки входа в рынок на младшем таймфрейме
             M5345_1=iCustom(NULL,TimeframeN_Up,"5_34_5",0,1)  ; //lightBlue  
             M5345_2=iCustom(NULL,TimeframeN_Up,"5_34_5",1,1)  ; //red
             M5345_12=iCustom(NULL,TimeframeN_Up,"5_34_5",0,2)  ;
             M5345_12=iCustom(NULL,TimeframeN_Up,"5_34_5",0,2)  ;
            OSMA1=iOsMA(NULL,TimeframeN_Up,Fast,Slow,Signal,PRICE_CLOSE,1);
            OSMA2=iOsMA(NULL,TimeframeN_Up,Fast,Slow,Signal,PRICE_CLOSE,2);       
            OSMA3=iOsMA(NULL,Timeframe_Up,Fast,Slow,Signal,PRICE_CLOSE,3); 
           
            if (BUY_Sign)
              if(OSMA1>OSMA2 && OSMA3>OSMA2) 
                NoiseBUY_Sign=true;    
          
            if(BUY_Stop)
             if(M5345_1 > M5345_2 && M5345_12<M5345_22)  
                 NoiseBUY_Stop=true; 
                
            if (SELL_Sign)
              if(OSMA1<OSMA2 && OSMA3<OSMA2) 
                SELL_Sign=true;    
          
           if(SELL_Stop) 
            if(M5345_1 < M5345_2 && M5345_12>M5345_22 )  
                 NoiseSELL_Stop=true;                                
           }
         
         if (ClosePos_Up)
                if (!CloseOrder1(NoiseSELL_Stop, 2))
                                        return(-1);     
         if (ClosePos_Up)
                if (!CloseOrder1(NoiseBUY_Stop, 1))
                                        return(-1);
         
         if (NoiseBUY_Sign)
           if (!OpenBuyOrder1(BUY_Sign, 1, Money_Management_Up, 
                                          STOPLOSS_Up, TAKEPROFIT_Up))
                                                                 return(-1);
         
                                        
          if (NoiseSELL_Sign)
           if (!OpenSellOrder1(SELL_Sign, 2, Money_Management_Up, 
                                            STOPLOSS_Up, TAKEPROFIT_Up))
                                                                  return(-1);
                                    
        }
     }
     
   
    
    return(0);
  }
//+------------------------------------------------------------------+
Файлы:
exp_new.rar  9 kb
Причина обращения: