[MT4指标]自定义上下指标
另外一个人编写的 RSI指标类型
显示方式和上面的差不多
附图指标
mt4指标类型:震荡指标
是否能用在mt4手机版上:否
是否含有未来函数:否
//+------------------------------------------------------------------+
//| Custom Aroon Up & Dn.mq4 |
//| rafcamara |
//| Upgraded by Andriy Moraru from www.earnforex.com |
//+------------------------------------------------------------------+
#property copyright "rafcamara"
#property link "[email protected]"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
//---- indicator parameters
extern int AroonPeriod = 14;
extern bool MailAlert = false; //Alerts will be mailed to address set in MT4 options
extern bool SoundAlert = false; //Alerts will sound on indicator cross
//---- indicator buffers
double AroonUpBuffer;
double AroonDnBuffer;
int LastBars = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(4);
SetIndexBuffer(0, AroonUpBuffer);
SetIndexBuffer(1, AroonDnBuffer);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexDrawBegin(0,200);
SetIndexDrawBegin(1,200);
IndicatorDigits(1);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Aroon Up & Dn("+AroonPeriod+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Aroon Up & Dn |
//+------------------------------------------------------------------+
int start()
{
double AroonUp,AroonDn;
int ArPer,limit,i;
int UpBarDif,DnBarDif;
int counted_bars=IndicatorCounted();
ArPer=AroonPeriod; //Short name
//---- check for possible errors
if(counted_bars<0) return(-1);
if(AroonPeriod<1) return(-1);
//---- initial zero
if(counted_bars<1)
{
for(i=1;i<=ArPer;i++) AroonUpBuffer[Bars-i]=0.0;
for(i=1;i<=ArPer;i++) AroonDnBuffer[Bars-i]=0.0;
}
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//----Calculation---------------------------
for( i=0; i AroonDnBuffer[0]) && (AroonUpBuffer[1] <= AroonDnBuffer[1]))
{
if (MailAlert) SendMail("Aroon Up & Down Indicator Alert", "The indicator produced a cross (Blue ABOVE Red) on " + Year() + "-" + Month() + "-" + Day() + " " + Hour() + ":" + Minute());
if (SoundAlert) Alert("Aroon Up & Down produced a cross (Blue ABOVE Red)");
}
else if ((AroonUpBuffer[0] < AroonDnBuffer[0]) && (AroonUpBuffer[1] >= AroonDnBuffer[1]))
{
if (MailAlert) SendMail("Aroon Up & Down Indicator Alert", "The indicator produced a cross (Blue BELOW Red) on " + Year() + "-" + Month() + "-" + Day() + " " + Hour() + ":" + Minute());
if (SoundAlert) Alert("Aroon Up & Down produced a cross (Blue BELOW Red)");
}
LastBars = Bars;
}
}
return(0);
}
Aroon_Up_Down.jpg

发表于:2015-06-17 10:05只看该作者
2楼
谢谢楼主,辛苦了
韬客社区www.talkfx.co