Повторение цикла открытия ордеров

 
Во время работы, советник открывает только один ордер. После срабатывания по SL и при повторном пересечении линии, советник не открывает новый ордер. Как сделать, что бы открывал снова?? P.S. На графике в ручную нужно положить 2 трендовые линии. Одну назвать SP а вторую RS. от них работает советник
int start()
  {
   if(Prev_Bid==0)
   {
      Prev_Bid = Bid;
      Prev_Ask = Ask;
      return(0);
   }
   int ticket;
   double take, stop;
   int STOP_LEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL);
   if(TP<STOP_LEVEL)TP = STOP_LEVEL;
   if(SL<STOP_LEVEL)SL = STOP_LEVEL;
   
   if(ObjectFind(Support_Line_Name)!=0 && ObjectFind(Resistance_Line_Name)!=0)
      Comment("Ошибка. Причины: Установите хотя бы одну трендовую линию. Проверьте правильность названия линии. Линия должна быть на основном графике.");
   if(ObjectFind(Support_Line_Name)==0 && StringFind(ObjectDescription(Support_Line_Name),"_opened_"+Magic_Number,0)<0)
   {// нашли нужную линию
      if (!FindOrder_by_type_and_comment(OP_BUY,"Support_Line",Magic_Number,Symbol()))  // убедились что ордер по этой линии ещё не открывался
     
      {
         if(Ask<=ObjectGetValueByShift(Support_Line_Name,0) && Prev_Ask>ObjectGetValueByShift(Support_Line_Name,0) )// Если цена пересекла линию поддержки, то открываем позицию
         {
            ticket=-1;
            
            {
               if(TP!=0)take = Bid+TP*Point; else take = 0;
               if(SL!=0)stop =Bid-SL*Point; else stop = 0;
               ticket = WHCOrderSend(Symbol(),OP_BUY,Lot,Ask,3,stop,take,"Support_Line",Magic_Number,0,Aqua);
            }
            
            if(ticket>0 && Show_Alert)
               Alert("Открыт ордер BUY по линии Support_Line. Время: "+TimeToStr(Time[0],TIME_MINUTES));
            
            if(ticket>0)ObjectSetText(Support_Line_Name,ObjectDescription(Support_Line_Name)+"_opened_"+Magic_Number);
         }
      }
   }
   
    if(ObjectFind(Resistance_Line_Name)==0 && StringFind(ObjectDescription(Resistance_Line_Name),"_opened_"+Magic_Number,0)<0)
   {// нашли нужную линию
      if(!FindOrder_by_type_and_comment(OP_SELL,"Resistance_Line",Magic_Number,Symbol()))  // убедились что ордер по этой линии ещё не открывался
         
      {
         //Print(Bid>=ObjectGetValueByShift(Resistance_Line_Name,0)," ",Prev_Bid<=ObjectGetValueByShift(Resistance_Line_Name,0));
         if(Bid>=ObjectGetValueByShift(Resistance_Line_Name,0) && Prev_Bid<=ObjectGetValueByShift(Resistance_Line_Name,0))// Если цена пересекла линию поддержки, то открываем позицию
         {
            ticket=-1;
            
            {
               if(TP!=0)take = Ask-TP*Point; else take = 0;
               if(SL!=0)stop =Ask+SL*Point; else stop = 0;
               ticket = WHCOrderSend(Symbol(),OP_SELL,Lot,Bid,3,stop,take,"Resistance_Line",Magic_Number,0,Magenta);
            }
            
            if(ticket>0 && Show_Alert)
               Alert("Открыт ордер SELL по линии Resistance_Line. Время: "+TimeToStr(Time[0],TIME_MINUTES));
            
            if(ticket>0)ObjectSetText(Resistance_Line_Name,ObjectDescription(Resistance_Line_Name)+"_opened_"+Magic_Number);
         }
      }
   }
     
   Prev_Bid = Bid;
   Prev_Ask = Ask;
   return(0);
  }
Файлы:
Причина обращения: