ऑसिलेटर्स के लिए नॉर्मलाइज़र: ट्रेडिंग में नई संभावनाएं

Mike 2008.11.20 16:03 22 0 0
संलग्नक

नमस्ते दोस्तों! आज हम बात करेंगे एक ऐसे टूल के बारे में जो ट्रेडिंग में बहुत काम का है – नॉर्मलाइज़र। जब कभी मुझे ऑसिलेटर्स के प्रभावशीलता के बारे में सोचना होता था, तब मुझे उनके मानों का नॉर्मलाइजेशन करने की बहुत जरूरत महसूस होती थी। इसका मतलब है कि ऑसिलेटर के उतार-चढ़ाव को [-1;1] की रेंज में लाना। इससे हमें नए अवसर मिलते हैं, जैसे कि हम ऑसिलेटर के मानों को निश्चित स्तरों (जैसे 0.5, 0.8) के द्वारा नियंत्रित कर सकते हैं, बजाय इसके कि मार्केट में अनियोजित मानों पर निर्भर रहें। अगर ऑसिलेटर पहले से ही नॉर्मलाइज्ड है, तो इस टूल की जरूरत नहीं है, वरना इसका उपयोग अवश्य करें। कृपया कोड की कच्ची स्थिति के लिए मुझे ज्यादा कठोर मत समझिए।

पैरामीटर्स:

string Indicator - यह ऑसिलेटर है जिसे icustom() फंक्शन में पास किया जाएगा। अफसोस की बात है कि MQL4 के ऑटोमेटाइजेशन टूल्स यहां मानक ऑसिलेटर्स को जोड़ने के लिए पर्याप्त नहीं हैं। लेकिन, एक जिज्ञासु कोडर को प्रोग्राम में एंट्री बदलने से कौन रोक सकता है?
int mode - प्रारंभिक ऑसिलेटर की आवश्यक लाइन का नंबर...
int param1
int param2 - और इसके अन्य पैरामीटर्स। एक बार फिर, MQL डेवलपर्स की कल्पना केवल इस बात तक सीमित है कि वे वैरिएबल नंबर के पैरामीटर्स वाली फंक्शंस लिख सकें (जैसे Print) और पता अर्धगणित का समर्थन कर सकें। इसलिए चलो हम मैनुअली काम करते हैं।

चित्र:

टिप्पणियाँ:

गणनाएँ दो चरणों में की जाती हैं:

1. प्रारंभिक चरण (init() फंक्शन, अगर कोई नहीं जानता तो:) में ऑसिलेटर डेटा के पूरे एरे का विश्लेषण किया जाता है ताकि विशिष्ट अवधि की गणना की जा सके। इसका मतलब है कि औसत वर्ग मान (MSV) पूरी इतिहास से प्राप्त किया जा सके।

समझाइए। मान लीजिए हमारे पास एक ऑसिलेटर है और हमने इसके औसत वर्ग को कई लगातार ऑसिलेशन अवधियों के लिए गणना की है। तो मान लेते हैं कि हमें, उदाहरण के लिए, 3 अवधियों की आवश्यकता है (जैसा कि मैंने - #define PERIODS_CHARACTERISTIC 3 में किया है, मैं अधिक उपयोग करने की सिफारिश नहीं करता, अन्यथा प्रोसेसर ओवरलोड हो जाएगा)। गणना का सार इस बात में है कि यह निर्धारित करना है कि औसत लंबाई की एक अवधि पर औसतन कितने बार हैं (यानी ऑसिलेटर के दो ज़ीरो के बीच के औसत अंतराल को 2 से गुणा करना), और प्राप्त मान को 3 से गुणा करना।

2. इसके बाद हमें प्रत्येक बार के लिए MSV की गणना करनी है (जैसे कि डिस्पर्शन का वर्गमूल) प्राप्त तीन अवधियों पर, हमारे ऑसिलेटर के मान को उस पर नॉर्मलाइज करना है, और अंत में सब कुछ [-1;1] के डायनामिक रेंज में लाना है, इसे एक कंपरेसर-फंक्शन f(x)=tanh(x) (हाइपरबोलिक टैंजेंट) के माध्यम से। मुझे यह फंक्शन खुद लिखना पड़ा:)

यह एक शुद्ध तकनीकी उदाहरण है। चित्र में हरी रेखा मेरा बहुत पुराना ऑसिलेटर है जो बाजार की गतिविधि को दर्शाता है (वास्तव में यह MACD जैसा है, लेकिन यह वॉल्यूम पर आधारित है)। नीली रेखा - यह भी एक ऑसिलेटर है, लेकिन यह पहले से ही -=Normalizator=- के माध्यम से गुज़रा है। +-0.75, +-0.5, +-0.25 स्तर स्पष्ट रूप से देखे जा सकते हैं, और आप देख सकते हैं कि सभी अधिकतम और न्यूनतम, वृद्धि और गिरावट के क्षेत्र, और ज़ीरो लेवल को पार करने के बिंदु अपनी स्थिति बनाए रखते हैं।

तो, यहाँ है... अगर किसी को यह पसंद नहीं है तो मैं जिम्मेदार नहीं हूँ।

सूची
टिप्पणी 0