Code:
//+------------------------------------------------------------------+
//| SHARK_MACD_2021.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property icon "Shark.ico"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_level1 0
#property indicator_levelcolor clrDarkGray
#property indicator_levelstyle DRAW_ZIGZAG
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
extern string SHARK_MACD_PARAMETER;
extern int FAST_EMA = 12;
extern int SLOW_EMA = 26;
extern int MACD_SMA = 9;
input ENUM_APPLIED_PRICE Shark_Price = PRICE_CLOSE;
extern string Shark_MACD_ALERT;
extern bool PUSH_MOBILE_ALERT = true;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double SHARK_BUFFER_M[];
datetime time_alert;
int OnInit()
{
IndicatorBuffers(1);
SetIndexBuffer(0,SHARK_BUFFER_M);SetIndexLabel(0,NULL);SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3,clrSnow);
return(INIT_SUCCEEDED);
}
int start()
{
int counted_bars=IndicatorCounted(),limit,i,r;
if(counted_bars<0) return(-1);
limit=Bars-counted_bars;
for (i=limit, r=Bars-i-1; i>=0 && !IsStopped(); i--,r++)
{
SHARK_BUFFER_M[i] = iMACD(Symbol(),PERIOD_CURRENT,FAST_EMA,SLOW_EMA,MACD_SMA,Shark_Price,MODE_MAIN,i);
if(SHARK_BUFFER_M[i+1] < 0 && SHARK_BUFFER_M[i] > 0 )
{
if(i == 0 && Time[0] != time_alert) { myAlert("BUY"); time_alert = Time[0];}
}
if(SHARK_BUFFER_M[i+1] > 0 && SHARK_BUFFER_M[i] < 0 )
{
if(i == 0 && Time[0] != time_alert) { myAlert("SELL"); time_alert = Time[0];}
}
}
return(0);
}
void myAlert(string type)
{
if(type == "error")
{
Print(type+" | SHARK_MACD_2021 @ "+Symbol()+","+IntegerToString(Period()));
}
else if(type == "SELL")
{
if(PUSH_MOBILE_ALERT) SendNotification(type+" | SHARK_MACD_2021 @ "+Symbol()+","+IntegerToString(Period()));
}
else if(type == "BUY")
{
if(PUSH_MOBILE_ALERT) SendNotification(type+" | SHARK_MACD_2021 @ "+Symbol()+","+IntegerToString(Period()));
}
}