Center of Gravity Ehlers Indicator For MT5
Table Of Contents:
- Center of Gravity Ehlers Indicator For MT5
- Εγκατάσταση του Center of Gravity Ehlers Indicator For MT5
- Παράμετροι του Center of Gravity Ehlers Indicator For MT5
- Buffers του Center of Gravity Ehlers Indicator For MT5
- Κύρια μέρη του κώδικα
Το Center of Gravity Ehlers Indicator For MT5 αναπτύχθηκε από τον Ehler και μπορεί να ανιχνεύσει αρκετά ακριβή σημεία αντιστροφής της τάσης. Η ένδειξη χρησιμοποιεί φίλτρα όπως το SMA και το WMA. Η ένδειξη τραβάει δύο γραμμές ως ταλαντωτή σε ένα δευτερεύον παράθυρο δείκτη. Μια γραμμή είναι διακεκομμένη και έχει πάντα το μπλε χρώμα. Η άλλη γραμμή είναι σταθερή και αλλάζει το χρώμα στο πράσινο κατά τις ανοδικές τάσεις και το κόκκινο κατά την καθοδική τάση. Η κατεύθυνση της τάσης ορίζεται από τη θέση σε σχέση με τη διακεκομμένη μπλε γραμμή.
Εγκατάσταση του Center of Gravity Ehlers Indicator For MT5
Αφού κατεβάσετε την ένδειξη μέσω της παραπάνω φόρμας, πρέπει να αποσυνδέσετε το αρχείο zip. Στη συνέχεια, πρέπει να αντιγράψετε το αρχείο centerofgravity.mq5 στο φάκελο MQL5Indicators της εγκατάστασης MT5 . Στη συνέχεια, κάντε επανεκκίνηση του MT5 και, στη συνέχεια, θα μπορείτε να δείτε τον δείκτη στη λίστα των δεικτών.
Παράμετροι του Center of Gravity Ehlers Indicator For MT5
Το Center of Gravity Ehlers Indicator For MT5 έχει παραμέτρους 4 για να ρυθμίσετε τις παραμέτρους.
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
Buffers του Center of Gravity Ehlers Indicator For MT5
Το Center of Gravity Ehlers Indicator For MT5 παρέχει buffers 3 .
SetIndexBuffer(0,Ext1Buffer,INDICATOR_DATA); SetIndexBuffer(1,ColorExt2Buffer,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,Ext2Buffer,INDICATOR_DATA);
Κύρια μέρη του κώδικα
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); } //+------------------------------------------------------------------+