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

Fig. 1. 3 Black Crows कैंडलस्टिक पैटर्न
"3 ब्लैक क्रो" पैटर्न की पहचान CheckPatternThreeBlackCrows मेथड में की जाती है।
//+------------------------------------------------------------------+ //| Checks formation of "3 Black Crows" candlestick pattern | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeBlackCrows() { //--- 3 Black Crows 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); }
"3 ब्लैक क्रो" कैंडलस्टिक पैटर्न की पहचान CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) मेथड के माध्यम से की जाती है।
1.2. 3 व्हाइट सोल्जर कैंडलस्टिक पैटर्न
यह एक बुलिश कैंडलस्टिक पैटर्न है, जो मौजूदा डाउनट्रेंड के उलटने की भविष्यवाणी करता है। यह पैटर्न भी तीन लगातार लंबे शरीर वाली कैंडलस्टिक्स का उपयोग करता है।

Fig. 2. 3 White Soldiers कैंडलस्टिक पैटर्न
"3 व्हाइट सोल्जर" पैटर्न की पहचान CheckPatternThreeWhiteSoldiers मेथड में की जाती है।
//+------------------------------------------------------------------+ //| Checks formation of "3 White Soldiers" candlestick pattern | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeWhiteSoldiers() { //--- 3 White Soldiers 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); }
"3 व्हाइट सोल्जर" कैंडलस्टिक पैटर्न की जांच CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) मेथड द्वारा की जाती है।
2. MFI इंडिकेटर द्वारा पुष्टि किए गए ट्रेड सिग्नल्स
ट्रेडिंग सिग्नल्स को खुला या बंद करने के लिए MFI इंडिकेटर द्वारा पुष्टि की जानी चाहिए।
- लॉन्ग पोजिशन के लिए MFI का मान 40 से कम होना चाहिए।
- शॉर्ट पोजिशन के लिए MFI का मान 60 से अधिक होना चाहिए।
खुली पोजिशन को बंद करने की प्रक्रिया MFI के मानों पर निर्भर करती है।
- यदि MFI विपरीत क्रिटिकल लेवल (70 लॉन्ग पोजिशन के लिए और 30 शॉर्ट पोजिशन के लिए) पर पहुँच जाता है।
- यदि रिवर्स सिग्नल की पुष्टि नहीं होती है।

Fig. 3. 3 Black Crows पैटर्न, MFI इंडिकेटर द्वारा पुष्टि की गई
- int CBC_WS_MFI::LongCondition() - लॉन्ग पोजिशन खोलने की शर्तों की जांच करता है।
- int CBC_WS_MFI::ShortCondition() - शॉर्ट पोजिशन खोलने की शर्तों की जांच करता है।
2.1. लॉन्ग पोजिशन खोलना/शॉर्ट पोजिशन बंद करना
- "3 व्हाइट सोल्जर" पैटर्न की पुष्टि MFI इंडिकेटर से होनी चाहिए: MFI(1) < 40।
- शॉर्ट पोजिशन तब बंद होनी चाहिए जब MFI क्रिटिकल लेवल (70 या 30) को पार कर ले।
//+------------------------------------------------------------------+ //| Checks conditions for entry and exit from market | //| 1) Market entry (open long position, result=80) | //| 2) Market exit (close short position, result=40) | //+------------------------------------------------------------------+ int CBC_WS_MFI::LongCondition() { int result=0; //--- checking of conditions to open long position if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (MFI(1)<40)) result=80; //--- return result return(result); }
2.2. शॉर्ट पोजिशन खोलना/लॉन्ग पोजिशन बंद करना
- "3 ब्लैक क्रो" पैटर्न की पुष्टि MFI इंडिकेटर से होनी चाहिए: MFI(1) > 60।
- लॉन्ग पोजिशन तब बंद होनी चाहिए जब MFI क्रिटिकल लेवल (70 या 30) को पार कर ले।
//+------------------------------------------------------------------+ //| Checks conditions for entry and exit from market | //| 1) Market entry (open short position, result=80) | //| 2) Market exit (close long position, result=40) | //+------------------------------------------------------------------+ int CBC_WS_MFI::ShortCondition() { int result=0; //--- checking of conditions to open short position if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (MFI(1)>60)) result=80; //--- return result return(result); }
2.3. MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर बनाना
CBC_WS_MFI क्लास स्टैंडर्ड लाइब्रेरी क्लास में शामिल नहीं है, इसे उपयोग करने के लिए आपको abc_ws_mfi.mqh फ़ाइल डाउनलोड करनी होगी।
एक्सपर्ट एडवाइजर बनाने के लिए MQL5 विजार्ड लॉन्च करें।

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

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

Fig. 6. एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज
हमारे मामले में, हम केवल एक ट्रेड सिग्नल मॉड्यूल का उपयोग कर रहे हैं।
"3 ब्लैक क्रो/3 व्हाइट सोल्जर जो MFI द्वारा पुष्टि की गई" ट्रेड सिग्नल मॉड्यूल जोड़ना:

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

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

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

Fig. 10. एक्सपर्ट एडवाइजर की मनी मैनेजमेंट प्रॉपर्टीज
"फिनिश" बटन दबाने पर, हमें जनरेट किया गया एक्सपर्ट एडवाइजर कोड मिलेगा, जो Expert_ABC_WS_MFI.mq5 में स्थित होगा।
जनरेटेड एक्सपर्ट एडवाइजर के डिफ़ॉल्ट इनपुट पैरामीटर:
//--- inputs for main signal input int Signal_ThresholdOpen =10; // Signal threshold value to open [0...100] input int Signal_ThresholdClose =10; // Signal threshold value to close [0...100] input double Signal_PriceLevel =0.0; // Price level to execute a deal input double Signal_StopLevel =50.0; // Stop Loss level (in points) input double Signal_TakeLevel =50.0 // Take Profit level (in points)
लेकिन इसे बदलकर करना होगा:
//--- inputs for main signal input int Signal_ThresholdOpen =40; // Signal threshold value to open [0...100] input int Signal_ThresholdClose =20; // Signal threshold value to close [0...100] input double Signal_PriceLevel =0.0; // Price level to execute a deal input double Signal_StopLevel =0.0; // Stop Loss level (in points) input double Signal_TakeLevel =0.0 // Take Profit level (in points)
Signal_ThresholdOpen/Signal_ThresholdClose इनपुट पैरामीटर आपको ओपन और क्लोज़ करने के लिए थ्रेशोल्ड स्तर निर्दिष्ट करने की अनुमति देते हैं।
MQL5 विजार्ड द्वारा जनरेटेड एक्सपर्ट एडवाइजर ट्रेड सिग्नल मॉड्यूल से "वोट" का उपयोग करके पोजिशन खोलता और बंद करता है।
2.4. बैक टेस्टिंग के परिणाम
आइए एक्सपर्ट एडवाइजर की बैक टेस्टिंग पर नज़र डालते हैं (EURUSD H1, परीक्षण अवधि: 2010.01.01-2011.03.16, PeriodMFI=37, MA_period=13).
एक्सपर्ट एडवाइजर बनाने में हमने फिक्स्ड वॉल्यूम (फिक्स्ड लॉट ट्रेडिंग, 0.1) का उपयोग किया है।

Fig. 11. एक्सपर्ट एडवाइजर के परीक्षण परिणाम
सर्वश्रेष्ठ इनपुट पैरामीटर सेट MetaTrader 5 क्लाइंट टर्मिनल के स्ट्रेटजी टेस्ट का उपयोग करके पाए जा सकते हैं।
संबंधित पोस्ट
- MQL5 विजार्ड: 3 ब्लैक क्रो/3 व्हाइट सोल्जर और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: 3 ब्लैक क्रो/3 व्हाइट सोल्जर + RSI पर आधारित ट्रेड सिग्नल्स के लिए एक्सपर्ट एडवाइजर
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विज़ार्ड: हैमर/हैंगिंग मैन पैटर्न पर आधारित ट्रेड सिग्नल्स - MetaTrader 5 के लिए
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल