होम सिस्टम ट्रेडिंग पोस्ट

MQL5 विजार्ड: 3 ब्लैक क्रो/3 व्हाइट सोल्जर और स्टोकास्टिक पर आधारित ट्रेड सिग्नल

संलग्नक
283.zip (6.6 KB, डाउनलोड 0 बार)

MQL5 विजार्ड एक बेहतरीन टूल है जो आपको एक्सपर्ट एडवाइजर्स बनाने की सुविधा देता है। यह टूल आपको अपने ट्रेड आइडियाज को जल्दी चेक करने की सुविधा देता है। इसके लिए आपको अपनी खुद की ट्रेडिंग सिग्नल क्लास बनानी होगी। इस क्लास की संरचना और उदाहरण के लिए आप आर्टिकल MQL5 विजार्ड: ट्रेडिंग सिग्नल्स के मॉड्यूल को कैसे बनाएं देख सकते हैं।

इसका मूल विचार यह है कि ट्रेडिंग सिग्नल क्लास को CExpertSignal से लिया जाता है, और फिर, आपको अपने खुद के LongCondition() और ShortCondition() वर्चुअल मेथड्स को ओवरराइड करना होता है।

एक किताब है "सर्वश्रेष्ठ ट्रेडर्स की रणनीतियाँ" जिसमें कई ट्रेडिंग स्ट्रेटेजीज़ को बताया गया है। हम यहाँ रिवर्सल कैंडलस्टिक पैटर्न्स पर ध्यान केंद्रित करेंगे जो कि स्टोकास्टिक, CCI, MFI और RSI ऑस्सीलेटर द्वारा कन्फर्मेड हैं।

सबसे अच्छा तरीका यह है कि आप एक अलग क्लास बनाएं, जो CExpertSignal से ली गई हो ताकि आप कैंडलस्टिक पैटर्न्स की फॉर्मेशन की जांच कर सकें। कैंडलस्टिक पैटर्न द्वारा जनरेटेड ट्रेड सिग्नल्स की पुष्टि के लिए, आपको CCandlePattern से ली गई क्लास लिखनी होगी और वहां आवश्यक फीचर्स (जैसे, ऑस्सीलेटर द्वारा पुष्टि) जोड़नी होगी।

1. "3 ब्लैक क्रो" और "3 व्हाइट सोल्जर्स" रिवर्सल कैंडलस्टिक पैटर्न

1.1. 3 ब्लैक क्रो

यह एक बेयरिश कैंडलस्टिक पैटर्न है जो वर्तमान अपट्रेंड के रिवर्सल की भविष्यवाणी करने के लिए उपयोग किया जाता है। इस पैटर्न में तीन लगातार लंबे शरीर वाली कैंडलस्टिक्स होती हैं जो पिछले दिन की तुलना में नीचे बंद होती हैं।

3 ब्लैक क्रो पैटर्न

चित्र 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 व्हाइट सोल्जर कैंडलस्टिक पैटर्न

यह एक बुलिश कैंडलस्टिक पैटर्न है जिसका उपयोग वर्तमान डाउनट्रेंड के रिवर्सल की भविष्यवाणी करने के लिए किया जाता है। इस पैटर्न में तीन लगातार लंबे शरीर वाली कैंडलस्टिक्स होती हैं जो पिछले दिन की तुलना में ऊपर बंद होती हैं।

3 व्हाइट सोल्जर पैटर्न

चित्र 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. ट्रेड सिग्नल्स, जो स्टोकास्टिक इंडिकेटर द्वारा कन्फर्म होते हैं

लॉन्ग या शॉर्ट पोजिशन खोलने के लिए ट्रेड सिग्नल्स को स्टोकास्टिक ऑस्सीलेटर द्वारा कन्फर्म किया जाना चाहिए। सिग्नल %D लाइन को संबंधित क्रिटिकल लेवल (30 या 70) से ऊपर/नीचे होना चाहिए।

खुली हुई पोजिशन का क्लोजिंग %D इंडिकेटर के मानों पर निर्भर करती है। यह दो मामलों में किया जा सकता है:

  1. अगर %D लाइन ने विपरीत क्रिटिकल लेवल (80 लॉन्ग पोजिशन के लिए और 20 शॉर्ट पोजिशन के लिए) को पार कर लिया है।
  2. अगर रिवर्स सिग्नल की पुष्टि नहीं होती है (जब %D लाइन अगले स्तरों पर पहुँचती है: 20 लॉन्ग पोजिशन के लिए और 80 शॉर्ट पोजिशन के लिए)।

स्टोकास्टिक द्वारा कन्फर्म किया गया पैटर्न

चित्र 3. "3 व्हाइट सोल्जर" पैटर्न, स्टोकास्टिक द्वारा कन्फर्म किया गया

एंट्री और एग्जिट के लिए ट्रेड कंडीशंस की जांच दो मेथड्स में की जाती है:

  • int CBC_WS_Stoch::LongCondition() - लॉन्ग पोजिशन खोलने के लिए कंडीशंस की जांच करता है (80 लौटाता है) और शॉर्ट पोजिशन को क्लोज करता है (40 लौटाता है);
  • int CBC_WS_Stoch::ShortCondition() - शॉर्ट पोजिशन खोलने के लिए कंडीशंस की जांच करता है (80 लौटाता है) और लॉन्ग पोजिशन को क्लोज करता है (40 लौटाता है)।

2.1. लॉन्ग पोजिशन खोलना/शॉर्ट पोजिशन को बंद करना

  1. "3 व्हाइट सोल्जर" पैटर्न की फॉर्मेशन को स्टोकास्टिक इंडिकेटर द्वारा कन्फर्म किया जाना चाहिए: StochSignal(1)<30 (स्टोकास्टिक इंडिकेटर की पिछले पूर्ण बार की सिग्नल लाइन का मान 30 से कम होना चाहिए)।
  2. शॉर्ट पोजिशन को बंद कर देना चाहिए अगर स्टोकास्टिक इंडिकेटर की सिग्नल लाइन 20 या 80 स्तरों को ऊपर की ओर पार कर ले।
//+------------------------------------------------------------------+
//| मार्केट में एंट्री और एग्जिट कंडीशंस की जांच करता है         |
//+------------------------------------------------------------------+
int CBC_WS_Stoch::LongCondition()
  {
   int result=0;
   //--- लॉन्ग पोजिशन के लिए कंडीशंस की जांच
   //--- "3 व्हाइट सोल्जर" पैटर्न और सिग्नल लाइन<30
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (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. शॉर्ट पोजिशन खोलना/लॉन्ग पोजिशन को बंद करना

  1. "3 ब्लैक क्रो" पैटर्न की फॉर्मेशन को स्टोकास्टिक इंडिकेटर द्वारा कन्फर्म किया जाना चाहिए: StochSignal(1)>70 (स्टोकास्टिक इंडिकेटर की पिछले पूर्ण बार की सिग्नल लाइन का मान 70 से अधिक होना चाहिए)।
  2. लॉन्ग पोजिशन को बंद कर देना चाहिए अगर स्टोकास्टिक इंडिकेटर की सिग्नल लाइन 80 या 20 स्तरों को नीचे की ओर पार कर ले।
//+------------------------------------------------------------------+
//| मार्केट में एंट्री और एग्जिट कंडीशंस की जांच करता है         |
//+------------------------------------------------------------------+
int CBC_WS_Stoch::ShortCondition()
  {
   int result=0;
   //--- शॉर्ट पोजिशन के लिए कंडीशंस की जांच
   //--- "3 ब्लैक क्रो" पैटर्न और सिग्नल लाइन>70
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (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 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर्स बनाना

CBC_WS_Stoch क्लास स्टैंडर्ड लाइब्रेरी क्लास में शामिल नहीं है, इसे इस्तेमाल करने के लिए आपको acbc_ws_stoch.mqh फाइल डाउनलोड करनी होगी और इसे client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals में सेव करना होगा। इसी तरह candlepatterns.mqh फाइल के साथ भी करना होगा। आप इसे MQL5 विजार्ड में मेटा एडिटर को रीस्टार्ट करने के बाद उपयोग कर सकते हैं।

एक एक्सपर्ट एडवाइजर बनाने के लिए MQL5 विजार्ड लॉन्च करें:

MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर बनाना

चित्र 4. MQL5 विजार्ड का उपयोग करके एक्सपर्ट एडवाइजर बनाना

आइए एक्सपर्ट एडवाइजर का नाम निर्दिष्ट करें:

एक्सपर्ट एडवाइजर की सामान्य विशेषताएँ

चित्र 5. एक्सपर्ट एडवाइजर की सामान्य विशेषताएँ

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

एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

चित्र 6. एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

हमारे मामले में हम केवल एक ट्रेड सिग्नल मॉड्यूल का उपयोग करेंगे।

"3 ब्लैक क्रो/3 व्हाइट सोल्जर स्टोकास्टिक द्वारा कन्फर्म किए गए" ट्रेड सिग्नल मॉड्यूल जोड़ना:

एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

चित्र 7. एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

ट्रेड सिग्नल मॉड्यूल जोड़ दिया गया है:

एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

चित्र 8. एक्सपर्ट एडवाइजर के सिग्नल प्रॉपर्टीज

आप कोई भी ट्रेलिंग प्रॉपर्टीज़ चुन सकते हैं, लेकिन हम "ट्रेलिंग स्टॉप उपयोग नहीं किया" का उपयोग करेंगे:

एक्सपर्ट एडवाइजर के ट्रेलिंग प्रॉपर्टीज

चित्र 9. एक्सपर्ट एडवाइजर के ट्रेलिंग प्रॉपर्टीज

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

एक्सपर्ट एडवाइजर के पैसे प्रबंधन प्रॉपर्टीज

चित्र 10. एक्सपर्ट एडवाइजर के पैसे प्रबंधन प्रॉपर्टीज

"फिनिश" बटन दबाने पर, हमें जनरेटेड एक्सपर्ट एडवाइजर का कोड प्राप्त होगा, जो Expert_ABC_WS_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 विजार्ड द्वारा जनरेटेड एक्सपर्ट एडवाइजर पोजिशन को ट्रेड सिग्नल्स के मॉड्यूल से "मत" लेकर ओपन और क्लोज करता है। मुख्य मॉड्यूल का वोट भी "मत" औसत में इस्तेमाल किया जाता है। हमारे मामले में हमारे पास है: मुख्य मॉड्यूल + 1 ट्रेड सिग्नल मॉड्यूल, इसलिए हमें थ्रेशोल्ड वैल्यूज़ सेट करते समय इस तथ्य को ध्यान में रखना होगा।

Signal_StopLevel और Signal_TakeLevel इनपुट पैरामीटर्स को 0 पर सेट किया गया है, जिसका अर्थ है कि पोजिशन्स को केवल तब बंद किया जाएगा जब क्लोजिंग कंडीशंस सच होंगे।

2.4. इतिहास बैकटेस्टिंग परिणाम

आइए एक्सपर्ट एडवाइजर की बैकटेस्टिंग पर नजर डालें (EURUSD H1, परीक्षण अवधि: 2010.01.01-2011.02.02, PeriodK=47, PeriodD=9, PeriodSlow=13, MA_period=5)।

एक्सपर्ट एडवाइजर बनाने में हमने फिक्स्ड वॉल्यूम (फिक्स्ड लॉट ट्रेडिंग, 0.1) का उपयोग किया है, ट्रेलिंग स्टॉप एल्गोरिदम का उपयोग नहीं किया गया है (ट्रेलिंग का उपयोग नहीं किया गया).

एक्सपर्ट एडवाइजर के परीक्षण परिणाम

चित्र 11. "3 ब्लैक क्रो/3 व्हाइट सोल्जर + स्टोकास्टिक" पर आधारित एक्सपर्ट एडवाइजर के परीक्षण परिणाम

इनपुट पैरामीटर्स का सबसे अच्छा सेट स्ट्रेटेजी टेस्टर का उपयोग करके पाया जा सकता है।

MQL5 विजार्ड द्वारा बनाए गए एक्सपर्ट एडवाइजर का कोड expert_abc_ws_stoch.mq5 में संलग्न किया गया है।

संबंधित पोस्ट

टिप्पणी (0)