MQL5 विजार्ड का उपयोग करके आप तैयार किए गए एक्सपर्ट एडवाइज़र्स (EAs) बना सकते हैं, जो मेटाट्रेडर 5 के साथ आने वाले स्टैंडर्ड लाइब्रेरी क्लासेज पर आधारित होते हैं। इससे आप अपने ट्रेड आइडियाज को जल्दी से चेक कर सकते हैं, बस आपको अपनी खुद की ट्रेडिंग सिग्नल क्लास बनानी होती है। इस क्लास की संरचना और उदाहरण के लिए, आप MQL5 विजार्ड: ट्रेडिंग सिग्नल का मॉड्यूल कैसे बनाएं लेख देख सकते हैं।
आसान शब्दों में, ट्रेडिंग सिग्नल की क्लास CExpertSignal से derivé की जाती है। इसके बाद, आपको अपनी खुद की LongCondition() और ShortCondition() वर्चुअल मेथड्स को ओवरराइड करना होता है।
एक किताब है "सर्वश्रेष्ठ ट्रेडर्स की रणनीतियाँ" (रूसी में), जिसमें कई ट्रेडिंग रणनीतियों पर चर्चा की गई है। हम रिवर्सल कैंडलस्टिक पैटर्न पर ध्यान केंद्रित करेंगे, जिन्हें स्टोकास्टिक, CCI, MFI, और RSI ऑस्सीलेटर द्वारा पुष्टि की जाती है।
सर्वश्रेष्ठ तरीका यह है कि आप एक अलग क्लास बनाएं, जो CExpertSignal से derivé हो ताकि कैंडलस्टिक पैटर्न के निर्माण की जांच की जा सके। कैंडलस्टिक पैटर्न द्वारा उत्पन्न ट्रेड सिग्नल की पुष्टि करने के लिए, आपको एक क्लास लिखने की जरूरत है, जो CCandlePattern से derivé हो और उसमें आवश्यक विशेषताएँ (जैसे ऑस्सीलेटर द्वारा पुष्टि) जोड़ें।
1. "डार्क क्लाउड कवर" और "पीयरसिंग लाइन" रिवर्सल कैंडलस्टिक पैटर्न
1.1. डार्क क्लाउड कवर
यह एक बेयरिश कैंडलस्टिक रिवर्सल है, जो अपट्रेंड के अंत में होता है। पहले दिन एक लंबी सफेद कैंडलस्टिक बनती है और दूसरे दिन एक गैप अप बनता है। हालाँकि, दूसरे दिन का क्लोज पहले दिन के मध्य बिंदु के नीचे होता है।

डार्क क्लाउड कवर पैटर्न
"डार्क क्लाउड कवर" पैटर्न की पहचान CheckPatternDarkCloudCover() मेथड में CCandlePattern क्लास में की गई है:
//+------------------------------------------------------------------+ //| "डार्क क्लाउड कवर" कैंडलस्टिक पैटर्न की पहचान करता है | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternDarkCloudCover() { //---डार्क क्लाउड कवर if((Close(2)-Open(2)>AvgBody(1)) && // (लंबी सफेद) (Close(1)<Close(2)) && // (Close(1)>Open(2)) && // (पिछले बॉडी में क्लोज) (MidOpenClose(2)>CloseAvg(1)) && // (अपट्रेंड) (Open(1)>High(2))) // (नई उच्च पर ओपन) return(true); //--- return(false); }
CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) मेथड का उपयोग "डार्क क्लाउड कवर" कैंडलस्टिक पैटर्न की पहचान के लिए किया जाता है।
1.2. पीयरसिंग लाइन
दूसरे दिन का गैप डाउन डाउनट्रेंड को मजबूत करता है। हालाँकि, दूसरे दिन का क्लोज पहले दिन के बॉडी के मध्य बिंदु के ऊपर होता है। यह भालुओं को संकेत देता है कि एक बॉटम बन सकता है। यह प्राइस एक्शन बार चार्ट्स के मुकाबले कैंडलस्टिक चार्ट्स में बहुत स्पष्ट होता है। दूसरे दिन के क्लोज का पहले दिन के बॉडी में अधिक गहराई से प्रवेश, रिवर्सल सिग्नल की सफलता की संभावना को बढ़ाता है।

पीयरसिंग लाइन कैंडलस्टिक पैटर्न
"पीयरसिंग लाइन" पैटर्न की पहचान CheckPatternPiercingLine() मेथड में CCandlePattern क्लास में की गई है:
//+------------------------------------------------------------------+ //| "पीयरसिंग लाइन" कैंडलस्टिक पैटर्न की पहचान करता है | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternPiercingLine() { //---पीयरसिंग लाइन if((Close(1)-Open(1)>AvgBody(1)) && // (लंबी सफेद) (Open(2)-Close(2)>AvgBody(1)) && // (लंबी काली) (Close(1)>Close(2)) && // (Close(1)<Open(2)) && // (पिछले बॉडी में क्लोज) (MidOpenClose(2)<CloseAvg(2)) && // (डाउनट्रेंड) (Open(1)<Low(2))) // (पिछले लो से कम ओपन) return(true); //--- return(false); }
CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) मेथड का उपयोग "पीयरसिंग लाइन" कैंडलस्टिक पैटर्न की पहचान के लिए किया जाता है।
2. ट्रेड सिग्नल, जो स्टोकास्टिक ऑस्सीलेटर द्वारा पुष्टि किए गए हैं
लॉन्ग या शॉर्ट पोजिशन खोलने के लिए ट्रेड सिग्नल को स्टोकास्टिक ऑस्सीलेटर द्वारा पुष्टि की जानी चाहिए। सिग्नल %D लाइन को संबंधित महत्वपूर्ण स्तर (30 या 70) से अधिक/कम होना चाहिए।
खुली पोजिशन को %D इंडिकेटर के मूल्यों के आधार पर बंद किया जाता है। यह 2 मामलों में किया जा सकता है:
- अगर %D लाइन विपरीत महत्वपूर्ण स्तर (लॉन्ग पोजिशन के लिए 80 और शॉर्ट पोजिशन के लिए 20) तक पहुँच गई है।
- अगर रिवर्स सिग्नल की पुष्टि नहीं होती (जब %D लाइन निम्नलिखित स्तरों तक पहुँचती है: लॉन्ग पोजिशन के लिए 20 और शॉर्ट पोजिशन के लिए 80)

डार्क क्लाउड कवर पैटर्न, स्टोकास्टिक द्वारा पुष्टि की गई
2.1. लॉन्ग पोजिशन खोलें/शॉर्ट पोजिशन बंद करें
"पीयरसिंग लाइन" पैटर्न का निर्माण स्टोकास्टिक ऑस्सीलेटर द्वारा पुष्टि की जानी चाहिए: StochSignal(1)<30 (स्टोकास्टिक इंडिकेटर की अंतिम पूर्ण बार की सिग्नल लाइन का मान 30 से कम होना चाहिए)।
शॉर्ट पोजिशन को तब बंद किया जाना चाहिए जब स्टोकास्टिक ऑस्सीलेटर की सिग्नल लाइन ने 20 या 80 स्तरों को ऊपर की ओर पार किया हो।
//+------------------------------------------------------------------+ //| बाजार में प्रवेश और निकासी की स्थिति की जांच करता है | //| 1) मार्केट में प्रवेश (लॉन्ग पोजिशन खोलें, परिणाम=80) | //| 2) मार्केट से निकासी (शॉर्ट पोजिशन बंद करें, परिणाम=40) | //+------------------------------------------------------------------+ int CDC_PL_Stoch::LongCondition() { int result=0; //--- idx का उपयोग एक्सपर्ट एडवाइज़र कार्य मोड निर्धारित करने के लिए किया जा सकता है //--- idx=0 - इस मामले में EA प्रत्येक टिक पर ट्रेड की स्थितियों की जांच करता है //--- idx=1 - इस मामले में EA केवल न्यूज़ बार पर ट्रेड की स्थिति की जांच करता है int idx =StartIndex(); //--- लॉन्ग पोजिशन खोलने की स्थितियों की जांच //--- "पीयरसिंग लाइन" पैटर्न और सिग्नल लाइन<30 का निर्माण if (CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) && (StochSignal(1)<30)) result=80; //--- शॉर्ट पोजिशन बंद करने की स्थितियों की जांच //--- ओवरबॉट/ओवरसोल्ड स्तरों (नीचे 20, ऊपर 80) के क्रॉसओवर सिग्नल लाइन if((((StochSignal(1)>20) && (StochSignal(2)<20)) || ((StochSignal(1)>80) && (StochSignal(2)<80)))) result=40; //--- परिणाम लौटाएं return(result); }
2.2. शॉर्ट पोजिशन खोलें/लॉन्ग पोजिशन बंद करें
"डार्क क्लाउड कवर" पैटर्न का निर्माण स्टोकास्टिक ऑस्सीलेटर द्वारा पुष्टि की जानी चाहिए: StochSignal(1)>70 (स्टोकास्टिक इंडिकेटर की अंतिम पूर्ण बार की सिग्नल लाइन का मान 70 से अधिक होना चाहिए)।
लॉन्ग पोजिशन को तब बंद किया जाना चाहिए जब स्टोकास्टिक ऑस्सीलेटर की सिग्नल लाइन ने 80 या 20 स्तरों को नीचे की ओर पार किया हो।
//+------------------------------------------------------------------+ //| बाजार में प्रवेश और निकासी की स्थिति की जांच करता है | //| 1) मार्केट में प्रवेश (शॉर्ट पोजिशन खोलें, परिणाम=80) | //| 2) मार्केट से निकासी (लॉन्ग पोजिशन बंद करें, परिणाम=40) | //+------------------------------------------------------------------+ int CDC_PL_Stoch::ShortCondition() { int result=0; //--- idx का उपयोग एक्सपर्ट एडवाइज़र कार्य मोड निर्धारित करने के लिए किया जा सकता है //--- idx=0 - इस मामले में EA प्रत्येक टिक पर ट्रेड की स्थितियों की जांच करता है //--- idx=1 - इस मामले में EA केवल न्यूज़ बार पर ट्रेड की स्थिति की जांच करता है int idx =StartIndex(); //--- शॉर्ट पोजिशन खोलने की स्थितियों की जांच //--- "डार्क क्लाउड कवर" पैटर्न और सिग्नल लाइन>70 का निर्माण if (CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) && (StochSignal(1)>70)) result=80; //--- लॉन्ग पोजिशन बंद करने की स्थितियों की जांच //--- ओवरबॉट/ओवरसोल्ड स्तरों (नीचे 80, ऊपर 20) के क्रॉसओवर सिग्नल लाइन if((((StochSignal(1)<80) && (StochSignal(2)>80)) || ((StochSignal(1)<20) && (StochSignal(2)>20)))) result=40; //--- परिणाम लौटाएं return(result); }
2.3. MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइज़र बनाना
CDC_PL_Stoch क्लास स्टैंडर्ड लाइब्रेरी क्लासेज में शामिल नहीं है, इसका उपयोग करने के लिए, adc_pl_stoch.mqh फ़ाइल डाउनलोड करनी होगी (संलग्नकों में देखें) और इसे client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals में सहेजना होगा। वही candlepatterns.mqh फ़ाइल के साथ किया जाना चाहिए। आप इसे MQL5 विजार्ड में MetaEditor को पुनः चालू करने के बाद उपयोग कर सकते हैं।
एक्सपर्ट एडवाइज़र बनाने के लिए MQL5 विजार्ड लॉन्च करें:

MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइज़र बनाना
आइए एक्सपर्ट एडवाइज़र का नाम निर्धारित करें:

एक्सपर्ट एडवाइज़र की सामान्य विशेषताएँ
इसके बाद हमें उपयोग किए गए ट्रेड सिग्नल के मॉड्यूल का चयन करना होगा।

एक्सपर्ट एडवाइज़र के सिग्नल विशेषताएँ
हमारे मामले में हम केवल एक ट्रेड सिग्नल का मॉड्यूल उपयोग करते हैं।
"डार्क क्लाउड कवर/पीयरसिंग लाइन द्वारा पुष्टि किए गए सिग्नल" ट्रेडिंग सिग्नल के मॉड्यूल को जोड़ना:

एक्सपर्ट एडवाइज़र के सिग्नल विशेषताएँ
ट्रेड सिग्नल का मॉड्यूल जोड़ा गया:

एक्सपर्ट एडवाइज़र के सिग्नल विशेषताएँ
आप किसी भी ट्रेलिंग विशेषताओं का चयन कर सकते हैं, लेकिन हम "ट्रेलिंग स्टॉप का उपयोग नहीं किया गया" का उपयोग करेंगे:

एक्सपर्ट एडवाइज़र के पैसे प्रबंधन की विशेषताएँ
पैसे प्रबंधन की विशेषताओं के संबंध में, हम "फिक्स्ड ट्रेड वॉल्यूम के साथ ट्रेडिंग" का उपयोग करेंगे:

एक्सपर्ट एडवाइज़र के पैसे प्रबंधन की विशेषताएँ
"फिनिश" बटन दबाने पर, हमें उत्पन्न एक्सपर्ट एडवाइज़र का कोड प्राप्त होगा, जो Expert_ADC_PL_Stoch.mq5 में स्थित होगा, यह terminal_data_folder\MQL5\Experts\ में सहेजा जाएगा।
उत्पन्न एक्सपर्ट एडवाइज़र के डिफ़ॉल्ट इनपुट पैरामीटर:
//--- मुख्य सिग्नल के लिए इनपुट input int Signal_ThresholdOpen =10; // ओपन करने के लिए सिग्नल थ्रेशोल्ड मान [0...100] input int Signal_ThresholdClose =10; // बंद करने के लिए सिग्नल थ्रेशोल्ड मान [0...100] input double Signal_PriceLevel =0.0; // डील निष्पादित करने के लिए प्राइस लेवल input double Signal_StopLevel =50.0; // स्टॉप लॉस स्तर (पॉइंट्स में) input double Signal_TakeLevel =50.0 // टेक प्रॉफिट स्तर (पॉइंट्स में)
इसे निम्नलिखित में बदलना चाहिए:
//--- मुख्य सिग्नल के लिए इनपुट input int Signal_ThresholdOpen =40; // ओपन करने के लिए सिग्नल थ्रेशोल्ड मान [0...100] input int Signal_ThresholdClose =20; // बंद करने के लिए सिग्नल थ्रेशोल्ड मान [0...100] input double Signal_PriceLevel =0.0 // डील निष्पादित करने के लिए प्राइस लेवल input double Signal_StopLevel =0.0 // स्टॉप लॉस स्तर (पॉइंट्स में) input double Signal_TakeLevel =0.0 // टेक प्रॉफिट स्तर (पॉइंट्स में)
Signal_ThresholdOpen/Signal_ThresholdClose इनपुट पैरामीटर आपको ओपन और क्लोज के लिए थ्रेशोल्ड स्तर निर्धारित करने की अनुमति देते हैं।
LongCondition() और ShortCondition() मेथड्स के कोड में हमने थ्रेशोल्ड के फिक्स्ड मान निर्दिष्ट किए हैं:
- ओपन पोजिशन: 80;
- क्लोज पोजिशन: 40.
MQL5 विजार्ड द्वारा जनरेट किया गया एक्सपर्ट एडवाइज़र "वोट" का उपयोग करके पोजिशन खोलता और बंद करता है। प्रमुख मॉड्यूल का वोट (चूंकि यह सभी जोड़े गए मॉड्यूल का कंटेनर है) भी उपयोग किया जाता है, लेकिन इसके LongCondition() और ShortCondition() मेथड्स हमेशा 0 लौटाते हैं।
प्रमुख मॉड्यूल के वोट के परिणाम "वोट" के औसत में भी उपयोग किए जाते हैं। हमारे मामले में हमारे पास हैं: मुख्य मॉड्यूल + 1 ट्रेड सिग्नल का मॉड्यूल, इसलिए हमें थ्रेशोल्ड मान सेट करते समय इस तथ्य को ध्यान में रखना चाहिए। इस तथ्य के कारण ThresholdOpen और ThresholdClose को 40=(0+80)/2 और 20=(0+40)/2 के रूप में सेट किया जाना चाहिए।
Signal_StopLevel और Signal_TakeLevel इनपुट पैरामीटर का मान 0 पर सेट किया गया है, इसका मतलब है कि पोजिशन केवल तभी बंद की जाएगी जब बंद होने की स्थितियाँ सही हों।
2.4. इतिहास बैकटेस्टिंग परिणाम
आइए एक्सपर्ट एडवाइज़र का बैकटेस्टिंग करें ऐतिहासिक डेटा पर (EURUSD H1, परीक्षण अवधि: 2010.01.01-2011.02.02, PeriodK=9, PeriodD=5, PeriodSlow=20, MA_period=27)।
एक्सपर्ट एडवाइज़र बनाने में हमने फिक्स्ड वॉल्यूम का उपयोग किया (फिक्स्ड लॉट ट्रेडिंग, 0.1), ट्रेलिंग स्टॉप एल्गोरिदम का उपयोग नहीं किया गया (ट्रेलिंग का उपयोग नहीं किया गया).

डार्क क्लाउड कवर/पीयरसिंग लाइन + स्टोकास्टिक पर आधारित एक्सपर्ट एडवाइज़र के परीक्षण परिणाम
उत्तम इनपुट पैरामीटर सेट को स्ट्रेटेजी टेस्टर का उपयोग करके मेटाट्रेडर 5 क्लाइंट टर्मिनल में खोजा जा सकता है।
MQL5 विजार्ड द्वारा बनाए गए एक्सपर्ट एडवाइज़र का कोड expert_adc_pl_stoch.mq5 में संलग्न है।
संबंधित पोस्ट
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विज़ार्ड: RSI के साथ डार्क क्लाउड कवर/पीयर्सिंग लाइन ट्रेड सिग्नल्स
- MQL5 विजार्ड: डार्क क्लाउड कवर/पियर्सिंग लाइन और CCI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विज़ार्ड - हैमर/हैंगिंग मैन और स्टोकास्टिक पर आधारित ट्रेड सिग्नल