[MT4指标]Doda-EMA指标
主图指标
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
是否含有未来函数:无
//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
发表于:2015-05-26 09:30只看该作者
2楼
看看再说
韬客社区www.talkfx.co
发表于:2015-06-07 04:50只看该作者
3楼
这是什么啊
韬客社区www.talkfx.co