होम तकनीकी संकेतक पोस्ट

Condition Scanner: MetaTrader 4 के लिए एक बेहतरीन संकेतक

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

Condition Scanner (CS)

इस कोड के पीसों का विचार यह है:

आप एक (सेट) स्थिति का सपना देखते हैं। आप अपनी स्थितियों का परीक्षण करने के लिए कोड लिखते हैं। आप अपने कोड को इन कोड के टुकड़ों में एम्बेड करते हैं। आप कुछ आसान संशोधन करते हैं।

आपके पास कुछ संकेतक होते हैं। एक वर्तमान चार्ट पर ऐतिहासिक रूप से आपकी स्थितियों के उद्भव को दिखाएगा। दूसरा एक पैनल पर यह दिखाएगा कि आपकी रुचि के सभी उपकरणों और समय सीमा में, क्या स्थितियाँ वर्तमान में उत्पन्न हुई हैं। इससे आपको मैन्युअल रूप से जोड़े और समय सीमाओं को स्कैन करने की आवश्यकता नहीं होती।

इंस्टॉल करने के लिए:

चार फ़ोल्डरों (Indicators, Include, Templates, Profiles) की सामग्री को अपनी स्थापना के समकक्ष फ़ोल्डरों में कॉपी करें। इसमें कुछ भी हानिकारक नहीं है - केवल संकेतक, आदि।

MetaQuotes प्रोग्राम से बाहर निकलें और फिर से प्रवेश करें।

स्कैनर क्या कर सकता है, यह प्रदर्शित करने के लिए:

यह उदाहरण Power Pro (सेटअप पहचानकर्ता = "PP") पर आधारित है, जिसे Russ Horn द्वारा प्रचारित किया गया था। यह एक बैंड ब्रेक-आउट रणनीति है जहां ऊपरी बैंड सीमा उच्चों का EMA है और निचली सीमा निम्नों का EMA है। मैं इन रणनीतियों का समर्थन नहीं करता - यह केवल आपके द्वारा विकसित किए जा सकने वाले उदाहरण के रूप में है।

अपने सिस्टम पर, प्रोफ़ाइल cspp पर स्विच करें। पहले डिस्प्ले के लिए यह कुछ सेकंड ले सकता है लेकिन इसके बाद यह ज्यादा कंप्यूटर संसाधन का उपयोग नहीं करता।

आपको इस तरह का स्क्रीन दिखाई देना चाहिए:

उपर्युक्त उदाहरण में शामिल हैं:

  • एक ऑन-चार्ट संकेतक जिसमें 4 प्लॉट हैं,
  • एक अलग विंडो संकेतक जो EMA of RSI दिखाता है,
  • एक अलग विंडो संकेतक जो ऐतिहासिक रूप से लंबी या छोटी ट्रेडों के सुझाव देने वाली स्थितियों को दिखाता है,
  • और एक पैनल संकेतक जो यह दिखाता है कि वही स्थितियाँ अभी हाल ही में या वर्तमान में विभिन्न जोड़ों और समय सीमाओं में उत्पन्न हुई हैं।

सभी स्कैन के लिए सामान्य कोड:

Utils.mqh में कुछ उपयोगिता फ़ंक्शन होते हैं जिन्हें किसी भी संकेतक, विशेषज्ञ सलाहकार, आदि में उपयोग किया जा सकता है।

cs_Chart.mqh में वर्तमान-चार्ट संकेतक के लिए लगभग सभी कोड होता है।

cs_Panel.mqh में पैनल डिस्प्ले संकेतक के लिए लगभग सभी कोड होता है।

PP (Power Pro) रणनीति के लिए विशिष्ट कोड:

csPP_0.mq4 प्रासंगिक "चार्ट-विंडो" संकेतक प्रदर्शित करता है।

csPP_1.mq4 प्रासंगिक "अलग-विंडो" संकेतक प्रदर्शित करता है।

csPP_Chart.mq4 वह संकेतक है जो वर्तमान चार्ट पर ऐतिहासिक रूप से क्या हुआ, यह दिखाता है।

csPP_Panel.mq4 वह संकेतक है जो आपकी रुचि के सभी जोड़ों और समय सीमाओं पर वर्तमान स्थिति दिखाता है।

csPP_GetBarFlag.mqh वह कोड है जो चार्ट और पैनल संकेतकों में "शामिल" है। यह वह हिस्सा है जो यह तय करता है कि क्या किसी विशेष बार पर कोई रुचिकर स्थिति है।

MAX (मूविंग एवरेज क्रॉसओवर) रणनीति के लिए विशिष्ट कोड:

csMAX_0.mq4 एक कस्टम संकेतक है जो दो मूविंग एवरेज को प्रदर्शित करता है। यह पूरी तरह से आत्म-निहित है।

csMAX_Chart.mq4, csMAX_Panel.mq4 और csMAX_GetBarFlag.mqh वही कार्य करते हैं जैसे PP रणनीति के लिए ऊपर।

csXXXX से आरंभ होने वाले कोड:

ये टेम्पलेट हैं जिन्हें अतिरिक्त स्कैन विकसित करते समय उपयोग किया जा सकता है।

नई स्थिति के लिए कोडिंग कैसे करें:

मैं एक रणनीति पहचानकर्ता (जैसे PB पिनबार के लिए) निर्धारित करता हूँ।

मैं अपने विंडो को "स्कैनर क्या कर सकता है" के तहत ऊपर की तरह सेट करता हूँ, किसी भी मौजूदा संकेतकों को हटाते हुए।

अगर मेरा नया स्कैन ऑन-चार्ट संकेतकों पर निर्भर करता है, तो मैं उन्हें csXXXX_0.mq4 का पैटर्न बनाकर बनाता हूँ। मैं ध्यान रखता हूँ कि इसे "सेव ऐज़..." csPB_0.mq4 के रूप में सेव करूं। मैं अपने कस्टम संकेतक को बाईं ओर के चार्ट पर लागू करता हूँ।

अगर मुझे अलग विंडो संकेतक की आवश्यकता है, तो मैं इसे भी बनाता हूँ। मैं ध्यान रखता हूँ कि इसे "सेव ऐज़..." csPB_1.mq4 के रूप में सेव करूं। मैं इसे बाईं ओर के चार्ट पर लागू करता हूँ।

मैं मानक संकेतकों का उपयोग करने के बजाय कस्टम संकेतकों का निर्माण करता हूँ ताकि मैं उन्हें iCustom फ़ंक्शन का उपयोग करके अन्य स्थानों पर संदर्भित कर सकूँ। इस तरह, अगर मैं अपनी रणनीति के मूल पैरामीटर्स (जैसे मूविंग एवरेज विधि) के बारे में अपना मन बदलता हूँ, तो मुझे केवल अपने कस्टम संकेतकों को बदलना होगा।

मैं csXXXX_Chart.mq4 को लेता हूँ, 'XXXX' के सभी उदाहरणों को अपनी रणनीति पहचानकर्ता 'PB' से बदलता हूँ, और कोड को csPB_Chart.mq4 के रूप में सेव करता हूँ। यह अभी संकलित नहीं होगा क्योंकि कुछ "शामिल" कोड अभी लिखे जाने बाकी हैं।

अब "शामिल" कोड प्रदान करने का समय है।

अगर जिन स्थितियों का मैं परीक्षण करना चाहता हूँ, वे बहुत आसान हैं, तो मैं "शामिल" फ़ाइल csXXXX_GetBarFlag.mqh का उपयोग करता हूँ, जो मैं चाहता हूँ उसे कोड करता हूँ, और "सेव ऐज़..." csPB_GetBarFlag.mqh के रूप में सेव करता हूँ। लेकिन अगर कोडिंग की जटिलता है, तो मैं पहले से बनाए गए csPB_Chart.mq4 पर वापस जाता हूँ, उस कोड की पंक्ति को टिप्पणी करता हूँ जो अब पढ़ता है "#include <csPB_GetBarFlag.mqh>" और मैं जो चाहता हूँ उसे सीधे csPB_Chart.mq4 फ़ाइल में बनाता हूँ। जब मैंने इसे साफ कर लिया है, तो मैं स्थिति-खोजने वाले कोड को "शामिल" फ़ाइल 'csPB_GetBarFlag.mqh' में ले जाता हूँ और 'csPB_Chart.mq4 फ़ाइल में #include बयान को अन-कमेंट करता हूँ।

अब 'csPB_Chart.mq4' फ़ाइल संकलित की जा सकती है और बाईं ओर के चार्ट पर लागू की जा सकती है।

इस बिंदु पर, मैं बाईं ओर के चार्ट के लिए टेम्पलेट को csPB-CHART.tpl के रूप में सेव करता हूँ। इसमें किसी भी ऑन-चार्ट कस्टम संकेतकों, अलग-विंडो कस्टम संकेतकों और परिणामों का प्लॉट शामिल है जो वर्तमान चार्ट पर लागू होते हैं।

मैं 'csXXXX_Panel.mq4' फ़ाइल को लोड करता हूँ, "XXXX" के सभी उदाहरणों को "PB" से बदलता हूँ, फिर "सेव ऐज़..." "csPB_Panel.mq4" के रूप में करता हूँ। यह अंतिम फ़ाइल संकलित की जाती है और दाईं ओर के चार्ट पर लागू की जाती है। यह पहली बार लागू करने पर थोड़ा धीमा हो सकता है लेकिन चलाने के दौरान अधिक संसाधन का उपयोग नहीं करता।

मैं आमतौर पर csPB को एक प्रोफ़ाइल के रूप में संग्रहीत करता हूँ।

नोट: कस्टम संकेतकों का निर्माण करते समय और फिर उन्हें iCustom फ़ंक्शन के साथ संदर्भित करते समय, मैं ध्यान रखता हूँ कि नाम सही हों। अगर iCustom किसी ऐसे संकेतक को संदर्भित करता है जो मौजूद नहीं है, तो आपको कोई चेतावनी नहीं मिलती।

नोट: ऐसा हो सकता है कि जब पैनल संकेतक पहली बार लोड होता है, तो यह परिणाम उत्पन्न करता है जो प्रदर्शित चार्ट पर विशिष्ट नहीं होते। मुझे लगता है कि अगर मैं पैनल विंडो पर समय सीमा बदलता हूँ (इससे फिर से गणना करना मजबूर होता है), तो सब कुछ सही हो जाता है। अगर कोई मुझे इस समस्या का सही समाधान बता सके तो मैं आभारी रहूँगा।

नोट: ...GetBarFlag.mqh कोड में जिसे आप स्वयं विकसित करते हैं, आप किसी भी पूर्णांक को कॉलिंग प्रोग्राम को वापस कर सकते हैं जिसे प्रदर्शित किया जाएगा। जैसे कि कोड खड़ा है, शून्य का अर्थ है 'कोई परिणाम नहीं' और यह उस बार को दिखाने का कारण बनता है जो परीक्षण किया गया था। नकारात्मक पूर्णांक लौटाने से लाल प्रदर्शित होगा जबकि सकारात्मक पूर्णांक हरे रंग में प्रदर्शित होगा।

सॉफ्टवेयर के कुछ पहलू:

कोड को संकेतकों के रूप में लिखा गया था ताकि, जब पैनल प्रदर्शित हो और आप किसी विशेष जोड़ी और समय सीमा को देखना चाहते हैं, तो आप बस मार्केट वॉच विंडो से जोड़ी चुनें, उसे वर्तमान चार्ट स्पेस पर खींचें और समय सीमा को अनुकूलित करें। टेम्पलेट बाकी का ध्यान रखता है।

कंप्यूटर ओवरलोड को कम करने के प्रयास में, मैंने दो चीजें की हैं।

पहला, जब समय-श्रृंखला ऐरे के साथ काम करते हैं, तो मैं आमतौर पर केवल 200 बार पीछे जाता हूँ।

दूसरा, पैनल डिस्प्ले सॉफ़्टवेयर उपयोगकर्ता की स्थितियों का परीक्षण हर टिक पर नहीं करता है। यह एक टाइमर तंत्र का उपयोग करता है ताकि परीक्षण केवल तब किया जाए जब बार[0] लगभग 90% बना हो, अन्यथा बार[1] पर परीक्षण किया जाता है। अगर बार[1] पर फोकस है (यानी बार[0] 90% से कम बना है), तो इसे एक बार परीक्षण किया जाता है और बार[0] समय पर परिवर्तन का समय निकाला जाता है। तब तक जो भी टिक आता है, तब तक कुछ नहीं होता। मुझे 100% यकीन नहीं है कि मैंने इसे सही ढंग से कोड किया है लेकिन यह काफी अच्छा काम करता है।

उपरोक्त टाइमर तंत्र के अलावा, पैनल की शीर्ष पंक्ति सबसे हाल की स्थिति- परीक्षण घटना की तारीख और समय को दिखाती है। इसके अलावा, यहां दिए गए उदाहरणों में, न्यूट्रल विंडिंग बार[0] पर ध्यान केंद्रित होने पर शून्य दिखाएगी और बार[1] पर ध्यान केंद्रित होने पर '1' दिखाएगी।

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

टिप्पणी (0)