Average True Range ATR Indicator For MT5
Table Of Contents:
- Average True Range ATR Indicator For MT5
- Instalando o Average True Range ATR Indicator For MT5
- Parâmetros da Average True Range ATR Indicator For MT5
- Buffers of the Average True Range ATR Indicator For MT5
- Principais partes do código
O Average True Range ATR Indicator For MT5 é um dos indicadores padrão muito famosos em quase todas as plataformas de negociação. É usado como base para muitos outros indicadores que usam seus valores como entrada para cálculos adicionais. O indicador ATR calcula o tamanho médio das velas X recentes. Os valores permitem observar um aumento ou diminuição da volatilidade no mercado.
Instalando o Average True Range ATR Indicator For MT5
Depois de baixar o indicador através do formulário acima, você precisa descompactar o arquivo zip. Em seguida, você precisa copiar o arquivo atr.mq5 na pasta MQL5Indicators da sua instalação do MT5 . Depois disso, reinicie o MT5 e você poderá ver o indicador na lista de indicadores.
Parâmetros da Average True Range ATR Indicator For MT5
O Average True Range ATR Indicator For MT5 possui parâmetros 1 para configurar.
input int InpAtrPeriod=14; // ATR period
Buffers of the Average True Range ATR Indicator For MT5
O Average True Range ATR Indicator For MT5 fornece buffers 2 .
SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
Principais partes do código
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &Time[], const double &Open[], const double &High[], const double &Low[], const double &Close[], const long &TickVolume[], const long &Volume[], const int &Spread[]) { int i,limit; //--- check for bars count if(rates_total lt =ExtPeriodATR) return(0); // not enough bars for calculation //--- preliminary calculations if(prev_calculated==0) { ExtTRBuffer[0]=0.0; ExtATRBuffer[0]=0.0; //--- filling out the array of True Range values for each period for(i=1;i lt rates_total && !IsStopped();i++) ExtTRBuffer[i]=MathMax(High[i],Close[i-1])-MathMin(Low[i],Close[i-1]); //--- first AtrPeriod values of the indicator are not calculated double firstValue=0.0; for(i=1;i lt =ExtPeriodATR;i++) { ExtATRBuffer[i]=0.0; firstValue+=ExtTRBuffer[i]; } //--- calculating the first value of the indicator firstValue/=ExtPeriodATR; ExtATRBuffer[ExtPeriodATR]=firstValue; limit=ExtPeriodATR+1; } else limit=prev_calculated-1; //--- the main loop of calculations for(i=limit;i lt rates_total && !IsStopped();i++) { ExtTRBuffer[i]=MathMax(High[i],Close[i-1])-MathMin(Low[i],Close[i-1]); ExtATRBuffer[i]=ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodATR; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+