Error when compiling

To add comments, please log in or register
frappemocha
26
frappemocha  
//+------------------------------------------------------------------+
//|                                         EMA-Crossover_Signal.mq4 |
//|         Copyright © 2005, Jason Robinson (jnrtrading)            |
//|                   http://www.jnrtading.co.uk                     |
//+------------------------------------------------------------------+

/*
  +------------------------------------------------------------------+
  | Allows you to enter two ema periods and it will then show you at |
  | Which point they crossed over. It is more usful on the shorter   |
  | periods that get obscured by the bars / candlesticks and when    |
  | the zoom level is out. Also allows you then to remove the emas   |
  | from the chart. (emas are initially set at 5 and 6)              |
  +------------------------------------------------------------------+
*/   
#property copyright "Copyright © 2005, Jason Robinson (jnrtrading)"
#property link      "http://www.jnrtrading.co.uk"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 SeaGreen
#property indicator_color2 Red
#define INDICATOR_NAME "EMA Crossover Signal"

double CrossUp[];
double CrossDown[];
extern int FasterEMA = 4;
extern int SlowerEMA = 8;
extern bool SoundON=true;
double alertTag;
double control=2147483647;
input bool     EnableAlert       = true;
input bool     EnableEmail       = true;
input bool     EnableSound       = true;
input bool     EnablePushNotification = true;
input string   SoundFile         =   "alert.wav";
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY,3);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY,3);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 0; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
          CrossDown[i] = High[i] + Range*0.5;
      }
        if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0])
        {
         Alert("EMA Cross Trend going Down on ",Symbol()," ",Period());
        alertTag = Time[0];
      }
{
      SendInfo(INDICATOR_NAME, StringConcatenate(INDICATOR_NAME, " ", Symbol(), " ", TfToString(Period()), " 20 cross above 50 "));
      repeat = false;
   }
        if (SoundON==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0])
        {
       Alert("EMA Cross Trend going Up on ",Symbol()," ",Period());
        alertTag = Time[0];
        } 
{
      SendInfo(INDICATOR_NAME, StringConcatenate(INDICATOR_NAME, " ", Symbol(), " ", TfToString(Period()), " 20 cross below 50 "));
      repeat = false;
   }
  }
//+------------------------------------------------------------------+

datetime g_last_signal = 0;

void SendInfo(string subject, string msg)
{
    if( g_last_signal == Time[0] )
        return;
    g_last_signal = Time[0];
    if( EnableAlert )
        Alert(msg);
    if( EnableSound )
        PlaySound(SoundFile);
    if( EnableEmail )
        SendMail(subject, msg);
    if( EnablePushNotification )
        SendNotification(msg);
}
string TfToString(int timeframe)
{
   string retn = StringFormat("%d", timeframe);
   
   switch(timeframe)
   {
      case PERIOD_M1:
         retn="M1";
         break;
      case PERIOD_M2:
         retn="M2";
         break;
      case PERIOD_M5:
         retn="M5";
         break;
      case PERIOD_M15:
         retn="M15";
         break;
      case PERIOD_M30:
         retn="M30";
         break;
      case PERIOD_H1:
         retn="H1";
         break;
      case PERIOD_H4:
         retn="H4";
         break;
      case PERIOD_D1:
         retn="D1";
         break;
      case PERIOD_W1:
         retn="W1";
         break;
      case PERIOD_MN1:
         retn="MN1";
         break;
      default:
         break;
   }
   
   return(0);
}

Hi, anyone can help me with the code? I'm getting this error. I get this error when i tried to edit this code to include the notification features. 

Files:
1.PNG 8 kb
Mladen Rakic
105389
Mladen Rakic  
frappemocha:

Hi, anyone can help me with the code? I'm getting this error. I get this error when i tried to edit this code to include the notification features. 

That is because you pasted code from another indicator into that indicator

Undo what you have pasted and then add the part you wish but with proper "{}" pairing


PS: you are aware that that indicator is a bad repainter, aren't you?
To add comments, please log in or register