Center of Gravity Ehlers Indicator For MT5
Table Of Contents:
- Center of Gravity Ehlers Indicator For MT5
- Memasang Center of Gravity Ehlers Indicator For MT5
- Parameter Center of Gravity Ehlers Indicator For MT5
- Center of Gravity Ehlers Indicator For MT5
- Bahagian Utama Kod
Center of Gravity Ehlers Indicator For MT5 dibangunkan oleh Ehler dan dapat mengesan mata pembalikan trend yang cukup tepat. Penunjuk menggunakan penapis seperti SMA dan WMA. Penunjuk menarik dua baris sebagai pengayun pada subwindow penunjuk. Satu baris bertitik dan sentiasa mempunyai warna biru. Garis yang lain adalah pepejal dan mengubah warna menjadi hijau semasa trend menaik dan merah semasa trend menurun. Arah trend ditakrifkan oleh kedudukan berhubung dengan garis biru bertitik.
Memasang Center of Gravity Ehlers Indicator For MT5
Selepas anda memuat turun penunjuk melalui borang di atas, anda perlu unzip fail zip. Kemudian anda perlu menyalin fail centerofgravity.mq5 ke folder MQL5Indicators pemasangan MT5 anda. Selepas itu sila mulakan MT5 dan kemudian anda akan dapat melihat penunjuk dalam senarai petunjuk.
Parameter Center of Gravity Ehlers Indicator For MT5
Center of Gravity Ehlers Indicator For MT5 mempunyai parameter 4 untuk mengkonfigurasi.
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
Center of Gravity Ehlers Indicator For MT5
Center of Gravity Ehlers Indicator For MT5 menyediakan buffer 3 .
SetIndexBuffer(0,Ext1Buffer,INDICATOR_DATA); SetIndexBuffer(1,ColorExt2Buffer,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,Ext2Buffer,INDICATOR_DATA);
Bahagian Utama Kod
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); } //+------------------------------------------------------------------+