Source: https://fxcodebase.com/code/viewtopic.php?f=31&t=61739
Forum: 31 · Topic 61739 · 5 post(s)
Apprentice · Tue Jan 20, 2015 3:35 am

Based on MA position Overlay Position.lua
If A MA > C MA Buy If A MA < C MA Sell
if Buy and A < B Neutral if Sell and A > B Neutral
Download links can be found here. download/file.php?id=13461
Open Long on Up Trend Color Open Short on Down Trend Color Close (Optinal) on Neutral Trend Color
MA position Overlay Position Strategy.lua
The Strategy was revised and updated on December 11, 2018.
poriyavt · Tue Jan 20, 2015 4:04 am
Dear Sir
Thanks for This Strategy But There is a no option for neutral Close So Kindly add option
for neutral Close
Regards
Apprentice · Tue Jan 20, 2015 6:57 am

poriyavt · Tue Apr 14, 2015 3:54 am
//+——————————————————————+ //| 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+” oda-EMA Says Buy”+” at “+DoubleToStr(EMAtempvar ,Digits));
EMABuyAlert=true; EMASellAlert=false; EMAExitLong=false; EMAExitShort=false;
}
if (EMALastSignal==11 && EMAExitLong==false) { Alert(MyMessage1+” oda-EMA Says Exit Buy”+” at “+DoubleToStr(EMAtempvarexit,Digits));
EMABuyAlert=false; EMASellAlert=false; EMAExitLong=true; EMAExitShort=false;
}
if (EMALastSignal==2 && EMASellAlert==false ) { Alert(MyMessage1+” oda-EMA Says Sell”+” at “+DoubleToStr(EMAtempvar,Digits));
EMABuyAlert=false; EMASellAlert=true; EMAExitLong=false; EMAExitShort=false;
}
if (EMALastSignal==22 && EMAExitShort==false ) { Alert(MyMessage1+” oda-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); } //+——————————————————————+
Apprentice · Sun Dec 11, 2016 3:09 pm
Strategy was revised and updated.