Semicolon expected

 

Not sure whats going on, adding one makes it an empty controlled statement. Help please.


double lastClose;
//+------------------------------------------------------------------+
//insuring its a new candle function
//+------------------------------------------------------------------+
bool IsNewCandle()
{
   
        
        if (Close[1] == lastClose){
        return (false);
        }
        
        if(Close[1]!=lastClose){
        lastClose=Close[1];
        return(true);
        }
        return(false);
}


int tmtrade;
int         setPattern = 0;
static datetime      prevtime = 0;
double      Doji_Star_Ratio = 0;
double      Doji_MinLength = 0;
double      Star_MinLength = 0;
int         CumOffset = 0;  
double      Piercing_Line_Ratio = 0;
int         Engulfing_Length = 0;
int         CandleLength = 0;
double      Candle_WickBody_Percent = 0;
int         Piercing_Candle_Length = 0; 
double      AvgRange=0;
      
     
double      BodyHigh, BodyLow;     
double      O = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);
double      O1 = NormalizeDouble(iOpen(Symbol(), Period(), 2), Digits);
double      O2 = NormalizeDouble(iOpen(Symbol(), Period(), 3), Digits);
double      H = NormalizeDouble(iHigh(Symbol(), Period(), 1), Digits);
double      H1 = NormalizeDouble(iHigh(Symbol(), Period(), 2), Digits);
double      H2 = NormalizeDouble(iHigh(Symbol(), Period(), 3), Digits);
double      H3 = NormalizeDouble(iHigh(Symbol(), Period(), 4), Digits);
double      L = NormalizeDouble(iLow(Symbol(), Period(), 1), Digits);
double      L1 = NormalizeDouble(iLow(Symbol(), Period(), 2), Digits);
double      L2 =NormalizeDouble(iLow(Symbol(), Period(), 3), Digits);
double     L3 = NormalizeDouble(iLow(Symbol(), Period(), 4), Digits);
double      C = NormalizeDouble(iClose(Symbol(), Period(), 1), Digits);
double      C1 = NormalizeDouble(iClose(Symbol(), Period(), 2), Digits);
double      C2 = NormalizeDouble(iClose(Symbol(), Period(), 3), Digits);
double      C3 = NormalizeDouble(iClose(Symbol(), Period(), 4), Digits);
double      CL = (H-L);
double      CL1 = (H1-L1);
double      CL2 = (H2-L2);
double      BL = (O-C);
double      UW = (H-BodyHigh);
double      LW = (BodyLow-L);
double      BLa = MathAbs(BL);
double      BL90 = BLa*Candle_WickBody_Percent;

 

void tmsignal(){ 


      if (O>C) {
         BodyHigh = O;
         BodyLow = C;  }
      else {
         BodyHigh = C;
         BodyLow = O; }
         
         
  tmtrade = 0;       
// Bearish Patterns  
 
      // Check for Bearish Shooting ShootStar

      if ((H>=H1)&&(H>H2)&&(H>H3))  {
      if (((UW/2)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/3)<=LW)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/)}{tmtrade=1;}

      
      // Check for Bearish Shooting ShootStar
      
      if ((H>=H1)&&(H>H2)&&(H>H3))  {
         if (((UW/3)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/4)<=LW))}{tmtrade=1;} 

      // Check for Bearish Shooting ShootStar
      
      if ((H>=H1)&&(H>H2)&&(H>H3))  {
         if (((UW/4)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point)))}{tmtrade=1;} 

      // Check for Evening Star pattern
     
      if ((H>=H1)&&(H1>H2)&&(H1>H3))  {
         if (/*(L>O1)&&*/(BLa<(Star_Body_Length*Point))&&(C2>O2)&&(!O==C)&&((C2-O2)/(0.001+H2-L2)>Doji_Star_Ratio)/*&&(C2<O1)*/&&(C1>O1)/*&&((H1-L1)>(3*(C1-O1)))*/&&(O>C)&&(CL>=(Star_MinLength*Point)))}{tmtrade=1;}  

      // Check for Evening Doji Star pattern
     
      if ((H>=H1)&&(H1>H2)&&(H1>H3))  {
         if (/*(L>O1)&&*/(O==C)&&((C2>O2)&&(C2-O2)/(0.001+H2-L2)>Doji_Star_Ratio)/*&&(C2<O1)*/&&(C1>O1)/*&&((H1-L1)>(3*(C1-O1)))*/&&(CL>=(Doji_MinLength*Point)))}{tmtrade=1;} 

      // Check for a Dark Cloud Cover pattern
      
      if ((C1>O1)&&(((C1+O1)/2)>C)&&(O>C)/*&&(O>C1)*/&&(C>O1)&&((O-C)/(0.001+(H-L))>Piercing_Line_Ratio)&&((CL>=Piercing_Candle_Length*Point))){tmtrade=1;}

      // Check for Bearish Engulfing pattern
   
      if ((C1>O1)&&(O>C)&&(O>=C1)&&(O1>=C)&&((O-C)>(C1-O1))&&(CL>=(Engulfing_Length*Point))){tmtrade=1;}

 // End of Bearish Patterns
   
 // Bullish Patterns
   
      // Check for Bullish Hammer
       
      if ((L<=L1)&&(L<L2)&&(L<L3))  {
      if (((LW/2)>UW)&&(LW>BL90)&&(CL>=(CandleLength*Point))&&(O!=C)&&((LW/3)<=UW)&&((LW/4)<=UW))}{tmtrade=1;}

      // Check for Bullish Hammer
       
      if ((L<=L1)&&(L<L2)&&(L<L3))  {
         if (((LW/3)>UW)&&(LW>BL90)&&(CL>=(CandleLength*Point))&&(O!=C)&&((LW/4)<=UW))}{tmtrade=1;}

      // Check for Bullish Hammer
       
      if ((L<=L1)&&(L<L2)&&(L<L3))  {
         if (((LW/4)>UW)&&(LW>BL90)&&(CL>=(CandleLength*Point))&&(O!=C))}{tmtrade=1;}     

     // Check for Morning Star
     
      if ((L<=L1)&&(L1<L2)&&(L1<L3))  {
      if (/*(H1<(BL/2))&&*/(BLa<(Star_Body_Length*Point))&&(!O==C)&&((O2>C2)&&((O2-C2)/(0.001+H2-L2)>Doji_Star_Ratio))/*&&(C2>O1)*/&&(O1>C1)/*&&((H1-L1)>(3*(C1-O1)))*/&&(C>O)&&(CL>=(Star_MinLength*Point)))}{tmtrade=1;}

      // Check for Morning Doji Star
     
      if ((L<=L1)&&(L1<L2)&&(L1<L3))  {
      if (/*(H1<(BL/2))&&*/(O==C)&&((O2>C2)&&((O2-C2)/(0.001+H2-L2)>Doji_Star_Ratio))/*&&(C2>O1)*/&&(O1>C1)/*&&((H1-L1)>(3*(C1-O1)))*/&&(CL>=(Doji_MinLength*Point)))}{tmtrade=1;}

      // Check for Piercing Line pattern
    
      if ((C1<O1)&& (((O1+C1)/2)<C)&&(O<C)&&((C-O)/(0.001+(H-L))>Piercing_Line_Ratio)&&(CL>=(Piercing_Candle_Length*Point))){tmtrade=1;}  

      // Check for Bullish Engulfing pattern
      if ((O1>C1)&&(C>O)&&(C>=O1)&&(C1>=O)&&((C-O)>(O1-C1))&&(CL>=(Engulfing_Length*Point))){tmtrade=1;}
      
      }
 
      if ((H>=H1)&&(H>H2)&&(H>H3))  {
      if (((UW/2)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/3)<=LW)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/)}{tmtrade=1;}

Remove the highlighted } {

Do the same where you are also getting the error repeated

 
Keith Watford:

Remove the highlighted } {

Do the same where you are also getting the error repeated

Thank you, easy fix