Price Data Components
Indicators Used
Miscellaneous
2
Views
0
Downloads
0
Favorites
Doda-EMA
//+------------------------------------------------------------------+
//| Doda-EMA.mq4 |
//| Copyright © 2010, Gopal Krishan Doda |
//| http://www.DodaCharts.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Gopal Krishan Doda"
#property link "http://www.DodaCharts.com"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
//extern int 0 = 0;
double myadxvalue;
double ema7, ema14, ema21;
string emaresult, emaresultexit;
bool EMABuyAlert=false, EMASellAlert=false, EMAExitLong=false, EMAExitShort=false, EMABuy = false, EMASell = false, EMABuyExit=False, EMASellExit=False;
double myatr, mystd,EMAtempvar,EMAtempvarexit;
string atrresult;
int counted_bars;
int ii;
int EMALastSignal;
double mainvar;
datetime adxtime;
int init()
{
//---- indicators
//----
ObjectCreate("myema",OBJ_LABEL,0,0,0);
ObjectCreate("myemaexit",OBJ_LABEL,0,0,0);
ObjectCreate("mywebsite",OBJ_LABEL,0,0,0);
//ObjectCreate("myatr",OBJ_LABEL,0,0,0);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("myema");
ObjectDelete("myemaexit");
ObjectDelete("mywebsite");
//ObjectDelete("myatr");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
string MyMessage1 = Symbol()+" M"+Period();
int counted_bars=IndicatorCounted();
//----
counted_bars=IndicatorCounted();
ii = Bars - 1;
counted_bars = IndicatorCounted();
if ( counted_bars > 1 )
ii = Bars - counted_bars - 1;
while ( ii >= 1 )
{
ema7 = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,ii);
ema14 = iMA(NULL,0,14,0,MODE_EMA,PRICE_CLOSE,ii);
ema21 = iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,ii);
//mainvar = iStochastic(NULL,PERIOD_M30,20,10,20,MODE_SMMA,1,MODE_SIGNAL,ii);
if ( ema7 > ema14 && ema7 > ema21 && ema14 > ema21 && EMABuy==False )
{
emaresult = "Go Long @";
EMAtempvar = iClose(NULL,0,ii);
adxtime = iTime(NULL,0,ii);
EMALastSignal = 1;
EMABuy = True;
EMASell = False;
}
////
/// when to exit long
if ( ema14 > ema7 && ema14 > ema21 && ema21 > ema7 && EMABuyExit==False )
{
emaresultexit = "Exit long @";
EMAtempvarexit = iClose(NULL,0,ii);
EMALastSignal = 11;
EMABuyExit = True;
EMASellExit = False;
}
///
// when to go short
if ( ema21 > ema7 && ema21 > ema14 && ema14 > ema7 && EMASell==False )
{
emaresult = "Go Short @";
EMAtempvar = iClose(NULL,0,ii);
adxtime = iTime(NULL,0,ii);
EMALastSignal = 2;
EMASell = True;
EMABuy = False;
}
//
//when to exit short
if ( ema7 > ema14 && ema7 < ema21 && EMASellExit==False )
{
emaresultexit = "Exit short @";
EMAtempvarexit = iClose(NULL,0,ii);
EMALastSignal = 22;
EMASellExit = true;
EMABuyExit = False;
}
ii--;
} //end of while loop
/// when to go long
if (EMALastSignal==1 && EMABuyAlert==false)
{
Alert(MyMessage1+" :Doda-EMA Says Buy"+" at "+DoubleToStr(EMAtempvar ,Digits));
EMABuyAlert=true;
EMASellAlert=false;
EMAExitLong=false;
EMAExitShort=false;
}
if (EMALastSignal==11 && EMAExitLong==false)
{
Alert(MyMessage1+" :Doda-EMA Says Exit Buy"+" at "+DoubleToStr(EMAtempvarexit,Digits));
EMABuyAlert=false;
EMASellAlert=false;
EMAExitLong=true;
EMAExitShort=false;
}
if (EMALastSignal==2 && EMASellAlert==false )
{
Alert(MyMessage1+" :Doda-EMA Says Sell"+" at "+DoubleToStr(EMAtempvar,Digits));
EMABuyAlert=false;
EMASellAlert=true;
EMAExitLong=false;
EMAExitShort=false;
}
if (EMALastSignal==22 && EMAExitShort==false )
{
Alert(MyMessage1+" :Doda-EMA Says Exit Sell"+" at "+DoubleToStr(EMAtempvarexit,Digits));
EMABuyAlert=false;
EMASellAlert=false;
EMAExitLong=false;
EMAExitShort=true;
}
if (EMALastSignal ==1)
{
ObjectSetText("myema",StringConcatenate("EMA: ", emaresult, " ", DoubleToStr(EMAtempvar ,Digits)," (", ((Close[0]-EMAtempvar)/Point)/10, ")" ), 10, "Arial", Green);
ObjectDelete("myHline3");
ObjectDelete("myVline3");
ObjectCreate("myHline3", OBJ_HLINE, 0, adxtime, EMAtempvar, 0, 0);
ObjectCreate("myVline3", OBJ_VLINE, 0, adxtime, EMAtempvar, 0, 0);
ObjectSet("myHline3", OBJPROP_COLOR, Lime);
ObjectSet("myVline3", OBJPROP_COLOR, Lime);
ObjectSet("myVline3", OBJPROP_STYLE, STYLE_DOT);
ObjectSet("myHline3", OBJPROP_STYLE, STYLE_DOT);
}
if (EMALastSignal ==2)
{
ObjectSetText("myema",StringConcatenate("EMA: ", emaresult, " ", DoubleToStr(EMAtempvar ,Digits)," (", ((EMAtempvar-Close[0])/Point)/10, ")" ), 10, "Arial", Red);
ObjectDelete("myHline3");
ObjectDelete("myVline3");
ObjectCreate("myHline3", OBJ_HLINE, 0, adxtime, EMAtempvar, 0, 0);
ObjectCreate("myVline3", OBJ_VLINE, 0, adxtime, EMAtempvar, 0, 0);
ObjectSet("myHline3", OBJPROP_COLOR, Red);
ObjectSet("myVline3", OBJPROP_COLOR, Red);
ObjectSet("myHline3", OBJPROP_STYLE, STYLE_DOT);
ObjectSet("myVline3", OBJPROP_STYLE, STYLE_DOT);
}
ObjectSet("myema",OBJPROP_XDISTANCE,2);
ObjectSet("myema",OBJPROP_YDISTANCE,68);
ObjectSet("myema", OBJPROP_CORNER, 3);
ObjectSetText("myemaexit",StringConcatenate("EMA: ", emaresultexit, " ", DoubleToStr(EMAtempvarexit ,Digits)), 10, "Arial", Indigo);
ObjectSet("myemaexit",OBJPROP_XDISTANCE,2);
ObjectSet("myemaexit",OBJPROP_YDISTANCE,86);
ObjectSet("myemaexit", OBJPROP_CORNER, 3);
ObjectSetText("mywebsite","Doda-EMA by www.DodaCharts.com", 10, "Arial", Navy);
ObjectSet("mywebsite",OBJPROP_XDISTANCE,2);
ObjectSet("mywebsite",OBJPROP_YDISTANCE,104);
ObjectSet("mywebsite", OBJPROP_CORNER, 3);
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---