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
- مخازن 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
مخازن Center of Gravity Ehlers Indicator For MT5
و Center of Gravity Ehlers Indicator For MT5 يوفر 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); } //+------------------------------------------------------------------+