
स्व-अनुकूली चलती औसत रणनीति (Mala Adaptive Moving Average Strategy) एक मात्रात्मक ट्रेडिंग रणनीति है जो जॉन एहलर्स के MESA स्व-अनुकूली चलती औसत सूचक पर आधारित है। यह रणनीति ट्रेडिंग निर्णय लेने के लिए सिग्नल तरंगों का उपयोग करती है, जो कम पर खरीदी जाती है और उच्च पर बेची जाती है, जिससे सिग्नल तरंगों को स्लाइडिंग समायोजन मापदंडों के माध्यम से विभिन्न किस्मों और बाजार की परिस्थितियों के अनुकूल बनाया जा सकता है।
अनुकूलन चलती औसत रणनीति व्यापार संकेतों को उत्पन्न करने के लिए एक सकारात्मक तरंग जनरेटर का उपयोग करती है। सकारात्मक तरंगों को एक घूर्णन वेक्टर द्वारा निर्धारित किया जाता है (जिसे एक आयाम कहा जाता है) जो एक लंबवत अक्ष पर छाया डालता है। वेक्टर 360 डिग्री घुमाता है, एक चक्र पूरा करता है। जब वेक्टर एक कोण से गुजरता है तो एक खरीद संकेत उत्पन्न होता है, और जब वह दूसरे कोण से गुजरता है तो एक बेचने का संकेत उत्पन्न होता है। इस प्रकार, व्यापार निर्णय आवृत्ति क्षेत्र में कोण द्वारा परिभाषित होते हैं, न कि समय क्षेत्र में तरंग विशेषताओं द्वारा, जो रणनीति को अधिक असभ्य बना सकते हैं और विभिन्न किस्मों और बाजार की परिस्थितियों के अनुकूल हो सकते हैं।
विशेष रूप से, इस रणनीति में कीमतों को चिकनाई और प्रवृत्ति से हटाया जाता है, और फिर सकारात्मक तरंगों के दो अंशों की गणना की जाती है: सम-चरण भाग I और ध्रुवीय भाग Q. इन दो अंशों को चरण के क्षैतिज स्थानांतरण के माध्यम से ओवरलैप किया जाता है, और अंततः Re और Im प्राप्त होते हैं। Re और Im सकारात्मक तरंगों की आवृत्ति की जानकारी को दर्शाते हैं, और एक चक्र अवधि उत्पन्न कर सकते हैं। एक चिकनी अवधि निर्धारित करें जो अपेक्षित चक्र की सीमा के अनुसार है। चरण और चरण की जानकारी MAMA और FAMA वक्रों को निर्धारित करती है, और उनके क्रॉसिंग से ट्रेडिंग सिग्नल उत्पन्न होते हैं।
अनुकूलित चलती औसत रणनीतियों के निम्नलिखित फायदे हैंः
ट्रेडिंग सिग्नल के रूप में सिग्नल तरंगों और चरणों का उपयोग करना, रणनीति को अधिक कठोर बनाता है और समय क्षेत्र तरंगों से प्रभावित नहीं होता है।
चक्र और मापदंडों को बाजार में परिवर्तन के लिए गतिशील रूप से समायोजित किया जा सकता है, जिसमें एक मजबूत आत्म-अनुकूलन क्षमता है।
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)