Unbalanced Parenthesis

 
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_color2 clrBlue
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
//--
enum YN
 {
   No,
   Yes
 };
//--
// 38 /17 / 11 == 320 / 4 / 2 == 120 / 15 / 9
//---- indicator parameters
input int               InpDepth = 62;         // Depth 
input int           InpDeviation = 15;         // Deviation
input int            InpBackstep = 9;         // Backstep
input YN                  alerts = Yes;        // Display Alerts / Messages (Yes) or (No)
input YN              EmailAlert = No;         // Email Alert (Yes) or (No)
input int             alertonbar = 3;          // Alert On Bar after Limit
input YN              sendnotify = No;         // Send Notification (Yes) or (No)
input YN             displayinfo = Yes;        // Display Trade Info
//---
//---- indicator buffers
double ZZBufferHi[];
double ZZBufferLo[];
//--
double 
   pricepos,
   latprice,
   lbwprice;
datetime 
   fbartime,
   pbartime,
   cbartime;
datetime 
   lat,lbw,
   alcb,alcs;
int za,zb;
int xzb,xzs;
int cur=5,prv=2;
int cmnt,pmnt;
static int fbar;
string posisi,
       sigpos,
       msgText;
string frtext;
string iname,ulimit;
static bool bull,bear;
//---------//


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
    IndicatorBuffers(2);
    SetIndexBuffer(0,ZZBufferHi);
    SetIndexBuffer(1,ZZBufferLo);
//---- drawing settings
    SetIndexStyle(0,DRAW_ARROW);
    SetIndexArrow(0,234);
    SetIndexStyle(1,DRAW_ARROW);
    SetIndexArrow(1,233);
//----
    //-- name for DataWindow
    SetIndexLabel(0,"Upper Limit");
    SetIndexLabel(1,"Lower Limit");
    //--
    SetIndexEmptyValue(0,0.0);
    SetIndexEmptyValue(1,0.0);
//---- indicator short name
    IndicatorDigits(_Digits);
    iname=WindowExpertName();
    IndicatorShortName(iname);
//---
   return(INIT_SUCCEEDED);
  }
//---------//
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
  
  
  
  
  

//----
    Comment("");
    ObjectsDeleteAll();
    GlobalVariablesDeleteAll();
//----
   return(0);
  }
//---------//
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
   //--
   int    shift,back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh=0.0,lastlow=0.0;
//--- check for history and inputs
   if(rates_total<InpDepth || InpBackstep>=InpDepth)
      return(0);
   //--
   for(shift=rates_total-InpDepth; shift>=0; shift--)
     {
      val=low[iLowest(_Symbol,0,MODE_LOW,InpDepth,shift)];
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((low[shift]-val)>(InpDeviation*_Point)) val=0.0;
         else
           {
            for(back=1; back<=InpBackstep; back++)
              {
               res=ZZBufferLo[shift+back];
               if((res!=0)&&(res>val)) ZZBufferLo[shift+back]=0.0; 
              }
           }
        } 
      ZZBufferLo[shift]=val;
      //--- high
      val=high[iHighest(_Symbol,0,MODE_HIGH,InpDepth,shift)];
      if(val==lasthigh) val=0.0;
      else 
        {
         lasthigh=val;
         if((val-high[shift])>(InpDeviation*_Point)) val=0.0;
         else
           {
            for(back=1; back<=InpBackstep; back++)
              {
               res=ZZBufferHi[shift+back];
               if((res!=0)&&(res<val)) ZZBufferHi[shift+back]=0.0; 
              } 
           }
        }
      ZZBufferHi[shift]=val;
     }
   //--
   // final cutting 
   lasthigh=-1; lasthighpos=-1;
   lastlow=-1;  lastlowpos=-1;
   //--
   for(shift=rates_total-InpDepth; shift>=0; shift--)
     {
      curlow=ZZBufferLo[shift];
      curhigh=ZZBufferHi[shift];
      if((curlow==0)&&(curhigh==0)) continue;
      //---
      if(curhigh!=0)
        {
         if(lasthigh>0) 
           {
            if(lasthigh<curhigh) ZZBufferHi[lasthighpos]=0;
            else ZZBufferHi[shift]=0;
           }
         //---
         if(lasthigh<curhigh || lasthigh<0)
           {
            lasthigh=curhigh;
            lasthighpos=shift;
           }
         lastlow=-1;
        }
      //----
      if(curlow!=0)
        {
         if(lastlow>0)
           {
            if(lastlow>curlow) ZZBufferLo[lastlowpos]=0;
            else ZZBufferLo[shift]=0;
           }
         //---
         if((curlow<lastlow)||(lastlow<0))
           {
            lastlow=curlow;
            lastlowpos=shift;
           } 
         lasthigh=-1;
        }
     }
   //--
   for(shift=rates_total-1; shift>=0; shift--)
     {
      if(shift>=rates_total-InpDepth) ZZBufferLo[shift]=0.0;
      else
        {
         res=ZZBufferHi[shift];
         if(res!=0.0) ZZBufferHi[shift]=res;
        }
     }
   //--
   for(int zi=360; zi>=0 && !IsStopped(); zi--)
     {
       if(high[zi]==ZZBufferHi[zi]) za=zi;
       if(low[zi]==ZZBufferLo[zi]) zb=zi;
     }
   //--
   if(za<zb && za>alertonbar && alcs!=time[za])
     {
       xzb=0;
       xzs++;
       cbartime=time[za];
       alcs=time[za];
       fbar=iBarShift(_Symbol,0,cbartime,false);
       pricepos=high[za];
       ulimit="Upper Limit_"+string(xzs);
       cur=-1;
     }
   if(za>zb && zb>alertonbar && alcb!=time[zb])
     {
       xzs=0;
       xzb++;
       cbartime=time[zb];
       alcb=time[zb];
       fbar=iBarShift(_Symbol,0,cbartime,false); 
       pricepos=low[zb];
       ulimit="Lower Limit_"+string(xzb);
       cur=1;
     }
   //--
   if((alerts==Yes||EmailAlert==Yes||sendnotify==Yes)&&(cur!=0 && cbartime!=pbartime)) Do_Alerts(cur,fbar);
   if(displayinfo==Yes) ChartComm();
   //---
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//---------//
//+------------------------------------------------------------------+

void Do_Alerts(int fcur,int fb)
  {
    //--
    cmnt=Minute();
    if(cmnt!=pmnt)
      {
        //--
        if(fcur==1)
          {
            if(xzb<3) frtext="Wait to ";
            else frtext="Please ";
            msgText="ZigZag Lower Limit Found"+" at bars: "+string(fb);
            posisi="Bullish"; 
            sigpos=frtext+"Open BUY Order";
            fbartime=iTime(_Symbol,0,fb);
            lbwprice=iLow(_Symbol,0,fb);
            lbw=fbartime;
            if(lat!=0) TrendLine(0,"ZZLineDn"+TimeToString(lat,TIME_DATE|TIME_MINUTES),OBJ_TREND,fbartime,lbwprice,lat,latprice,
                                 indicator_color1,indicator_style1,indicator_width1);
          }
        if(fcur==-1)
          {
            if(xzs<3) frtext="Wait to ";
            else frtext="Please ";
            msgText="ZigZag Upper Limit Found"+" at bars: "+string(fb);
            posisi="Bearish"; 
            sigpos=frtext+"Open SELL Order";
            fbartime=iTime(_Symbol,0,fb);
            latprice=iHigh(_Symbol,0,fb);
            lat=fbartime;
            if(lbw!=0) TrendLine(0,"ZZLineUp"+TimeToString(lbw,TIME_DATE|TIME_MINUTES),OBJ_TREND,fbartime,latprice,lbw,lbwprice,
                                 indicator_color2,indicator_style2,indicator_width2); 
          }
        //--
        if(fcur!=prv || fbartime>pbartime)
          {
            Print(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+
                  "\n--- at: ",TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);
            //--
            if(alerts==Yes)
              Alert(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+
                    "--- at: ",TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);
            //--
            if(EmailAlert==Yes) 
              SendMail(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+
                               "\n--- at: "+TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);
            //--
            if(sendnotify==Yes) 
              SendNotification(iname+"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+
                               "\n--- at: "+TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos); 
            //--
            prv=fcur;
            pbartime=fbartime;
          }
        //--
        pmnt=cmnt;
      }
    //--
    return;
    //---
  }
//---------//

string TF2Str(int period)
  {
   switch(period)
     {
       //--
       case PERIOD_M1: return("M1");
       case PERIOD_M5: return("M5");
       case PERIOD_M15: return("M15");
       case PERIOD_M30: return("M30");
       case PERIOD_H1: return("H1");
       case PERIOD_H4: return("H4");
       case PERIOD_D1: return("D1");
       case PERIOD_W1: return("W1");
       case PERIOD_MN1: return("MN");
       //--
     }
   return(string(period));
  }  
//---------//

string AccountMode() // function: to known account trade mode
   {
//----
//--- Demo, Contest or Real account 
   ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
 //---
   string trade_mode;
   //--
   switch(account_type) 
     { 
      case  ACCOUNT_TRADE_MODE_DEMO: 
         trade_mode="Demo"; 
         break; 
      case  ACCOUNT_TRADE_MODE_CONTEST: 
         trade_mode="Contest"; 
         break; 
      default: 
         trade_mode="Real"; 
         break; 
     }
   //--
   return(trade_mode);
//----
   } //-end AccountMode()
//---------//

void ChartComm() // function: write comments on the chart
  {
//----
   //--
   Comment("\n     :: Server Date Time : ",(string)Year(),".",(string)Month(),".",(string)Day(), "   ",TimeToString(TimeCurrent(),TIME_SECONDS), 
      "\n     ------------------------------------------------------------", 
      "\n      :: Broker             :  ",TerminalCompany(), 
      "\n      :: Acc. Name       :  ",AccountName(), 
      "\n      :: Acc, Number    :  ",(string)AccountNumber(),
      "\n      :: Acc,TradeMode :  ",AccountMode(),
      "\n      :: Acc. Leverage   :  1 : ",(string)AccountLeverage(), 
      "\n      :: Acc. Balance     :  ",DoubleToString(AccountBalance(),2),
      "\n      :: Acc. Equity       :  ",DoubleToString(AccountEquity(),2), 
      "\n     --------------------------------------------",
     "\n      :: Indicator Name  :  ",iname,
      "\n      :: Currency Pair    :  ",_Symbol,
      "\n      :: Current Spread  :  ",IntegerToString(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD),0),
      "\n      :: Signal Start       : at bar ",string(iBarShift(_Symbol,0,cbartime,false)),
      "\n      :: Last Limit          :  ",ulimit,
      "\n      :: Limit Price         :  ",DoubleToString(pricepos,_Digits), 
      "\n      :: Indicator Signal  :  ",posisi,
      "\n      :: Suggested         :  ",sigpos);
   //---
   ChartRedraw();
   return;
//----
  } //-end ChartComm()  
//---------//

//+------------------------------------------------------------------+
//|                         Draw Trend Line                          |
//+------------------------------------------------------------------+
void TrendLine(long     chartid,
               string   name,
               int      type,
               datetime time1,
               double   prc1,
               datetime time2,
               double   prc2,
               color    clr,
               int      style,
               int      width)
  {
//---
   ObjectDelete(chartid,name);
   ObjectCreate(chartid,name,type,0,time1,prc1,time2,prc2);
   ObjectSetInteger(chartid,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chartid,name,OBJPROP_WIDTH,width);
   ObjectSetInteger(chartid,name,OBJPROP_COLOR,clr);
   ObjectSetInteger(chartid,name,OBJPROP_BACK,false);
   ObjectSetInteger(chartid,name,OBJPROP_RAY_RIGHT,false);
   ObjectSetInteger(chartid,name,OBJPROP_ZORDER,0);
   ObjectSetInteger(chartid,name,OBJPROP_HIDDEN,true);
   //--
   ChartRedraw(0);
//---
  }  
//---------//

void start(){
string batas=”2018.12.01 00:00″; //Year, Month, Date, Expiration
int tt=StrToTime(batas);
if(TimeCurrent()>tt)
{
Alert(” License period expires Please Visit https://..........“);
return(0);
}

string hard_accnt = “210220”; //The Name Must be Correct in the Alphabet, Big Small Influential letters
string accnt = AccountName();

if (accnt != hard_accnt)

{
Alert (“You Can Not Use this Account Name (” + accnt + “) With This Program! Please Contact 855055964436 to Get Licence”);
return(0);
}

............................................................................................................................

2 error message here, I can not fix, please help, thank you.Places with error red.Places with bugs in red void start section






Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • www.mql5.com
Ask questions on technical analysis, discuss trading systems and improve your MQL5 programming skills to develop your own trading strategies. Communicate and share your experience with traders from anywhere in the world, answer questions and help beginners — MQL5.community is developing along with you. Unbalanced Parenthesis I know it's...
 
error
 
  • you are using OnCalculate() and start() in the same indicator. You can not do that
  • add one "}" at the end of the code
 
Engin Bindas:

some comments:

- check the “ symbol, maybe the correct is ". For example string hard_accnt = “210220”, Alert(” License period expires Please Visit https://..........“), etc ...

- do you mean OnStart instead of start()?  

- your start function is void, so use return instead of return(0)

- there is a missing } in the start function.


try this:


#property version   "1.00"

#property strict

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 clrRed

#property indicator_style1 STYLE_SOLID

#property indicator_width1 2

#property indicator_color2 clrBlue

#property indicator_style2 STYLE_SOLID

#property indicator_width2 2

//--

enum YN

 {

   No,

   Yes

 };

//--

// 38 /17 / 11 == 320 / 4 / 2 == 120 / 15 / 9

//---- indicator parameters

input int               InpDepth = 62;         // Depth 

input int           InpDeviation = 15;         // Deviation

input int            InpBackstep = 9;         // Backstep

input YN                  alerts = Yes;        // Display Alerts / Messages (Yes) or (No)

input YN              EmailAlert = No;         // Email Alert (Yes) or (No)

input int             alertonbar = 3;          // Alert On Bar after Limit

input YN              sendnotify = No;         // Send Notification (Yes) or (No)

input YN             displayinfo = Yes;        // Display Trade Info

//---

//---- indicator buffers

double ZZBufferHi[];

double ZZBufferLo[];

//--

double 

   pricepos,

   latprice,

   lbwprice;

datetime 

   fbartime,

   pbartime,

   cbartime;

datetime 

   lat,lbw,

   alcb,alcs;

int za,zb;

int xzb,xzs;

int cur=5,prv=2;

int cmnt,pmnt;

static int fbar;

string posisi,

       sigpos,

       msgText;

string frtext;

string iname,ulimit;

static bool bull,bear;

//---------//



//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {

//--- indicator buffers mapping

    IndicatorBuffers(2);

    SetIndexBuffer(0,ZZBufferHi);

    SetIndexBuffer(1,ZZBufferLo);

//---- drawing settings

    SetIndexStyle(0,DRAW_ARROW);

    SetIndexArrow(0,234);

    SetIndexStyle(1,DRAW_ARROW);

    SetIndexArrow(1,233);

//----

    //-- name for DataWindow

    SetIndexLabel(0,"Upper Limit");

    SetIndexLabel(1,"Lower Limit");

    //--

    SetIndexEmptyValue(0,0.0);

    SetIndexEmptyValue(1,0.0);

//---- indicator short name

    IndicatorDigits(_Digits);

    iname=WindowExpertName();

    IndicatorShortName(iname);

//---

   return(INIT_SUCCEEDED);

  }

//---------//

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

  

  

  

  

  


//----

    Comment("");

    ObjectsDeleteAll();

    GlobalVariablesDeleteAll();

//----

   return(0);

  }

//---------//

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

//---

   ArraySetAsSeries(high,true);

   ArraySetAsSeries(low,true);

   ArraySetAsSeries(time,true);

   //--

   int    shift,back,lasthighpos,lastlowpos;

   double val,res;

   double curlow,curhigh,lasthigh=0.0,lastlow=0.0;

//--- check for history and inputs

   if(rates_total<InpDepth || InpBackstep>=InpDepth)

      return(0);

   //--

   for(shift=rates_total-InpDepth; shift>=0; shift--)

     {

      val=low[iLowest(_Symbol,0,MODE_LOW,InpDepth,shift)];

      if(val==lastlow) val=0.0;

      else 

        { 

         lastlow=val; 

         if((low[shift]-val)>(InpDeviation*_Point)) val=0.0;

         else

           {

            for(back=1; back<=InpBackstep; back++)

              {

               res=ZZBufferLo[shift+back];

               if((res!=0)&&(res>val)) ZZBufferLo[shift+back]=0.0; 

              }

           }

        } 

      ZZBufferLo[shift]=val;

      //--- high

      val=high[iHighest(_Symbol,0,MODE_HIGH,InpDepth,shift)];

      if(val==lasthigh) val=0.0;

      else 

        {

         lasthigh=val;

         if((val-high[shift])>(InpDeviation*_Point)) val=0.0;

         else

           {

            for(back=1; back<=InpBackstep; back++)

              {

               res=ZZBufferHi[shift+back];

               if((res!=0)&&(res<val)) ZZBufferHi[shift+back]=0.0; 

              } 

           }

        }

      ZZBufferHi[shift]=val;

     }

   //--

   // final cutting 

   lasthigh=-1; lasthighpos=-1;

   lastlow=-1;  lastlowpos=-1;

   //--

   for(shift=rates_total-InpDepth; shift>=0; shift--)

     {

      curlow=ZZBufferLo[shift];

      curhigh=ZZBufferHi[shift];

      if((curlow==0)&&(curhigh==0)) continue;

      //---

      if(curhigh!=0)

        {

         if(lasthigh>0) 

           {

            if(lasthigh<curhigh) ZZBufferHi[lasthighpos]=0;

            else ZZBufferHi[shift]=0;

           }

         //---

         if(lasthigh<curhigh || lasthigh<0)

           {

            lasthigh=curhigh;

            lasthighpos=shift;

           }

         lastlow=-1;

        }

      //----

      if(curlow!=0)

        {

         if(lastlow>0)

           {

            if(lastlow>curlow) ZZBufferLo[lastlowpos]=0;

            else ZZBufferLo[shift]=0;

           }

         //---

         if((curlow<lastlow)||(lastlow<0))

           {

            lastlow=curlow;

            lastlowpos=shift;

           } 

         lasthigh=-1;

        }

     }

   //--

   for(shift=rates_total-1; shift>=0; shift--)

     {

      if(shift>=rates_total-InpDepth) ZZBufferLo[shift]=0.0;

      else

        {

         res=ZZBufferHi[shift];

         if(res!=0.0) ZZBufferHi[shift]=res;

        }

     }

   //--

   for(int zi=360; zi>=0 && !IsStopped(); zi--)

     {

       if(high[zi]==ZZBufferHi[zi]) za=zi;

       if(low[zi]==ZZBufferLo[zi]) zb=zi;

     }

   //--

   if(za<zb && za>alertonbar && alcs!=time[za])

     {

       xzb=0;

       xzs++;

       cbartime=time[za];

       alcs=time[za];

       fbar=iBarShift(_Symbol,0,cbartime,false);

       pricepos=high[za];

       ulimit="Upper Limit_"+string(xzs);

       cur=-1;

     }

   if(za>zb && zb>alertonbar && alcb!=time[zb])

     {

       xzs=0;

       xzb++;

       cbartime=time[zb];

       alcb=time[zb];

       fbar=iBarShift(_Symbol,0,cbartime,false); 

       pricepos=low[zb];

       ulimit="Lower Limit_"+string(xzb);

       cur=1;

     }

   //--

   if((alerts==Yes||EmailAlert==Yes||sendnotify==Yes)&&(cur!=0 && cbartime!=pbartime)) Do_Alerts(cur,fbar);

   if(displayinfo==Yes) ChartComm();

   //---

//--- return value of prev_calculated for next call

   return(rates_total);

  }

//---------//

//+------------------------------------------------------------------+


void Do_Alerts(int fcur,int fb)

  {

    //--

    cmnt=Minute();

    if(cmnt!=pmnt)

      {

        //--

        if(fcur==1)

          {

            if(xzb<3) frtext="Wait to ";

            else frtext="Please ";

            msgText="ZigZag Lower Limit Found"+" at bars: "+string(fb);

            posisi="Bullish"; 

            sigpos=frtext+"Open BUY Order";

            fbartime=iTime(_Symbol,0,fb);

            lbwprice=iLow(_Symbol,0,fb);

            lbw=fbartime;

            if(lat!=0) TrendLine(0,"ZZLineDn"+TimeToString(lat,TIME_DATE|TIME_MINUTES),OBJ_TREND,fbartime,lbwprice,lat,latprice,

                                 indicator_color1,indicator_style1,indicator_width1);

          }

        if(fcur==-1)

          {

            if(xzs<3) frtext="Wait to ";

            else frtext="Please ";

            msgText="ZigZag Upper Limit Found"+" at bars: "+string(fb);

            posisi="Bearish"; 

            sigpos=frtext+"Open SELL Order";

            fbartime=iTime(_Symbol,0,fb);

            latprice=iHigh(_Symbol,0,fb);

            lat=fbartime;

            if(lbw!=0) TrendLine(0,"ZZLineUp"+TimeToString(lbw,TIME_DATE|TIME_MINUTES),OBJ_TREND,fbartime,latprice,lbw,lbwprice,

                                 indicator_color2,indicator_style2,indicator_width2); 

          }

        //--

        if(fcur!=prv || fbartime>pbartime)

          {

            Print(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+

                  "\n--- at: ",TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);

            //--

            if(alerts==Yes)

              Alert(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+

                    "--- at: ",TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);

            //--

            if(EmailAlert==Yes) 

              SendMail(iname,"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+

                               "\n--- at: "+TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos);

            //--

            if(sendnotify==Yes) 

              SendNotification(iname+"--- "+_Symbol+" "+TF2Str(_Period)+": "+msgText+

                               "\n--- at: "+TimeToString(iTime(_Symbol,0,0),TIME_DATE|TIME_MINUTES)+" - "+sigpos); 

            //--

            prv=fcur;

            pbartime=fbartime;

          }

        //--

        pmnt=cmnt;

      }

    //--

    return;

    //---

  }

//---------//


string TF2Str(int period)

  {

   switch(period)

     {

       //--

       case PERIOD_M1: return("M1");

       case PERIOD_M5: return("M5");

       case PERIOD_M15: return("M15");

       case PERIOD_M30: return("M30");

       case PERIOD_H1: return("H1");

       case PERIOD_H4: return("H4");

       case PERIOD_D1: return("D1");

       case PERIOD_W1: return("W1");

       case PERIOD_MN1: return("MN");

       //--

     }

   return(string(period));

  }  

//---------//


string AccountMode() // function: to known account trade mode

   {

//----

//--- Demo, Contest or Real account 

   ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);

 //---

   string trade_mode;

   //--

   switch(account_type) 

     { 

      case  ACCOUNT_TRADE_MODE_DEMO: 

         trade_mode="Demo"; 

         break; 

      case  ACCOUNT_TRADE_MODE_CONTEST: 

         trade_mode="Contest"; 

         break; 

      default: 

         trade_mode="Real"; 

         break; 

     }

   //--

   return(trade_mode);

//----

   } //-end AccountMode()

//---------//


void ChartComm() // function: write comments on the chart

  {

//----

   //--

   Comment("\n     :: Server Date Time : ",(string)Year(),".",(string)Month(),".",(string)Day(), "   ",TimeToString(TimeCurrent(),TIME_SECONDS), 

      "\n     ------------------------------------------------------------", 

      "\n      :: Broker             :  ",TerminalCompany(), 

      "\n      :: Acc. Name       :  ",AccountName(), 

      "\n      :: Acc, Number    :  ",(string)AccountNumber(),

      "\n      :: Acc,TradeMode :  ",AccountMode(),

      "\n      :: Acc. Leverage   :  1 : ",(string)AccountLeverage(), 

      "\n      :: Acc. Balance     :  ",DoubleToString(AccountBalance(),2),

      "\n      :: Acc. Equity       :  ",DoubleToString(AccountEquity(),2), 

      "\n     --------------------------------------------",

     "\n      :: Indicator Name  :  ",iname,

      "\n      :: Currency Pair    :  ",_Symbol,

      "\n      :: Current Spread  :  ",IntegerToString(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD),0),

      "\n      :: Signal Start       : at bar ",string(iBarShift(_Symbol,0,cbartime,false)),

      "\n      :: Last Limit          :  ",ulimit,

      "\n      :: Limit Price         :  ",DoubleToString(pricepos,_Digits), 

      "\n      :: Indicator Signal  :  ",posisi,

      "\n      :: Suggested         :  ",sigpos);

   //---

   ChartRedraw();

   return;

//----

  } //-end ChartComm()  

//---------//


//+------------------------------------------------------------------+

//|                         Draw Trend Line                          |

//+------------------------------------------------------------------+

void TrendLine(long     chartid,

               string   name,

               int      type,

               datetime time1,

               double   prc1,

               datetime time2,

               double   prc2,

               color    clr,

               int      style,

               int      width)

  {

//---

   ObjectDelete(chartid,name);

   ObjectCreate(chartid,name,type,0,time1,prc1,time2,prc2);

   ObjectSetInteger(chartid,name,OBJPROP_STYLE,style);

   ObjectSetInteger(chartid,name,OBJPROP_WIDTH,width);

   ObjectSetInteger(chartid,name,OBJPROP_COLOR,clr);

   ObjectSetInteger(chartid,name,OBJPROP_BACK,false);

   ObjectSetInteger(chartid,name,OBJPROP_RAY_RIGHT,false);

   ObjectSetInteger(chartid,name,OBJPROP_ZORDER,0);

   ObjectSetInteger(chartid,name,OBJPROP_HIDDEN,true);

   //--

   ChartRedraw(0);

//---

  }  

//---------//


void OnStart()

{

   string batas="2018.12.01 00:00"; //Year, Month, Date, Expiration

   int tt=StrToTime(batas);

   if(TimeCurrent()>tt)

   {

      Alert("License period expires Please Visit https://..........");

      return;

   }


   string hard_accnt = "210220"; //The Name Must be Correct in the Alphabet, Big Small Influential letters

   string accnt = AccountName();


   if (accnt != hard_accnt)

   {

      Alert ("You Can Not Use this Account Name (" + accnt + ") With This Program! Please Contact 855055964436 to Get Licence");

      return;

   }

}

 
Thank you sir. Problem solved.
 

There is no error in the account but although the time and the account are different the program is running, I think there is error in the code


licence date :2018.12.01 


Indıkator is work.should not work normally

 
Pease help,Thanks.
Reason: