Uninit reason 1 and 5

 
When I attach this code to a chart I get this messages:
Uninit reason 1
Uninit reason 5
What does mean that?
The code is only my learning lessons, I think ths code can be a good template, but that error messages........I don't know why. Bellow the full code.
//+------------------------------------------------------------------+
//|                                                          Ea4.mq4 |
//|                                                Copyright © 2007. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007"
#property link      "http://www.website.com"
 
 
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
 
//+------------------------------------------------------------------+
//---- input parameters
extern string    Version="EA4";
extern int       MagicNumber=12345;
extern string    MONEY_MANAGEMENT="MONEY_MANAGEMENT";
extern bool      UseMM=true;
extern double    Risk=0.1;
extern double    MinLots=0.1;
extern double    MaxLots=100.0;
extern bool      Micro=false;
extern double    FixedLots=0.1;
extern string    ORDER_SETTING="ORDER_SETTING";
extern int       TakeProfit=100;
extern int       StopLoss=150;
extern string    PROFIT_PROTECT="PROFIT_PROTECT_SETTING";
extern int       ProfitProtectStart=50;
extern int       ProtectProfit=20;
extern int       OverProtect=80;
extern string    TRADING_HOURS="TRADING_HOURS";
extern int       StartHour=0;
extern int       EndHour=24;
 
 
//---- GlobalVariable
double high,low,close,pivot,buystart,sellstart,tp,sl,ticket;
int ticketID,DayOfLastBuyTrade,DayOfLastSellTrade;
string Website="www.website.com";
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init(){
 Comment("\n",Version,"\n" , Website,"\n", AccountCompany(),"\nAccount Number: ", AccountNumber(), "\nName: ", AccountName(), "\nServer: ", AccountServer(),"\nBalance: ", AccountBalance());
   ticketID=NULL;
   tp=TakeProfit*Point;
   sl=StopLoss*Point;
   setPivot();
   MagicNumber=OrderMagicNumber();
  
   
 
   
 
 
   return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start(){
 
  
        
      if(OrdersTotal()>0){
      for(int i=0;i<=OrdersTotal()-1;i++){   
         OrderSelect(i, SELECT_BY_POS);
        if (OrderMagicNumber() == MagicNumber){
         if(OrderType()==0 || OrderType()==1){
         
            if(((MarketInfo(Symbol(),MODE_BID) - OrderOpenPrice()) / MarketInfo(Symbol(),MODE_POINT) )>=ProfitProtectStart && OrderType()==0 && ticketID!=OrderTicket()){
               OrderModify(OrderTicket(),OrderOpenPrice(),buystart+(Point*ProtectProfit),OrderTakeProfit(),0,Blue);
               ticketID=OrderTicket();
           }
            else if(((OrderOpenPrice() - MarketInfo(Symbol(),MODE_ASK)) / MarketInfo(Symbol(),MODE_POINT))>=ProfitProtectStart && OrderType()==1 && ticketID!=OrderTicket()){
               OrderModify(OrderTicket(),OrderOpenPrice(),sellstart-(Point*ProtectProfit),OrderTakeProfit(),0,Blue);
               ticketID=OrderTicket();
 }
  }
 }
  } 
 }
    if(OrdersTotal()>0){
      for(int j=0;j<=OrdersTotal()-1;j++){   
         OrderSelect(j, SELECT_BY_POS);
        if (OrderMagicNumber() == MagicNumber){
         if(OrderType()==0 || OrderType()==1){
          if (((MarketInfo(Symbol(),MODE_BID) - OrderOpenPrice()) / MarketInfo(Symbol(),MODE_POINT) )>=OverProtect && iRSI(NULL,0,3,PRICE_CLOSE,0)>90 && OrderType()==0) {
             OrderClose(OrderTicket(),OrderLots(),Bid,2,Violet);//Buy case
             }
             if (((OrderOpenPrice() - MarketInfo(Symbol(),MODE_ASK)) / MarketInfo(Symbol(),MODE_POINT))>=OverProtect && iRSI(NULL,0,3,PRICE_CLOSE,0)<10 && OrderType()==1){
             OrderClose(OrderTicket(),OrderLots(),Ask,2,Violet);}//Sell case
             }
             }
             }
              }
     
 
 
   if(Hour()>=StartHour && Minute()>=0 && Hour()<=EndHour){
      setPivot();
      if(OrdersTotal()>0){
      for(int k=0;k<=OrdersTotal()-1;k++){   
         OrderSelect(k, SELECT_BY_POS);
        if (OrderMagicNumber() != MagicNumber){
         if(OrderType()==0 || OrderType()==1 || OrderType()==2 || OrderType()==3 || OrderType()==4 || OrderType()==5){
      sendOrder();
       }
        }
         }
          }
          if (OrdersTotal()==0){
          sendOrder();
          }
     
   }
   
   if(Hour()==EndHour && Minute()==1 && OrdersTotal()>0){
      CloseAllOrder();
       }
       
   }
   
   
 
 
 
void setPivot(){
 
   high=iHigh(NULL,PERIOD_D1,1);
   low=iLow(NULL,PERIOD_D1,1);
   close=iClose(NULL,PERIOD_D1,1);
   pivot=NormalizeDouble((high+low+close)/3,4);
   buystart=pivot+0.0020;
   sellstart=pivot-0.0020;
  
}
 
double getLotSize(){
 
   double lot;
 
   if(UseMM){
      if(!Micro){
         lot = NormalizeDouble((Risk*AccountBalance())/1000,1);
         if(lot>MaxLots){lot=MaxLots;}
         else if(lot<MinLots){lot=MinLots;}
      }
      else{
         lot = NormalizeDouble((Risk*AccountBalance())/1000,2);
         if(lot>MaxLots){lot=MaxLots;}
         else if(lot<MinLots){lot=MinLots;}
      }
      
      return(lot);
   }
   else{
      return(FixedLots);
   }
}
 
void sendOrder(){
      if(TimeDayOfYear(TimeCurrent())!=DayOfLastBuyTrade && Ask==buystart && Ask>iBands(NULL,0,20,1,0,PRICE_CLOSE,MODE_UPPER,0)){
         ticket=OrderSend(Symbol(),OP_BUY,getLotSize(),Ask,2,buystart-sl,buystart+tp,"EA4",MagicNumber,0,CLR_NONE);     
        DayOfLastBuyTrade=TimeDayOfYear(TimeCurrent());
        if(ticket > 0)
         {
           if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) 
               Print("SELL order opened : ", OrderOpenPrice());
         }
       else 
           Print("Error opening SELL order : ", GetLastError()); 
          }
      
     
      
      else if(TimeDayOfYear(TimeCurrent())!=DayOfLastSellTrade && Bid==sellstart && Bid<iBands(NULL,0,20,1,0,PRICE_CLOSE,MODE_LOWER,0)){
         ticket=OrderSend(Symbol(),OP_SELL,getLotSize(),Bid,2,sellstart+sl,sellstart-tp,"EA4",MagicNumber,0,CLR_NONE);
         DayOfLastSellTrade=TimeDayOfYear(TimeCurrent());
         if(ticket > 0)
         {
           if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) 
               Print("SELL order opened : ", OrderOpenPrice());
         }
       else 
           Print("Error opening SELL order : ", GetLastError()); 
          }
          
      
     
      else{}
 
        
       
}
 
 
 
void CloseAllOrder()
{
      int total  = OrdersTotal();
      for (int cnt = OrdersTotal()-1 ; cnt < total ; cnt++)
      {
         OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
         if (OrderMagicNumber() == MagicNumber) {
            if(OrderType()==OP_BUY){
             OrderClose(OrderTicket(),OrderLots(),Bid,2,Violet);}
           
            if(OrderType()==OP_SELL) {  
             OrderClose(OrderTicket(),OrderLots(),Ask,2,Violet);}
            
             if(OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)  { 
             OrderDelete(OrderTicket());}
      }
  }
  
}
 
It's nothing to wary about. See UninitializeReason
 
Thanks very much!!
I have another question, why do I get so many unmatched data errors when this EA on backtester?
 
Well, I think I've not coded good. Today I was waiting for a sell. The EA dosen't open sell on demo account and dosen't open sell on backtester.
 
Search rules - unmatched data errors.
Reason: