चलती - औसत - कोड - vba
मैं अंतिम के एक चल औसत की गणना करना चाहता हूं, कहते हैं 20, एक कॉलम की संख्या। एक समस्या यह है कि स्तंभ के कुछ कक्ष खाली हो सकते हैं, उन्हें अनदेखा करना चाहिए। उदाहरण: पिछले तीन की चलती औसत (155167201) 3 होगी। Ive ने यह औसत, ऑफ़सेट, इंडेक्स का उपयोग करके इसे लागू करने की कोशिश की है, लेकिन मैं यह नहीं जानता कि कैसे मैक्रोज़ से परिचित थोड़ा सा, तो इस तरह के एक समाधान ठीक काम करेगा: मूविंग एवरेज (ए 13) किसी भी सुझाव या समाधान के लिए धन्यवाद, 12 मार्च को 15:36 पर क्लिक किया, यह एक सरणी सूत्र बनाने के लिए controlshiftcenter के साथ दर्ज करें। यह नवीनतम तीन मान मिलेगा। यदि आप अधिक या कम चाहते हैं, तो सूत्र में 3 के दो उदाहरणों को जो भी आप चाहते हैं, उसे बदलें। यह भाग उन सभी कक्षों की चौथी सबसे ऊंची पंक्ति संख्या देता है जिनके पास मूल्य है, या आपके उदाहरण में 5 क्योंकि पंक्तियों 6, 8, और 9 एक मूल्य के साथ तीसरे सर्वोच्च पंक्तियों के माध्यम से 1 हैं। यह हिस्सा 9 TRUE या FALSEs पर आधारित है कि पंक्ति नंबर 4 वें सबसे बड़ा से बड़ा है या नहीं। यह उन 9 TRUE या FALSE द्वारा A1: A9 में मूल्यों को पलटता है। सत्य 1 और FALSE को शून्य पर परिवर्तित कर दिए जाते हैं। यह इस तरह से एक योग समारोह छोड़ देता है क्योंकि 155 से ऊपर के सभी मान पंक्ति संख्या मानदंड को संतुष्ट नहीं करते, शून्य से गुणा बढ़ाते हैं। मैंने वीबीए में एक छोटी पटकथा लिखी है उम्मीद है कि यह आप क्या चाहते हैं यहां आप हैं: 1) मैंने 360 कोशिकाओं की सीमा तय की है। इसका मतलब है कि स्क्रिप्ट 360 से अधिक कक्षों के लिए नहीं दिखाई देगी। यदि आप इसे बदलना चाहते हैं तो काउंटर के प्रारंभिक मान को बदल दें। 2) स्क्रिप्ट औसत गोल नहीं देता है। पिछली पंक्ति को मूविंग एवरेज राउंड (सीडीबीएल (टीएमपी आई), 2) में परिवर्तित करें 2) 3) इसका इस्तेमाल सिर्फ आप की तरह होता है, इसलिए सेल में मूविंग एवरेज (ए 13) लिखें। किसी भी टिप्पणी का स्वागत है। यहां एक ऐसा कोड है जो व्यापार में तकनीकी विश्लेषण का उपयोग करने वालों के लिए सहायक होना चाहिए और Excel में रणनीति का परीक्षण करना चाहते हैं। यह सरल, रैखिक रूप से भारित और घातीय चलती औसत की गणना करता है आगे मैं प्रस्तुत और फॉर्म और वीबीए कोड बनाने के लिए कदमों की व्याख्या करेगा। UserForm 8211 नाम डालें: MAForm टूलबॉक्स नियंत्रण से चार लेबल जोड़ें 8211 कैप्शन ऊपर प्रिंट स्क्रीन के अनुसार चलती औसत प्रकार चयन के लिए एक कॉम्बो बॉक्स जोड़ें। इसे कॉम्बो टाइपामा नामित किया गया था इनपुट रेंज और आउटपुट रेंज के लिए दो रिफईड नियंत्रण जोड़ें। चलती औसत अवधि को सील करने के लिए एक पाठ बॉक्स जोड़ें दो बटन जोड़ें: नाम: बटन सबमिट करें, कैप्शन: सबमिट करें और नाम: बटन रद्द करें, कैप्शन: रद्द करें एमए प्रकार चयन के लिए ड्रॉप-डाउन सूची तैयार करने के लिए और यूजर फॉर्म को लोड करें, एक नया मॉड्यूल नीचे दिए गए कोड के साथ डाला जाएगा। कॉम्बो बॉक्स आइटम जो औसत प्रकार चलते हैं और यूज़र फॉर्म लोड किए जाएंगे। विकल्प स्पष्ट उप लोड एमएफ़ॉर्म () MAFormboTypeMA के साथ। रोससोर्स. ऐडआईटीम सरल. AddItem भारित। MAIDER. Show समाप्ति के साथ AddItem Exponential End नीचे सबमिट बटन के लिए जिम्मेदार कोड है। निजी उप बटन SubmitClick () मंद इनपुट रेंज, आउटपुट रेंज के रूप में रेंज इनपुटरेंज में एमए की गणना करने के लिए इस्तेमाल की जाने वाली मूल्य श्रृंखला और आउटपुट रेंज चलती औसत मूल्यों के साथ आबादी होगी। मंद इनपुट अवधि पूर्णांक के रूप में चलती औसत अवधि घोषित की जाती है। मंद इनपुट पता, आउटपुट आउटडर स्ट्रिंग के रूप में स्ट्रिंग के रूप में घोषित इनपुट और आउटपुट श्रेणियां यदि कॉम्बोटाइमएमए वैल्यू एलटीजीटी एक्सपोनेंशन और कॉम्बो टाईपीएमए। वैल्यू एलटीजीटी सरल और कॉम्बो टाईपीएमए वैल्यू एलटीजीटीड वेटेड ट्रू तो एमएसबीबीबॉक्स कृपया सूची से चलती औसत प्रकार का चयन करें। RefInputRange. SetFocus बाहर निकलें उप इस प्रक्रिया के इस भाग को प्रस्तुत डेटा के संबंध में पहले प्रतिबंध लागू करता है। यदि चलती औसत प्रकार ड्रॉप-डाउन सूची में शामिल नहीं है, तो प्रक्रिया अगले चरण में आगे नहीं बढ़ेगी और उपयोगकर्ता को इसे फिर से चुनने के लिए कहा जाएगा अन्यथा RefInputRange. ValueThen MsgBox कृपया इनपुट रेंज का चयन करें। RefInputRange. SetFocus से बाहर निकलें अगर अन्यथा RefOutputRange. ValueMsgBox कृपया आउटपुट रेंज का चयन करें। RefOutputRange. SetFocus से बाहर निकलें तो अन्यथा RefInputPeriod. ValueMsgBox कृपया चलती औसत अवधि का चयन करें। RefInputPeriod. SetFocus बाहर निकलें उप ElseIf NotNumeric (RefInputPeriod. Value) तो औसत अवधि चलने वाले एमएसबीबीबॉक्स एक संख्या होना चाहिए। RefInputPeriod. SetFocus से बाहर निकलें उप अंत अगर अन्य प्रतिबंध बनाया जाता है इनपुट रेंज, आउटपुट रेंज और इनपुट अवधि रिक्त नहीं होनी चाहिए। इसके अलावा, चलती औसत अवधि एक संख्या होना चाहिए। इनपुटएंड्रेस रिफइनपुटरेन्ज। वैल्यू इनपुटरेंज रेंज सेट करें (आउटपुट अकादरी) आउटपुटआदेश रिफॉउटपुटरेन्ज। वेल्यू सेट आउटपुटरेन्ज रेंज (आउटपुट अकादरी) इनपुटपररियड इनफइनपुटपेरियोड। मूल्य इनपुटरेंज और आउटपुट के लिए आर्ग्यूमेंट्स इनपुट श्रेणी और आउटपुटएड्रेस स्ट्रिंग घोषित किए जाएंगे। अगर इनपुटरेन्ज। कॉलम। संख्या एलटीजीटी 1 तब एमएसबीबॉक्स इनपुट रेंज में केवल एक कॉलम हो सकता है। RefInputRange. SetFocus बाहर निकलें उप इनपुटरेंज में केवल एक कॉलम होना चाहिए। अन्य इनपुट-रेंज. रोज. काउंट एलटीजीटी आउटपुटरेन्ज. राही.काउंट फिर एमएसबीबीओक्स आउटपुट रेंज इनपुट रेंज से भिन्न पंक्तियों की संख्या है। RefInputRange. SetFocus उप अंत से बाहर निकलें यदि इनपुट रेंज और आउटपुटरेप में पंक्तियों की बराबर संख्या होनी चाहिए। पूर्णांक पंक्ति कोड पूर्णांक पंक्ति के रूप में इनपुटरेन्ज़.रोज। गणना के रूप में पूर्णांक पूर्णांक रीडिम इनपुटररे के रूप में (1 पंक्ति के लिए) सीआरओ 1 के लिए रोचेकाउंट इनपुटर्रे (सीआरओ) इनपुटरेंज. केल (सीआरओ, 1).अगला सीआरव इनपुटर्रे को ऐरे और एट 8217 के तत्वों के रूप में घोषित किया गया है इनपुट रेंज की प्रत्येक पंक्ति से मूल्यों के अनुरूप है इनपुट पेरेड जीपी राउकाउंट तब चयनित ऑब्जेक्ट्स की एमएसबीबीओक्स संख्या है amp राउकाउंट amp और इस अवधि में amp इनपुटपिरियोड amp। चयनित अवधि से इनपुट रेंज में एक उच्च या बराबर तत्व होना चाहिए। RefInputRange. SetFocus से बाहर निकलें उप अंत अगर एक और प्रतिबंध जोड़ा गया है 8211 इनपुट रेंज में अवधि से अधिक तत्वों का एक उच्च या बराबर राशि होनी चाहिए। अगर इनपुट पीरियोड एलटी 0 तब औसत अवधि चलने वाला एमएसबीबीक्स 0. 0 से अधिक होना चाहिए। रिफइनपुटपरियोड. सेटफोकस सब एंड से बाहर निकलें यदि चलती औसत अवधि शून्य से अधिक होनी चाहिए। रीडिम आउटपुटरेरे (इनपुट पेरेयोड टू रोकॉउंट) वैरिएन्ट के रूप में आउटपुटरेरे के सरणी आयाम भी निर्धारित किए जाते हैं। सरणी के निचले बाउंडिंग इनपुट पेरेयोड मान है और ऊपरी बाउंड रोचेकाउंट का मूल्य है (इनपुटरेंज में तत्वों की संख्या)। कॉम्बो टाईपएमए का चयन सरल है, अगर प्रक्रिया के नीचे सरल चलती औसत गणना की गई। एसएमए ----------------------------------------- यदि कॉम्बोटाइपा एमए वैल्यू सरल होता तो मंद होता , जम्मू के रूप में पूर्णांक मंद करने के लिए डबल के रूप में मैं इनपुट के लिए RowCount temp करने के लिए इनपुट 0 (जम्मू के लिए (इनपुट - Pieriod - 1)) मैं temp temp इनपुट करने के लिए (जे) अगला j outputarray (i) temp inputPeriod outputRange. Cells (i, 1) । वेल्यू आउटपुटरेय (i) अगली मी आउटपुटरेन्ज. सेल (0, 1)। वैल्यू एसएमए (इनपुट इनपुट पीरियड amp) असल में, प्रक्रिया पिछले एक्स नंबरों की चलती औसत को मापती है (एक्स इनपुट पीरियोड के बराबर होती है), जो तत्व के साथ शुरू होती है इनपुट पेरेडियो के बराबर इनपुटररे नीचे एक सरलीकृत उदाहरण है, जो प्रक्रिया के प्रत्येक चरण को दर्शाता है। इस उदाहरण में, चार नंबर (नो 01, नो 02, नो 0 3 और नो 04) पंक्ति 1 से पंक्ति 4 और चलती औसत अवधि 3 है। प्रत्येक नए चलती औसत के बाद गणना की जाती है, आउटपुटरेन्ज के प्रत्येक कक्ष से मूल्य लेगा आउटपुटअरेरे और सभी चलने की औसत के बाद गणना की गई है, आउटपुट से सेल में, एक शीर्षक को चालू करें जिसमें चलती औसत प्रकार और अवधि शामिल है। यह अगले भाग घातीय चलती औसत की गणना करेगा। एएमए -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- अल्फ़ा डबल अल्फा 2 (इनपुटपरियर 1) के लिए जे 1 के लिए इनपुटप्रदर्शन अस्थायी अस्थायी इनपुटराय (जे) अगला जे आउटपुटराय (इनपुटपरिड) temp inputPeriod पहले अल्फा का मान निर्धारित किया जाता है। क्योंकि गणना में, एएमए का मान पिछला ईएमए पर आधारित है, पहले एक सरल चलती औसत होगा। मैं इनपुट पेरेड 1 के लिए रोक्काउंटर आउटपुट (i) आउटपुटरेरे (i-1) अल्फा (इनपुटररे (i) - आउटपुटरेरे (i-1)) आगे मैं दूसरी चल औसत के साथ शुरू कर रहा हूं, इन्हें उपरोक्त फार्मूले के आधार पर गणना की जाएगी: पिछले ईएमए प्लस अल्फा को इनपुटररे से मौजूदा संख्या और पिछले ईएमए मूल्य के बीच के अंतर से गुणा किया गया है। मैं इनपुट के लिए इनपुट के लिए RowCount आउटपुटरेन्ज़.केल (i, 1).Value outputarray (i) अगला I outputRange. Cells (0, 1)। वेल एएमए (amp inputPeriod amp) बस एसएमए के लिए कोड की तरह, outputarray आबादी हो जाएगी और आउटपुटअरे से ऊपर वाला कक्ष चलती औसत के प्रकार और अवधि का प्रतिनिधित्व करेगा। भारित चलती औसत की गणना करने के लिए नीचे कोड है डब्ल्यूएमए ------------------------------------------ एल्सीआई कॉम्बोटाइम MA. Value भारित तब मंद temp2 के लिए पूर्णांक के रूप में इनपुट के लिए इनपुट के लिए Rowcount अस्थायी 0 temp2 0 जम्मू के लिए (i - (इनपुट-पीरियोड -1)) मैं अस्थायी temp inputarray (j) (j - i इनपुट पेरेयोड) temp2 temp2 (j - i इनपुट पेरेयोड) के लिए अगला j outputarray (i ) Temp temp2 outputRange. Cells (i, 1)। वेल्यू आउटपुटरेय (i) अगला I आउटपुटरेन्ज. केल (0, 1)। वैल्यू डब्ल्यूएमए (एम्प इनपुटपरिड एप) समापन यदि नीचे तालिका में प्रत्येक चर के उपयोग के लिए उपयोग किए जाने वाले चरणों को शामिल किया गया है WMA कंप्यूटिंग बस पिछले उदाहरण की तरह, इसमें एक इनपुट रेंज में संख्याएं हैं और इनपुट अवधि 3 है। नीचे प्रक्रिया की अंतिम संहिता है, जो उपयोगकर्ता फॉर्म को अनलोड करता है। MAForm अंत उप लोड करें नीचे की प्रक्रिया रद्द करें बटन के लिए है। इसे उसी मॉड्यूल में जोड़ दिया जाएगा। निजी उप बटनकैन्सेलक्लिक करें () एमएफॉर्म एंड सब को लोड करें, जहां 2 (1 एन) सबस्क्रिप्ट टी का उपयोग समय के लिए निरूपित करने के लिए किया जाता है उदा। टी-1, टीएंड एन से पहले की अवधि को संदर्भित करता है, जो उपयोगकर्ता द्वारा निर्दिष्ट किया जाता है, एएमए की औसत अवधि का संदर्भ देता है। उदाहरण के लिए, एक 3 अवधि की सरल चलती औसत का ईएमए बराबर 3 का है। एन का मूल्य बड़ा, छोटे हो जाता है यह एक बड़ा (1-) और ईएमए टी -1 का अधिकतर एएमए टी में रखा जाता है। एक समय श्रृंखला में ईएमए का पहला पहला मूल्य कीमतों के एन दिन 8217 की सरल चलती औसत माना जा सकता है। कुछ उपयोगकर्ता एएमए के पहले मूल्य के पहले मूल्य को शुरू करना पसंद कर सकते हैं, जहां पर ईएमए अवधि 2x अवधि 2 मूल्य (1 8211) x अवधि 1 मूल्य। उपयोगकर्ताओं को यह समझना चाहिए कि घातीय चलती औसत वास्तव में एक अनन्त श्रृंखला विस्तार है जहां पहले की कीमतों में ईएमए टी पर तेजी से छोटा वजन है। निम्नलिखित पर विचार करें: इसका परिणाम ईएमए में अधिक संवेदनशील होता है और इसकी सरल चलती औसत समकक्ष की तुलना में कम अस्थिर होता है। इसके बारे में अधिक विस्तृत चर्चा वित्त और तकनीकी विश्लेषण में फ़िल्टर के बारे में मेरे लेख में मिल सकती है। विधि A कार्यों का उपयोग करता है, जबकि विधि बी सीएमएफ की गणना करने के लिए उप प्रक्रियाओं का उपयोग करता है। विधि बी तेजी से और अधिक लचीला है VBA में अपने कोड को thisWorkBook कोड विंडो में पेस्ट करें प्रोजेक्ट एक्सप्लोरर में राइट क्लिक करें और वर्कबुक देखें कोड देखें। निजी उप कार्यपुस्तिकाउप () बाकी किसी भी मॉड्यूल से संबंधित हैं एक्सेल को इन कार्यों की सूची में शामिल करने के लिए कहें, उनके विवरण जोड़ें और तकनीकी संकेतक नामक एक नई श्रेणी बनाएं। अनुप्रयोग। मैक्रोवॉशन मैक्रो: ईएमए, विवरण: घातीय मूविंग औसत लौटाता है। amp CHR (10) amp CHR (10) amp; पिछला अवधि का चयन करें EMA या पिछले अवधि की कीमत अगर वर्तमान अवधि पहली है amp Chr (10) amp chr (10) amp वर्तमान मूल्य और n द्वारा पीछा किया। एपीएचएच (10) एमएचपीएच (10) एमएचपीएच (10) एमएचपी (10) एपीपी घातीय चलती औसत के क्षय घटक को अल्फा 2 (एन 1) के रूप में गणना की जाती है, सार्वजनिक फ़ंक्शन एएमए (ईएमए काल, कीमत, एन) ईएमए अल्फा मूल्य (1 - अल्फा) EMAYesterday एक बार जब आप उपरोक्त के साथ किया जाए, तो आप किसी भी सेल ईएमए (अंतिम अवधि ईएमए, चालू मूल्य, एन) में टाइप करके घातीय स्थानांतरित औसत की गणना कर सकते हैं। यदि आप अपने डेटासेट का पहला ईएमए कम्प्यूटिंग कर रहे हैं तो अंतिम अवधि ईएमए के रूप में अंतिम अवधि मूल्य दर्ज करें। पद्धति बी चलाने के लिए, आपको अपने मॉड्यूल में संचय वितरण लाइन पर पृष्ठ से रनथिस उप को कॉपी करना होगा। आपको रनटाइस उप से ईएमए भी चलाने चाहिए उप रनथिस के लिए निम्न पंक्ति जोड़ें सही उपर से पहले इसे रखें और रनथिस को कॉल करने वाले सभी मैक्रोज़ को अक्षम करें यह सब टीए 2 से ईएमए की गणना शुरू करेगा, उप ईएमए (पास 1 रेंज, रेंज के रूप में आउटपुट, एनज लाँग) close0 close1 ( 1, 1)। पता (झूठी, झूठी) बंद 1 एक बंद 1 (2, 1)। पता (झूठी, झूठी) आउटपुट 1 आउटपुट (1, 1)। पता (झूठी, गलत) आउटपुट (2, 1)। मूल्य 2 (1 amp amp; amp amp; amp amp; amp amp; 1 amp amp; 1-2 amp; 1 amp amp amp; आउटपुट output1 आउटपुट (2, 1).गुण 2 (1 amp amp amp) amp amp; close1a amp (1-2 (1 amp amp amp)) amp close0 जैसा आपने अभी पढ़ा है या इसे टिप किया है। वित्त 4 ट्रेडर्स का उद्देश्य व्यापारियों को निष्पक्ष शोध और विचारों को लाने के लिए शुरू करना है। 2005 के बाद से, मैं एक व्यक्तिगत आधार पर व्यापारिक रणनीति विकसित कर रहा हूं। इन मॉडलों में से सभी मेरे लिए उपयुक्त नहीं हैं, लेकिन अन्य निवेशकों या व्यापारियों को उन्हें उपयोगी लग सकता है आखिरकार, लोगों के पास विभिन्न निवेशक लक्ष्यों और आदतों की संख्या होती है। इस प्रकार, वित्त 4 ट्रेडर्स मेरे काम का प्रसार करने के लिए एक सुविधाजनक मंच बन जाते हैं। (फाइनेंस 4 ट्रेडर्स के बारे में और पढ़ें) कृपया इस वेबसाइट को एक उचित और गंभीर तरीके से प्रयोग करें। इसका अर्थ है कि यदि आप हमारी किसी भी सामग्री का उपयोग करते हैं तो आपको वित्त -4 ट्रेडर्स को कम से कम इस साइट पर लिंक प्रदान करना चाहिए। इसके अलावा, आपको हमारी सामग्री का उपयोग गैर-कानूनी तरीके से करने की अनुमति नहीं है। आपको यह भी समझना चाहिए कि हमारी सामग्री को कोई वारंटी नहीं दी गई है और आपको उन पर निर्भर होने से पहले हमारी सामग्री को स्वतंत्र रूप से सत्यापित करना चाहिए। इस साइट पर जाकर साइट सामग्री नीति और गोपनीयता नीति देखें। 0 टिप्पणी: एक टिप्पणी पोस्ट करें एक व्यापार रणनीति एक कॉर्पोरेट रणनीति के समान है। अपने संसाधनों की गंभीरता से अध्ययन करने से आपको अधिक प्रभावी निर्णय लेने में मदद मिलेगी। (पढ़ें) 8226 तकनीकी संकेतक समझना तकनीकी संकेतक सिर्फ समीकरणों से ज्यादा नहीं हैं। अच्छी तरह से विकसित संकेतक, जब वैज्ञानिक रूप से लागू होते हैं, वास्तव में व्यापारियों को वित्तीय डेटा से महत्वपूर्ण जानकारी निकालने में मदद करने के लिए उपकरण हैं। (पढ़ें) 8226 मैं एक्सेल एक्सेल का इस्तेमाल करना पसंद करता हूं, इसलिए आपको डेटा को नेत्रहीन रूप से प्रस्तुत करता है I यह आपके लिए आपके काम को समझने और समय बचाने के लिए बहुत आसान बनाता है (पढ़ते रहिये)
Comments
Post a Comment