Center of Gravity Ehlers Indicator For MT5
Table Of Contents:
- Center of Gravity Ehlers Indicator For MT5
- Installere Center of Gravity Ehlers Indicator For MT5
- Parametere for Center of Gravity Ehlers Indicator For MT5
- Buffere av Center of Gravity Ehlers Indicator For MT5
- Hoveddeler av koden
Center of Gravity Ehlers Indicator For MT5 ble utviklet av Ehler og kan oppdage trend reverseringspunkter ganske nøyaktige. Indikatoren bruker filtre som SMA og WMA. Indikatoren tegner to linjer som en oscillator på en indikatorundervindu. Én linje er stiplet og har alltid fargen blå. Den andre linjen er solid og endrer fargen til grønn under oppadgående trender og rød under nedadgående trender. Retningen på trenden er definert av posisjonen i forhold til den stiplede blå linjen.
Installere Center of Gravity Ehlers Indicator For MT5
Etter at du har lastet ned indikatoren via skjemaet over, må du pakke ut zip-filen. Deretter må du kopiere filen centerofgravity.mq5 til mappen MQL5Indicators for din MT5 installasjon. Etter det kan du starte MT5 på nytt, så vil du kunne se indikatoren i listen over indikatorer.
Parametere for Center of Gravity Ehlers Indicator For MT5
Center of Gravity Ehlers Indicator For MT5 har 4 parametere som skal konfigureres.
input int Period_=10; // Indicator averaging period input int SmoothPeriod=3; // Signal line smoothing period input ENUM_MA_METHOD MA_Method_=MODE_SMA; // Signal line averaging method input Applied_price_ AppliedPrice=PRICE_CLOSE_;// Price constant
Buffere av Center of Gravity Ehlers Indicator For MT5
Center of Gravity Ehlers Indicator For MT5 inneholder 3 buffere.
SetIndexBuffer(0,Ext1Buffer,INDICATOR_DATA); SetIndexBuffer(1,ColorExt2Buffer,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,Ext2Buffer,INDICATOR_DATA);
Hoveddeler av koden
int OnCalculate(const int rates_total, // number of bars in history at the current tick const int prev_calculated,// number of bars calculated at previous call const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking the number of bars to be enough for the calculation if(rates_total lt StartBar) return(0); //---- Declaration of variables with a floating point double price_,sma,lwma; //---- Declaration of integer variables int first1,first2,first3,bar; //---- Initialization of the indicator in the OnCalculate() block if(prev_calculated gt rates_total || prev_calculated lt =0)// checking for the first start of calculation of an indicator { first1=0; // starting number for calculation of all first loop bars first2=Period_+1; // starting number for calculation of all signal line bars first3=Period_+SmoothPeriod+3; // starting number for calculation of all coloring loop bars } else // starting number for calculation of new bars { first1=prev_calculated-1; first2=first1; first3=first1; } //---- declaration of variables of the Moving_Average class static CMoving_Average MA,LWMA,SIGN; //---- Main cycle of calculation of the channel center line for(bar=first1; bar lt rates_total; bar++) { //---- Call of the PriceSeries function to get the input price Series price_=PriceSeries(AppliedPrice,bar,open,low,high,close); sma=MA.MASeries(0,prev_calculated,rates_total,Period_,MODE_SMA,price_,bar,false); lwma=LWMA.MASeries(0,prev_calculated,rates_total,Period_,MODE_LWMA,price_,bar,false); Ext1Buffer[bar]=sma*lwma/_Point; Ext2Buffer[bar]=SIGN.MASeries(first2,prev_calculated,rates_total,SmoothPeriod,MA_Method_,Ext1Buffer[bar],bar,false); } //---- Main loop of the signal line coloring for(bar=first3; bar lt rates_total; bar++) { ColorExt2Buffer[bar]=0; if(Ext1Buffer[bar] lt Ext2Buffer[bar]) ColorExt2Buffer[bar]=2; else ColorExt2Buffer[bar]=1; } //---- return(rates_total); } //+------------------------------------------------------------------+