Chaikin Oscillator CHO Indicator For MT5
Table Of Contents:
- Chaikin Oscillator CHO Indicator For MT5
- Namestitev Chaikin Oscillator CHO Indicator For MT5
- Parametri Chaikin Oscillator CHO Indicator For MT5
- Odbojniki Chaikin Oscillator CHO Indicator For MT5
- Glavni deli kodeksa
Chaikin Oscillator CHO Indicator For MT5 temelji na kazalniku porazdelitve akumulacije in eksponentnem gibalnem povprečju. Algoritem EMA se uporabi na vrednostih indikatorja AD. Za izračun vrednosti Chaikin oscilatorja se izračuna EMA z obdobjem 3 in EMA z obdobjem 10 indikatorja AD. Razlika med EMA (3) in EMA (10) je vrednost, ki je narisana na histogramu. Ker je glasnost del indikatorja AD, tudi Chaikin oscilator pridobiva vrednosti iz prostornine in je zato lahko vodilni indikator.
Namestitev Chaikin Oscillator CHO Indicator For MT5
Ko naložite indikator prek zgornjega obrazca, morate odpreti zip datoteko. Nato morate kopirati datoteko cho.mq5 v mapo MQL5Indicators vaše namestitve MT5 . Po tem znova zaženite MT5 in takrat boste lahko videli indikator na seznamu indikatorjev.
Parametri Chaikin Oscillator CHO Indicator For MT5
Chaikin Oscillator CHO Indicator For MT5 ima za nastavitev parametre 4 .
input int InpFastMA=3; // Fast MA period input int InpSlowMA=10; // Slow MA period input ENUM_MA_METHOD InpSmoothMethod=MODE_EMA; // MA method input ENUM_APPLIED_VOLUME InpVolumeType=VOLUME_TICK; // Volumes
Odbojniki Chaikin Oscillator CHO Indicator For MT5
Chaikin Oscillator CHO Indicator For MT5 zagotavlja blažilnike 4 .
SetIndexBuffer(0,ExtCHOBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtFastEMABuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(2,ExtSlowEMABuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(3,ExtADBuffer,INDICATOR_CALCULATIONS);
Glavni deli kodeksa
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 rates total if(rates_total lt InpSlowMA) return(0); // not enough bars for calculation //--- preliminary calculations if(prev_calculated lt 1) { limit=1; //--- first values if(InpVolumeType==VOLUME_TICK) ExtADBuffer[0]=AD(High[0],Low[0],Close[0],TickVolume[0]); else ExtADBuffer[0]=AD(High[0],Low[0],Close[0],Volume[0]); ExtSlowEMABuffer[0]=ExtADBuffer[0]; ExtFastEMABuffer[0]=ExtADBuffer[0]; } else limit=prev_calculated-1; //--- calculate AD buffer if(InpVolumeType==VOLUME_TICK) { for(i=limit;i lt rates_total && !IsStopped();i++) ExtADBuffer[i]=ExtADBuffer[i-1]+AD(High[i],Low[i],Close[i],TickVolume[i]); } else { for(i=limit;i lt rates_total && !IsStopped();i++) ExtADBuffer[i]=ExtADBuffer[i-1]+AD(High[i],Low[i],Close[i],Volume[i]); } //--- calculate EMA on array ExtADBuffer AverageOnArray(InpSmoothMethod,rates_total,prev_calculated,0,InpSlowMA,ExtADBuffer,ExtSlowEMABuffer,weightslow); AverageOnArray(InpSmoothMethod,rates_total,prev_calculated,0,InpFastMA,ExtADBuffer,ExtFastEMABuffer,weightfast); //--- calculate chaikin oscillator for(i=limit;i lt rates_total && !IsStopped();i++) ExtCHOBuffer[i]=ExtFastEMABuffer[i]-ExtSlowEMABuffer[i]; //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+