Ozymandias Indicator For MT5
Table Of Contents:
- Ozymandias Indicator For MT5
- تثبيت Ozymandias Indicator For MT5
- معلمات Ozymandias Indicator For MT5
- مخازن Ozymandias Indicator For MT5
- الأجزاء الرئيسية من المدونة
يعد Ozymandias Indicator For MT5 أداة تداول فنية ممتازة لتكون بمثابة رسام خرائط لأن هذا المؤشر يعمل بشكل جيد للغاية عندما يتعلق الأمر بتصفية تقلبات الأسعار الزائفة التي تحدث في كثير من الأحيان في السوق - يتم توجيه حركة السعر إلى نطاق من ثلاث طبقات مع الوسط هو خط ثنائي اللون يستخدم للإشارة إلى اتجاه السوق والتحيز لذلك بالنسبة للقطاعات الصاعدة في السوق ، سيتم تلوين هذا الخط باللون الأزرق وعندما يتم تداول السوق في قطاع هبوطي ، سيتم تلوين هذا الخط باللون الأحمر . يعمل النطاقان الآخران للمؤشر هناك كحدود أعلى وأدنى - يتم التعامل مع النطاق العلوي كمنطقة ذروة شراء في حين يتم التعامل مع النطاق السفلي كهامش أو دليل إرشادي - ولكن يجب التحقق من صحة مناطق ذروة البيع والإفراط في الشراء بسبب وجود هي حالات كثيرة جدًا عندما تقترب حركة السعر من هذه المناطق ، وبالتالي فإن ما قد يلجأ إليه المتداول هو تحميل مؤشر مذبذب آخر يعمل في نافذة منفصلة عن المؤشر. تجدر الإشارة إلى أن هذا المؤشر مخصص بشكل أساسي لاستخدامه لتحديد اللحظة المناسبة لإغلاق وفتح التداولات - لا تهدف تغييرات اللون إلى استخدام إشارة الانعكاس.
تثبيت Ozymandias Indicator For MT5
بعد تنزيل المؤشر عبر النموذج أعلاه ، ستحتاج إلى فك ضغط ملف zip. ثم تحتاج إلى نسخ الملف ozymandias.mq5 في المجلد MQL5Indicators تثبيت MT5 . بعد ذلك ، يرجى إعادة تشغيل MT5 وبعد ذلك ستتمكن من رؤية المؤشر في قائمة المؤشرات.
معلمات Ozymandias Indicator For MT5
و Ozymandias Indicator For MT5 ديه 3 المعلمات إلى تكوين.
input uint Length=2; input ENUM_MA_METHOD MAType=MODE_SMA; input int Shift=0; // Ñäâèã èíäèêàòîðà ïî ãîðèçîíòàëè â áàðàõ
مخازن Ozymandias Indicator For MT5
و Ozymandias Indicator For MT5 يوفر 4 مخازن.
SetIndexBuffer(0,IndBuffer,INDICATOR_DATA); SetIndexBuffer(1,ColorIndBuffer,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,UpBuffer,INDICATOR_DATA); SetIndexBuffer(3,DnBuffer,INDICATOR_DATA);
الأجزاء الرئيسية من المدونة
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 &tick_volume[], const long &volume[], const int &spread[]) { //--- ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷¸òà if(BarsCalculated(ATR_Handle) lt rates_total || BarsCalculated(HMA_Handle) lt rates_total || BarsCalculated(LMA_Handle) lt rates_total || rates_total lt min_rates_total) return(RESET); //--- îáúÿâëåíèå ïåðåìåííûõ int to_copy,limit,trend0,nexttrend0; double hh,ll,maxl0,minh0,lma,hma,atr,ATR[],HMA[],LMA[]; static int trend1,nexttrend1; static double maxl1,minh1; //--- ðàñ÷¸ò ñòàðòîâîãî íîìåðà limit äëÿ öèêëà ïåðåñ÷¸òà áàðîâ if(prev_calculated gt rates_total || prev_calculated lt =0)// ïðîâåðêà íà ïåðâûé ñòàðò ðàñ÷¸òà èíäèêàòîðà { limit=rates_total-min_rates_total-1; // ñòàðòîâûé íîìåð äëÿ ðàñ÷¸òà âñåõ áàðîâ trend1=0; nexttrend1=0; maxl1=0; minh1=9999999; } else limit=rates_total-prev_calculated; // ñòàðòîâûé íîìåð äëÿ ðàñ÷¸òà òîëüêî íîâûõ áàðîâ to_copy=limit+1; //--- êîïèðóåì âíîâü ïîÿâèâøèåñÿ äàííûå â ìàññèâû if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR) lt =0) return(RESET); if(CopyBuffer(HMA_Handle,0,0,to_copy,HMA) lt =0) return(RESET); if(CopyBuffer(LMA_Handle,0,0,to_copy,LMA) lt =0) return(RESET); //--- èíäåêñàöèÿ ýëåìåíòîâ â ìàññèâàõ êàê â òàéìñåðèÿõ ArraySetAsSeries(close,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); ArraySetAsSeries(ATR,true); ArraySetAsSeries(HMA,true); ArraySetAsSeries(LMA,true); //--- nexttrend0=nexttrend1; maxl0=maxl1; minh0=minh1; //--- îñíîâíîé öèêë ðàñ÷¸òà èíäèêàòîðà for(int bar=limit; bar gt =0 && !IsStopped(); bar--) { hh=high[ArrayMaximum(high,bar,Length)]; ll=low[ArrayMinimum(low,bar,Length)]; lma=LMA[bar]; hma=HMA[bar]; atr=ATR[bar]/2; trend0=trend1; //--- if(nexttrend0==1) { maxl0=MathMax(ll,maxl0); if(hma lt maxl0 && close[bar] lt low[bar+1]) { trend0=1; nexttrend0=0; minh0=hh; } } //--- if(nexttrend0==0) { minh0=MathMin(hh,minh0); if(lma gt minh0 && close[bar] gt high[bar+1]) { trend0=0; nexttrend0=1; maxl0=ll; } } //--- if(trend0==0) { if(trend1!=0.0) { IndBuffer[bar]=IndBuffer[bar+1]; ColorIndBuffer[bar]=1; } else { IndBuffer[bar]=MathMax(maxl0,IndBuffer[bar+1]); ColorIndBuffer[bar]=1; } UpBuffer[bar]=IndBuffer[bar]+atr; DnBuffer[bar]=IndBuffer[bar]-atr; } else { if(trend1!=1) { IndBuffer[bar]=IndBuffer[bar+1]; ColorIndBuffer[bar]=0; } else { IndBuffer[bar]=MathMin(minh0,IndBuffer[bar+1]); ColorIndBuffer[bar]=0; } UpBuffer[bar]=IndBuffer[bar]+atr; DnBuffer[bar]=IndBuffer[bar]-atr; } //--- if(bar) { nexttrend1=nexttrend0; trend1=trend0; maxl1=maxl0; minh1=minh0; } } //--- return(rates_total); } //+------------------------------------------------------------------+