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 ;)

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
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);
}