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

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

Fig. 2. "3 सफेद सिपाही" कैंडलस्टिक पैटर्न
यहाँ "3 सफेद सिपाही" पैटर्न की पहचान के लिए मेथड है:
//+------------------------------------------------------------------+ //| "3 सफेद सिपाही" कैंडलस्टिक पैटर्न की पहचान करता है | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeWhiteSoldiers() { //--- 3 सफेद सिपाही if((Close(3)-Open(3)>AvgBody(1)) && // लॉन्ग व्हाइट (Close(2)-Open(2)>AvgBody(1)) && (Close(1)-Open(1)>AvgBody(1)) && (MidPoint(2)>MidPoint(3)) && // उच्च मिडपॉइंट्स (MidPoint(1)>MidPoint(2))) return(true); //--- return(false); }
CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) मेथड का उपयोग "3 सफेद सिपाही" कैंडलस्टिक पैटर्न की पहचान के लिए किया जाता है।
2. ट्रेड सिग्नल, CCI इंडिकेटर द्वारा पुष्टि किए गए
लॉन्ग या शॉर्ट पोजीशन खोलने के लिए ट्रेडिंग सिग्नल को CCI इंडिकेटर द्वारा पुष्टि की जानी चाहिए। CCI का मान महत्वपूर्ण स्तर (-50 लॉन्ग पोजीशन के लिए और 50 शॉर्ट पोजीशन के लिए) से अधिक/कम होना चाहिए।
खोलने वाली पोजीशन का बंद होना CCI के मान पर निर्भर करता है। इसे 2 मामलों में किया जा सकता है:
- यदि CCI लाइन ने विपरीत महत्वपूर्ण स्तर (लॉन्ग पोजीशन के लिए 80 और शॉर्ट पोजीशन के लिए -80) को हासिल किया है।
- यदि रिवर्स सिग्नल की पुष्टि नहीं होती है (जब CCI निम्नलिखित स्तरों को हासिल करता है: -80 लॉन्ग पोजीशन के लिए और 80 शॉर्ट पोजीशन के लिए)।

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

Fig. 4. MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर बनाना
आइए एक्सपर्ट एडवाइजर का नाम निर्दिष्ट करें:

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

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

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

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

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

Fig. 10. एक्सपर्ट एडवाइजर के पैसे प्रबंधन की विशेषताएँ
"फिनिश" बटन पर क्लिक करके, हम उत्पन्न एक्सपर्ट एडवाइजर का कोड प्राप्त करेंगे, जो Expert_ABC_WS_CCI.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.03.16, PeriodCCI=37, MA_period=13) पर विचार करें।
एक्सपर्ट एडवाइजर बनाने में हमने फिक्स्ड वॉल्यूम का उपयोग किया (फिक्स्ड लॉट ट्रेडिंग, 0.1), ट्रेलिंग स्टॉप एल्गोरिदम का उपयोग नहीं किया (ट्रेलिंग का उपयोग नहीं किया).

Fig. 11. एक्सपर्ट एडवाइजर के परीक्षण परिणाम, 3 काले कौवे/3 सफेद सिपाही + CCI पर आधारित
इनपुट पैरामीटर का सबसे अच्छा सेट स्ट्रेटेजी टेस्ट के माध्यम से MetaTrader 5 क्लाइंट टर्मिनल पर पाया जा सकता है।
MQL5 विजार्ड द्वारा बनाई गई एक्सपर्ट एडवाइजर का कोड expert_abc_ws_cci.mq5 में संलग्न है।
संबंधित पोस्ट
- MetaTrader 4 के लिए विज़ुअल ऑर्डर प्रोसेसिंग - आपके ट्रेडिंग साथी
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: सुबह/शाम के तारे के आधार पर ट्रेड सिग्नल + CCI के साथ एक्सपर्ट एडवाइजर
- MQL5 विजार्ड - सुबह/शाम के तारे और MFI पर आधारित ट्रेड सिग्नल