QQE with Alerts Indicator For MT4
Table Of Contents:
- QQE with Alerts Indicator For MT4
- QQE with Alerts Indicator For MT4 स्थापित करना
- QQE with Alerts Indicator For MT4 पैरामीटर
- QQE with Alerts Indicator For MT4 के QQE with Alerts Indicator For MT4
- संहिता के मुख्य भाग
QQE with Alerts Indicator For MT4 गुणात्मक मात्रात्मक अनुमान (QQE) संकेतक का एक अनुकूलित संस्करण है। यह रिलेटिव स्ट्रेंथ इंडेक्स (आरएसआई) पर आधारित है, और प्रवृत्ति दिशा और शक्ति का एक गेज प्रदान करता है।
QQE with Alerts Indicator For MT4 स्थापित करना
आपके द्वारा उपर्युक्त फ़ॉर्म के माध्यम से संकेतक डाउनलोड करने के बाद आपको ज़िप-फ़ाइल को अनज़िप करना होगा। तो फिर तुम फाइल कॉपी करने की जरूरत है QQE_with_Alerts.mq4 फ़ोल्डर में MQL4Indicators अपने की MT4 स्थापना। उसके बाद कृपया MT4 को पुनः आरंभ करें और फिर आप संकेतक की सूची में संकेतक देख पाएंगे।
QQE with Alerts Indicator For MT4 पैरामीटर
QQE with Alerts Indicator For MT4 पास कॉन्फ़िगर करने के लिए 8 पैरामीटर हैं।
extern string NOTESETTINGS=" --- INDICATOR SETTINGS ---"; extern int SF=5; extern string NOTEALERTS=" --- Alerts ---"; extern int AlertLevel=50; extern bool MsgAlerts=true; extern bool SoundAlerts=true; extern string SoundAlertFile="alert.wav"; extern bool eMailAlerts=false;
QQE with Alerts Indicator For MT4 के QQE with Alerts Indicator For MT4
QQE with Alerts Indicator For MT4 5 बफ़र्स प्रदान करता है।
SetIndexBuffer(0,RsiMa); SetIndexBuffer(1,TrLevelSlow); SetIndexBuffer(2,AtrRsi); SetIndexBuffer(3,MaAtrRsi); SetIndexBuffer(4,Rsi);
संहिता के मुख्य भाग
int start() { int counted,i; double rsi0,rsi1,dar,tr,dv; //---- if(Bars lt =StartBar) return(0); //---- int counted_bars=IndicatorCounted(); if(counted_bars lt 0) return(-1); if(counted_bars gt 0) counted_bars--; int limit=Bars-counted_bars; if(counted_bars==0) limit-=1+1; //---- for(i=limit; i gt =0; i--) Rsi[i]=iRSI(NULL,0,RSI_Period,PRICE_CLOSE,i); for(i=limit; i gt =0; i--) { RsiMa[i]=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i); AtrRsi[i]=MathAbs(RsiMa[i+1]-RsiMa[i]); } for(i=limit; i gt =0; i--) MaAtrRsi[i]=iMAOnArray(AtrRsi,0,Wilders_Period,0,MODE_EMA,i); //---- i=limit-1; tr=TrLevelSlow[i]; rsi1=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i); while(i gt 0) { i--; rsi0=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i); dar=iMAOnArray(MaAtrRsi,0,Wilders_Period,0,MODE_EMA,i)*4.236; dv=tr; if(rsi0 lt tr) { tr=rsi0+dar; if(rsi1 lt dv) if(tr gt dv) tr=dv; } else if(rsi0 gt tr) { tr=rsi0-dar; if(rsi1 gt dv) if(tr lt dv) tr=dv; } TrLevelSlow[i]=tr; rsi1=rsi0; } if((RsiMa[i+1] lt AlertLevel && RsiMa[i] gt AlertLevel) || (RsiMa[i+1] gt AlertLevel && RsiMa[i] lt AlertLevel)) { string base=Symbol()+ ", TF: " + TF2Str(Period()); string Subj=base + ", " + AlertLevel + " level Cross Up"; if(RsiMa[i+1] gt AlertLevel && RsiMa[i] lt AlertLevel) Subj=base+" "+AlertLevel+" level Cross Down"; string Msg=Subj+" @ "+TimeToStr(TimeLocal(),TIME_SECONDS); if(Bars gt LastAlertBar) { LastAlertBar=Bars; DoAlerts(Msg,Subj); } } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void DoAlerts(string msgText,string eMailSub) { if(MsgAlerts) Alert(msgText); if(SoundAlerts) PlaySound(SoundAlertFile); if(eMailAlerts) SendMail(eMailSub,msgText); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string TF2Str(int period) { switch(period) { case PERIOD_M1: return("M1"); case PERIOD_M5: return("M5"); case PERIOD_M15: return("M15"); case PERIOD_M30: return("M30"); case PERIOD_H1: return("H1"); case PERIOD_H4: return("H4"); case PERIOD_D1: return("D1"); case PERIOD_W1: return("W1"); case PERIOD_MN1: return("MN"); } return(Period()); } //+------------------------------------------------------------------+