MQL5 विजार्ड का उपयोग करके आप अपने एक्सपर्ट एडवाइजर्स का कोड अपने आप बना सकते हैं। अधिक जानकारी के लिए देखें MQL5 विजार्ड में तैयार-निर्मित एक्सपर्ट एडवाइजर्स बनाना.
यहां हम एक ट्रेंड रणनीति पर चर्चा करेंगे, जो तीन मूविंग एवरेजेस पर आधारित है। इस रणनीति को "तीन EMA पर आधारित सिग्नल्स" कहा जाता है। यह रणनीति तीन एक्सपोनेंशियल मूविंग एवरेजेस का उपयोग करती है: FastEMA, MediumEMA और SlowEMA।
ट्रेड सिग्नल्स:
- खरीदने का सिग्नल: FastEMA > MediumEMA > SlowEMA (ऊपर की ओर ट्रेंड).
- बेचने का सिग्नल: FastEMA < MediumEMA < SlowEMA (नीचे की ओर ट्रेंड).
यह रणनीति CSignal3EMA क्लास में लागू की गई है (signal3ema.mqh को terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh में रखना होगा).

चित्र 1. तीन मूविंग एवरेजेस पर आधारित ट्रेड सिग्नल
ट्रेड सिग्नल्स
यह ट्रेडिंग रणनीति CSignal3EMA क्लास में लागू की गई है, जिसमें तीन मूविंग एवरेजेस (फास्ट, मीडियम, स्लो) के मानों तक पहुंच को सरल बनाने के लिए कुछ सुरक्षित तरीके हैं:
double FastEMA(int ind) // बार का फास्ट EMA मान लौटाता है double MediumEMA(int ind) // बार का मीडियम EMA मान लौटाता है double SlowEMA(int ind) // बार का स्लो EMA मान लौटाता है
1. लंबी स्थिति खोलें
ऊपर की ओर का ट्रेंड निम्नलिखित शर्तों से निर्धारित होता है: FastEMA > MediumEMA > SlowEMA:
- FastEMA(1) > MediumEMA(1): फास्ट EMA, मीडियम EMA से ऊपर है (अंतिम पूर्ण बार);
- MediumEMA(2) > SlowEMA(1): मीडियम EMA, स्लो EMA से ऊपर है (अंतिम पूर्ण बार);
//+------------------------------------------------------------------+ //| लंबी स्थिति खोलने की शर्तों की जांच करता है (खरीदें) | //+------------------------------------------------------------------+ bool CSignal3EMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration) { double medium=MediumEMA(1); //--- price=0.0; sl =m_symbol.Ask()-m_stop_loss*m_adjusted_point; tp =m_symbol.Ask()+m_take_profit*m_adjusted_point; //--- अंतिम पूर्ण बार पर ऊपर की ओर के ट्रेंड की जांच: FastEMA(1) > MediumEMA(1) > SlowEMA(1) return(FastEMA(1)>medium && medium>SlowEMA(1)); }
2. लंबी स्थिति बंद करें
नीचे की ओर का ट्रेंड निम्नलिखित शर्तों से निर्धारित होता है: FastEMA < MediumEMA < SlowEMA:
- FastEMA(1) < MediumEMA(1): फास्ट EMA, मीडियम EMA से नीचे है (अंतिम पूर्ण बार);
- MediumEMA(2) < SlowEMA(1): मीडियम EMA, स्लो EMA से नीचे है (अंतिम पूर्ण बार);
//+------------------------------------------------------------------+ //| शॉर्ट स्थिति बंद करने की शर्तों की जांच करता है | //+------------------------------------------------------------------+ bool CSignal3EMA::CheckCloseLong(double& price) { double medium=MediumEMA(1); //--- price=0.0; //--- अंतिम पूर्ण बार पर ऊपर की ओर के ट्रेंड की जांच: FastEMA(1) < MediumEMA(1) < SlowEMA(1) return(FastEMA(1)1)); }
3. शॉर्ट स्थिति खोलें
//+------------------------------------------------------------------+ //| शॉर्ट स्थिति खोलने की शर्तों की जांच करता है (बेचें) | //+------------------------------------------------------------------+ bool CSignal3EMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration) { double medium=MediumEMA(1); //--- price=0.0; sl =m_symbol.Bid()+m_stop_loss*m_adjusted_point; tp =m_symbol.Bid()-m_take_profit*m_adjusted_point; //--- अंतिम पूर्ण बार पर नीचे की ओर के ट्रेंड की जांच: FastEMA(1) < MediumEMA(1) < SlowEMA(1) return(FastEMA(1)1)); }
4. शॉर्ट स्थिति बंद करें
//+------------------------------------------------------------------+ //| शॉर्ट स्थिति बंद करने की शर्तों की जांच करता है | //+------------------------------------------------------------------+ bool CSignal3EMA::CheckCloseShort(double& price) { double medium=MediumEMA(1); //--- price=0.0; //--- अंतिम पूर्ण बार पर ऊपर की ओर के ट्रेंड की जांच: FastEMA(1) > MediumEMA(1) > SlowEMA(1) return(FastEMA(1)>medium && medium>SlowEMA(1)); }
आप शॉर्ट स्थिति को बंद करने में सुधार कर सकते हैं: ऊपर की ओर के ट्रेंड की प्रतीक्षा करने की आवश्यकता नहीं है, आप शॉर्ट स्थितियों को तब बंद कर सकते हैं जब यह फ्लैट हो, जिसे निम्नलिखित शर्तों से निर्धारित किया जा सकता है: FastEMA > MediumEMA < SlowEMA.
MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर्स बनाना
इस रणनीति के आधार पर ट्रेडिंग रोबोट बनाने के लिए, आपको "तीन EMA पर आधारित सिग्नल्स" को चुनना होगा "तैयार-निर्मित एक्सपर्ट एडवाइजर्स बनाने" के विकल्प में MQL5 विजार्ड में:

चित्र 2. MQL5 विजार्ड में "तीन EMA पर आधारित सिग्नल्स" चुनें
इसके बाद, आपको आवश्यक ट्रेलिंग स्टॉप एल्गोरिदम और पैसा और जोखिम प्रबंधन प्रणाली निर्दिष्ट करनी होगी। एक्सपर्ट एडवाइजर का कोड अपने आप बनाया जाएगा, आप इसे संकलित कर सकते हैं और स्ट्रेटजी टेस्टर्स में टेस्ट कर सकते हैं।
टेस्टिंग परिणाम
चलिये एक्सपर्ट एडवाइजर के बैकटेस्टिंग पर चर्चा करते हैं, जो ऐतिहासिक डेटा (EURUSD H1, परीक्षण अवधि: 1.1.2010-05.01.2011, FastPeriod=5, MediumPeriod=12, SlowPeriod=24, StopLoss=400, TakeProfit=900) पर आधारित है।
एक्सपर्ट एडवाइजर बनाने में हमने निश्चित वॉल्यूम (फिक्स्ड लॉट ट्रेडिंग, 0.1) का उपयोग किया है, ट्रेलिंग स्टॉप एल्गोरिदम का उपयोग नहीं किया गया है (ट्रेलिंग का उपयोग नहीं किया गया).

चित्र 3. तीन EMA पर आधारित एक्सपर्ट एडवाइजर के ऐतिहासिक बैकटेस्टिंग परिणाम
संलग्नक: Signal3EMA.mqh, जिसमें CSignal3EMA क्लास है, को terminal_data_folder\MQL5\Include\Expert\Signal में रखा जाना चाहिए।
तीनema.mq5 फ़ाइल में MQL5 विजार्ड का उपयोग करके बनाए गए एक्सपर्ट एडवाइजर का कोड है।
टिप्पणी 0