syntax SendMail() - wrong parameters count

 

hi coders,

i need to give send e-mail alert for below code. I add Sendmail() function but when i compiled i got wrong parameters count. I'm new programmer so please help me xD look at this code what is wrong ;)

//+------------------------------------------------------------------+
//|                                              #MTF_HULL_TREND.mq4 |
//|------------------------------------------------------------------+

#property indicator_separate_window
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_width1 4
#property indicator_width2 4

//---- input parameters
/*************************************************************************
PERIOD_M1   1
PERIOD_M5   5
PERIOD_M15  15
PERIOD_M30  30
PERIOD_H1   60
PERIOD_H4   240
PERIOD_D1   1440
PERIOD_W1   10080
PERIOD_MN1  43200
You must use the numeric value of the timeframe that you want to use
when you set the TimeFrame' value with the indicator inputs.
---------------------------------------*/

extern int    TimeFrame = 0;
extern bool Alertsound = true;
extern bool Mail = true;

#property indicator_buffers 2
//---- input parameters
//---- buffers
double UpBuffer[];
double DnBuffer[];
double alertBar;
int last;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int init()
  {
   
//---- indicator line
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_HISTOGRAM);
 
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);
 
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);

   SetIndexLabel(0,"Up Signal");
   SetIndexLabel(1,"Down Signal");
//---- name for DataWindow and indicator subwindow label   

   switch(TimeFrame)
   {
      case 1 : string TimeFrameStr="Period_M1"; break;
      case 5 : TimeFrameStr="Period_M5"; break;
      case 15 : TimeFrameStr="Period_M15"; break;
      case 30 : TimeFrameStr="Period_M30"; break;
      case 60 : TimeFrameStr="Period_H1"; break;
      case 240 : TimeFrameStr="Period_H4"; break;
      case 1440 : TimeFrameStr="Period_D1"; break;
      case 10080 : TimeFrameStr="Period_W1"; break;
      case 43200 : TimeFrameStr="Period_MN1"; break;
      default : TimeFrameStr="Current Timeframe";
   }
   IndicatorShortName("#MTF_SEFC084 ("+TimeFrameStr+")");

  }

//----

   return(0);
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

int start()
  {

   datetime TimeArray[];
   int    i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

   ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
   
   limit= Bars-1;
   for(i=0,y=0;i<limit;i++)
   {
   if (Time[i]<TimeArray[y]) y++;

/***********************************************************   
   Add your main indicator loop below.  You can reference an existing
      indicator with its iName  or iCustom.
   Rule 1:  Add extern inputs above for all neccesary values   
   Rule 2:  Use 'TimeFrame' for the indicator time frame
   Rule 3:  Use 'y' for your indicator's shift value
 **********************************************************/  

      UpBuffer[i]=iCustom(Symbol(),TimeFrame,"SEFC084",1,y);
      DnBuffer[i]=iCustom(Symbol(),TimeFrame,"SEFC084",2,y);
      if(last == 0 && UpBuffer[i] > DnBuffer[i] && UpBuffer[i] != EMPTY_VALUE && DnBuffer[i] != EMPTY_VALUE) last = 1;
      if(last == 0 && UpBuffer[i] < DnBuffer[i] && UpBuffer[i] != EMPTY_VALUE && DnBuffer[i] != EMPTY_VALUE) last = 2;

      if(last == 1 && UpBuffer[i] > DnBuffer[i] && UpBuffer[i] != EMPTY_VALUE && DnBuffer[i] != EMPTY_VALUE && Alertsound == true && Mail == true && Bars>alertBar) {Alert("#MTF SEFC084 Down " + Symbol() + " on the " +  Period() + " minute chart");alertBar = Bars;last = 2;SendMail("down");}
      if(last == 2 && UpBuffer[i] < DnBuffer[i] && UpBuffer[i] != EMPTY_VALUE && DnBuffer[i] != EMPTY_VALUE && Alertsound == true && Mail == true && Bars>alertBar) {Alert("#MTF SEFC084 going Up " + Symbol() + " on the " + Period() + " minute chart");alertBar = Bars;last = 1;SendMail("up");}
      }
   return(0);
  }


 
SendMail("up");

RTFM! How many parameters does SendMail take? How many did you supply?

 

Check the link WHRoader posted:

 

void SendMail(  string subject, string some_text)

everything in the brackets separated by commons is parameter you have to set (or in some case they can take a default value if you leave them blank)

So in this case you need to tell SendMail two parameters, both of them are strings... the first one is the subject of the email, and the second is the content of the email.

In future when you get this problem in metaeditor, put the cursor on the problem function and press F1, the help will show you everything you need to fix the problem.

 
thx very much ;)