माला एडाप्टिव मूविंग एवरेज रणनीति जॉन एहलर्स द्वारा विकसित एमईएसए एडाप्टिव मूविंग एवरेज संकेतक पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। रणनीति व्यापारिक निर्णय लेने के लिए साइन तरंगों का उपयोग करती है, कम कीमतों पर खरीदती है, उच्च कीमतों पर बेचती है। मापदंडों के स्लाइडिंग समायोजन के माध्यम से, साइन तरंग खुद को विभिन्न उत्पादों और बाजार वातावरण के अनुकूल बना सकती है।
माला एडाप्टिव मूविंग एवरेज रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए एक साइन वेव जनरेटर का उपयोग करती है। साइन वेव एक घूर्णी वेक्टर (फासोर कहा जाता है) द्वारा ऊर्ध्वाधर अक्ष पर डाली गई छाया द्वारा निर्धारित की जाती है। जब वेक्टर 360 डिग्री घूमता है, तो एक चक्र पूरा हो जाता है। जब वेक्टर एक कोण से गुजरता है, तो खरीद संकेत उत्पन्न होते हैं, और जब यह एक अन्य कोण से गुजरता है, तो बिक्री संकेत उत्पन्न होते हैं। इस प्रकार, ट्रेडिंग निर्णयों को समय क्षेत्र में तरंगरूप विशेषताओं के बजाय आवृत्ति डोमेन में कोणों के संदर्भ में परिभाषित किया जाता है, जिससे रणनीति विभिन्न वायदा अनुबंधों और बाजार की स्थितियों में अधिक मजबूत हो जाती है।
विशेष रूप से, रणनीति पहले मूल्य को चिकनी और रोकती है, फिर साइन वेव के दो घटकों की गणना करती हैः इन-फेज घटक I और क्वाड्रेटर घटक Q। इन दो घटकों को अंतिम Re और Im प्राप्त करने के लिए चरण शिफ्टिंग द्वारा ओवरलैप और फ़िल्टर किया जाता है। Re और Im साइन वेव की आवृत्ति जानकारी को दर्शाता है। अवधि अवधि को atanIm/Re से व्युत्पन्न किया जा सकता है। अपेक्षित अवधि सीमा के आधार पर एक चिकनी अवधि अवधि निर्धारित की जाती है। अवधि और चरण जानकारी MAMA और FAMA वक्रों को निर्धारित करती है, जिनके क्रॉसओवर ट्रेडिंग सिग्नल का उत्पादन करते हैं। पैरामीटर अल्फा को अवधि और चरण परिवर्तन दर डेल्टापेस के आधार पर एक निश्चित सीमा के भीतर गतिशील रूप से समायोजित किया जाता है, जिससे संकेतक बाजार की स्थितियों में परिवर्तन के लिए खुद को अनुकूलित कर सकता है।
माला अनुकूली चलती औसत रणनीति के निम्नलिखित फायदे हैंः
व्यापारिक संकेतों के रूप में साइन तरंगों और चरणों का उपयोग करने से रणनीति अधिक मजबूत हो जाती है, समय क्षेत्र में तरंग रूप विशेषताओं से प्रभावित नहीं होती है।
अवधि और मापदंडों की अनुकूलन क्षमता बाजार परिवर्तनों के लिए मजबूत अनुकूलन क्षमता को सक्षम करती है।
एमएएमए और एफएएमए वक्र केवल मूल्य विशेषताओं पर निर्भर करते हैं, बिना देरी के, समय पर रुझान उलटने को कैप्चर करते हैं।
रणनीति की संवेदनशीलता को अलग-अलग ट्रेडिंग शैलियों के अनुरूप पैरामीटर ट्यूनिंग के माध्यम से समायोजित किया जा सकता है।
स्पष्ट और सरल तर्क अनुसंधान और शिक्षण के लिए समझ, संशोधन और अनुप्रयोग की सुविधा प्रदान करता है।
माला अनुकूली चलती औसत रणनीति में निम्नलिखित जोखिम भी हैं:
साइन वक्र अवधि और चरणों पर निर्भर करते हुए, असामान्य मूल्य विकृतियां गलत संकेत उत्पन्न कर सकती हैं।
अवधि के अनुमान में निर्धारित कठोर सीमाएं अवधि परिवर्तनों में अपर्याप्त सुचारूता का कारण बनती हैं।
चरण तालाबंदी और प्रमुख बिंदुओं के चारों ओर अवधि तालाबंदी घटकों के दोलन का कारण बनती है, संभावित रूप से इष्टतम प्रविष्टियों और निकासों को याद करते हुए।
बाजार की अस्थिरता बढ़ने पर मापदंडों और वक्रों की अनुकूलन क्षमता कम हो जाती है।
एक तकनीकी संकेतक के रूप में, रणनीति महत्वपूर्ण तकनीकी स्तरों के आसपास झूठे ब्रेकआउट और गलत संकेत पैदा करती है।
इन जोखिमों को अधिक सुचारू मापदंडों, अन्य संकेतकों के साथ संकेत फ़िल्टरिंग, स्थिति आकार समायोजन आदि के माध्यम से कम किया जा सकता है।
माला अनुकूली चलती औसत रणनीति में निम्नलिखित पहलुओं में सुधार किया जा सकता हैः
अधिक प्राकृतिक सुचारूता के लिए अवधि और पैरामीटर गणना में सुधार करना, उदाहरण के लिए, बेहतर मूल्य मॉडलिंग के लिए सांख्यिकीय तरीकों की शुरूआत करना।
सटीकता बढ़ाने के लिए अस्थिरता, मात्रा और मौलिक के साथ संकेतों को फ़िल्टर करें।
व्यापार लागत को कम करने और मजबूती में सुधार के लिए पैरामीटर सेटिंग्स और स्लिप नियंत्रण को अनुकूलित करें।
गतिशील मापदंड अनुकूलन के लिए मशीन लर्निंग और आनुवंशिक एल्गोरिदम पेश करें।
लाभप्रदता में सुधार के लिए विभिन्न प्रविष्टियों और निकासों के आधार पर प्रवृत्ति और औसत-वापसी प्रणालियों के साथ संयोजन विकसित करना।
माला अनुकूली चलती औसत रणनीति व्यापार संकेत उत्पन्न करने के लिए साइन वेव विश्लेषण का उपयोग करती है, स्वचालित रूप से गतिशील पैरामीटर ट्यूनिंग के माध्यम से बाजार में बदलाव के लिए खुद को अनुकूलित करती है, जिससे यह काफी मजबूत और व्यापक रूप से लागू होती है। अन्य अनुकूली चलती औसत रणनीतियों की तुलना में, यह अधिक व्यावहारिकता और स्थिरता का प्रदर्शन करती है। लेकिन एक तकनीकी रणनीति के रूप में, यह महत्वपूर्ण तकनीकी स्तरों के आसपास गलत संकेतों के अधीन है, जिसके लिए सहायक उपकरणों के साथ फ़िल्टरिंग और अनुकूलन की आवश्यकता होती है। निरंतर सुधार के साथ, इस रणनीति में एक अनुशंसित अनुकूली व्यापार प्रणाली बनने की क्षमता है।
/*backtest start: 2022-11-30 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("自适应移动平均的MESA系统", overlay=true) fastlimit = input(0.5,'') slowlimit = input(0.05,'') smooth = 0.0 detrender = 0.0 I1 = 0.0 Q1 = 0.0 JI = 0.0 JQ = 0.0 I2 = 0.0 Q2 = 0.0 Re = 0.0 Im = 0.0 period = 0.0 smoothperiod = 0.0 phase = 0.0 deltaphase = 0.0 alpha = 0.0 MAMA = 0.0 FAMA = 0.0 price = 0.0 price := (high + low)/2 PI = 2 * asin(1) if (bar_index > 5) smooth := (4*price + 3*price[1] + 2*price[2] + price[3])/10 detrender := (.0962*smooth + .5769*nz(smooth[2]) - .5769*nz(smooth[4]) - .0962*nz(smooth[6]))*(.075*nz(period[1]) + .54) // compute InPhase and Quadrature components Q1 := (.0962*detrender + .5769*nz(detrender[2]) - .5769*nz(detrender[4]) - .0962*nz(detrender[6]))*(.075*nz(period[1]) + .54) I1 := nz(detrender[3]) // advance the pulse of i1 and q1 by 90 degrees JI := (.0962*I1 + .5769*nz(I1[2]) - .5769*nz(I1[4]) - .0962*nz(I1[6]))*(.075*nz(period[1]) + .54) JQ := (.0962*Q1 + .5769*nz(Q1[2]) - .5769*nz(Q1[4]) - .0962*nz(Q1[6]))*(.075*nz(period[1]) + .54) //phase addition for 3-bar averaging I2 := I1 - JQ Q2 := Q1 + JI //smooth the i and q components before applying I2 := .2*I2 + .8*nz(I2[1]) Q2 := .2*Q2 + .8*nz(Q2[1]) // hymodyne discriminator Re := I2*I2[1] + Q2*nz(Q2[1]) Im := I2*Q2[1] + Q2*nz(I2[1]) Re := .2*Re + .8*nz(Re[1]) Im := .2*Im + .8*nz(Im[1]) if (Im != 0 and Re != 0) period := 2 * PI/atan(Im/Re) if (period > 1.5 * nz(period[1])) period := 1.5*nz(period[1]) if (period < .67*nz(period[1])) period := .67*nz(period[1]) if (period < 6) period := 6 if (period > 50) period := 50 period := .2*period + .8*nz(period[1]) smoothperiod := .33*period + .67*nz(smoothperiod[1]) if (I1 != 0) phase := (180/PI) * atan(Q1/I1) deltaphase := nz(phase[1]) - phase if (deltaphase < 1) deltaphase := 1 alpha := fastlimit/deltaphase if(alpha < slowlimit) alpha := slowlimit MAMA := alpha*price + (1 - alpha)*nz(MAMA[1]) FAMA := .5*alpha*MAMA + (1 - .5*alpha)*nz(FAMA[1]) if (FAMA < MAMA) strategy.entry("Long", strategy.long) else if (FAMA > MAMA) strategy.entry("Short", strategy.short)