Average True Range ATR Indicator For MT5
Table Of Contents:
- Average True Range ATR Indicator For MT5
- Installera Average True Range ATR Indicator For MT5
- Parametrar för Average True Range ATR Indicator For MT5
- Buffertar från Average True Range ATR Indicator For MT5
- Huvuddelar i koden
Den Average True Range ATR Indicator For MT5 är en av de mycket berömda standardindikatorerna i nästan varje handelsplattform. Det används som bas för många andra indikatorer som använder hans värden som input för vidare beräkning. ATR-indikatorn beräknar den genomsnittliga storleken på de senaste X-stearinljusen. Värdena gör att du kan se en ökning eller minskning av volatiliteten på marknaden.
Installera Average True Range ATR Indicator For MT5
När du har laddat ner indikatorn via formuläret ovan måste du packa upp zip-filen. Sedan måste du kopiera filen atr.mq5 till mappen MQL5Indicators för din MT5 installation. Efter det kan du starta om MT5 så kan du se indikatorn i listan över indikatorer.
Parametrar för Average True Range ATR Indicator For MT5
Average True Range ATR Indicator For MT5 har parametrar för 1 att konfigurera.
input int InpAtrPeriod=14; // ATR period
Buffertar från Average True Range ATR Indicator For MT5
Average True Range ATR Indicator For MT5 tillhandahåller 2 buffertar.
SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
Huvuddelar i koden
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); } //+------------------------------------------------------------------+