[MT4指标]ATR指标
附图指标 用在震荡市比较好的
mt4指标类型:震荡指标
是否能用在mt4手机版上:否
平均真实波幅 (ATR) 是 J. Welles Wilder Jr 发明的指标,用来测量价格的波动性。 ATR 不指示价格的运动方向,只是价格波动的程度或者以点数表示的波动性。他观察到随着趋势的发展,市场参与者的情绪反应更加强烈,日波幅逐渐增大。同样地,方向不明,在一定的范围盘整时,平均真实波幅最终向上突破通常也指示了价格的突破。
是否含有未来函数:否
//+------------------------------------------------------------------+
//| ATR Channels.mq4 |
//| Copyright ? 2005, Luis Guilherme Damiani |
//| http://www.damianifx.com.br |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2005, Luis Guilherme Damiani"
#property link "http://www.damianifx.com.br"
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Aqua //Moving Average
#property indicator_color2 DeepSkyBlue // Lower band 1
#property indicator_color3 DeepSkyBlue // Upper band 1
#property indicator_color4 RoyalBlue // Lower band 2
#property indicator_color5 RoyalBlue // Upper band 2
#property indicator_color6 BlueViolet // Lower band 3
#property indicator_color7 BlueViolet // Upper band 3
//---- indicator buffers
double MA_Buffer0;
double Ch1up_Buffer1;
double Ch1dn_Buffer2;
double Ch2up_Buffer3;
double Ch2dn_Buffer4;
double Ch3up_Buffer5;
double Ch3dn_Buffer6;
//---- input parameters
extern int PeriodsATR=18;
extern int MA_Periods=49;
extern int MA_type=MODE_LWMA;
extern double Mult_Factor1= 1.6;
extern double Mult_Factor2= 3.2;
extern double Mult_Factor3= 4.8;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string mat;
//---7- indicators
// MA
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MA_Buffer0);
SetIndexDrawBegin(0,0);
/*if (MA_type==MODE_LWMA)SetIndexLabel(0,"WMA"+MA_Periods) else
{
if (MA_type==MODE_SMA) SetIndexLabel(0,"SMA"+MA_Periods) else
{
if (MA_type==MODE_EMA) SetIndexLabel(0,"EMA"+MA_Periods) else
SetIndexLabel(0,"SMMA"+MA_Periods);
};
};*/
// ATR 1 up
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Ch1up_Buffer1);
SetIndexDrawBegin(1,0);
SetIndexLabel(1,"ATRu "+PeriodsATR+", "+Mult_Factor1);
// ATR 1 down
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,Ch1dn_Buffer2);
SetIndexDrawBegin(2,0);
SetIndexLabel(2,"ATRd "+PeriodsATR+", "+Mult_Factor1);
// ATR 2 up
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,Ch2up_Buffer3);
SetIndexDrawBegin(3,0);
SetIndexLabel(3,"ATRu "+PeriodsATR+", "+Mult_Factor2);
// ATR 2 down
SetIndexStyle(4,DRAW_LINE);
SetIndexBuffer(4,Ch2dn_Buffer4);
SetIndexDrawBegin(4,0);
SetIndexLabel(4,"ATRd "+PeriodsATR+", "+Mult_Factor2);
// ATR 3 up
SetIndexStyle(5,DRAW_LINE);
SetIndexBuffer(5,Ch3up_Buffer5);
SetIndexDrawBegin(5,0);
SetIndexLabel(5,"ATRu "+PeriodsATR+", "+Mult_Factor3);
// ATR 3 down
SetIndexStyle(6,DRAW_LINE);
SetIndexBuffer(6,Ch3dn_Buffer6);
SetIndexDrawBegin(6,0);
SetIndexLabel(6,"ATRd "+PeriodsATR+", "+Mult_Factor3);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int fixed_bars=IndicatorCounted();
for(int i=0;i< Bars - fixed_bars;i++)
{
double atr=iATR(NULL,0,PeriodsATR,i);
double ma=iMA(NULL,0,MA_Periods,0,MA_type,PRICE_TYPICAL,i);
MA_Buffer0=ma;
Ch1up_Buffer1=ma+atr*Mult_Factor1;
Ch1dn_Buffer2=ma-atr*Mult_Factor1;
Ch2up_Buffer3=ma+atr*Mult_Factor2;
Ch2dn_Buffer4=ma-atr*Mult_Factor2;
Ch3up_Buffer5=ma+atr*Mult_Factor3;
Ch3dn_Buffer6=ma-atr*Mult_Factor3;
}
//----
//----
return(0);
}
ATR%20Channels.jpg

发表于:2015-06-17 10:06只看该作者
2楼
谢谢楼主,辛苦了
韬客社区www.talkfx.co
发表于:2017-08-10 04:18只看该作者
3楼
缺钱,灌水赚通宝,谢谢分享!!
韬客社区www.talkfx.co