एहलर्स MESA अनुकूली मूविंग औसत पर आधारित ट्रेडिंग रणनीति


निर्माण तिथि: 2023-09-28 15:37:13 अंत में संशोधित करें: 2023-09-28 15:37:13
कॉपी: 0 क्लिक्स: 747
1
ध्यान केंद्रित करना
1166
समर्थक

अवलोकन

इस रणनीति को Ehlers MESA Adaptive Moving Average पर आधारित किया गया है और यह एक ट्रेंड ट्रेडिंग रणनीति है जो दो औसत के क्रॉसिंग को ट्रैक करती है। यह एक विशिष्ट द्विआधारी चलती औसत क्रॉसिंग रणनीति है।

रणनीति सिद्धांत

इस रणनीति के केंद्र में दो अनुकूली चलती औसत की गणना की जाती है: MAMA लाइन और FAMA लाइन। इनमें से, MAMA लाइन की गणना के लिए सूत्र निम्नानुसार हैः

alpha = fl / dphase 
alpha = iff(alpha < sl, sl, iff(alpha > fl, fl, alpha))
mama = alpha*src + (1 - alpha)*nz(mama[1])

इसमें, फ्लोर फास्ट लिमिट है, एसएल धीमी गति से सीमित है, और डीपीएज चरण विसंगति है। अल्फा चरण विसंगति के आधार पर गतिशील समायोजन करता है, जिससे अनुकूली चिकनाई पैरामीटर प्राप्त होता है।

FAMA लाइन के लिए सूत्र इस प्रकार है:

fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1]) 

FAMA लाइन MAMA लाइन की एक कम पारगम्य तरंगों वाली चिकनी रेखा है।

रणनीति MAMA लाइन और FAMA लाइन के आकार के संबंध की तुलना करके यह निर्धारित करती है कि यह वर्तमान में एक उछाल या गिरावट की प्रवृत्ति में है, जिससे व्यापारिक संकेत उत्पन्न होते हैं।

रणनीति का विश्लेषण

इस रणनीति के कुछ फायदे हैंः

  1. अनुकूलनशील चलती औसत का उपयोग करके, पैरामीटर को बाजार में परिवर्तन के अनुसार स्वचालित रूप से समायोजित किया जाता है, बिना किसी निश्चित पैरामीटर को मैन्युअल रूप से सेट किए।

  2. कम पारगम्य फ़िल्टर FAMA लाइनों को जोड़ना, जो झूठी दरारों को फ़िल्टर कर सकता है।

  3. दोहरी चलती औसत डिजाइन के साथ, आप बाजार के बीच में लंबी रेखा के रुझानों को ट्रैक कर सकते हैं।

  4. रणनीति तर्क सरल और स्पष्ट है, इसे समझना और संशोधित करना आसान है।

  5. यह सूचकांक सहज है और ट्रेडिंग सिग्नल को स्पष्ट रूप से देखा जा सकता है।

जोखिम विश्लेषण

इस रणनीति के कुछ जोखिम भी हैं:

  1. द्विध्रुवीय क्रॉसिंग रणनीतियों में कई ट्रेडिंग सिग्नल उत्पन्न करने की संभावना होती है, इसलिए उचित अंतराल नियंत्रण और वापसी की सिफारिश की जाती है।

  2. MAMA और FAMA लाइनों की गणना जटिल है, और गलत पैरामीटर सेटिंग से वक्रों में विचलन हो सकता है।

  3. अनुकूलन मापदंडों के कारण अति-अनुकूलन हो सकता है, अन्य तकनीकी संकेतकों के साथ संयुक्त सत्यापन की आवश्यकता होती है।

  4. द्विध्रुवीय क्रॉसिंग में समय की देरी होती है, जिससे ट्रेंड स्विचिंग पॉइंट को याद किया जा सकता है।

  5. झूठी घुसपैठ से होने वाले नुकसान के जोखिम पर ध्यान दें।

रणनीति अनुकूलन दिशा

इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः

  1. पैरामीटर सेटिंग्स को अनुकूलित करें और सबसे अच्छा संयोजन खोजें।

  2. एक बार के नुकसान को नियंत्रित करने के लिए स्टॉप लॉस रणनीति को बढ़ाएं।

  3. अन्य संकेतकों जैसे MACD, RSI आदि के साथ संयोजन फ़िल्टर सिग्नल, झूठे टूटने से बचें।

  4. ट्रेडर्स को ट्रेडर्स के साथ ट्रेड करने के लिए ट्रेडर्स को ट्रेडर्स के साथ ट्रेड करने की आवश्यकता नहीं है।

  5. प्रवेश की गति को अनुकूलित करें, दो-लाइन क्रॉसिंग की दूरी की आवश्यकताओं को समायोजित करें, और बहुत अधिक लेनदेन को कम करें।

  6. रुझान की ताकत के आधार पर विभिन्न रुकावटों के साथ रुकावट रणनीति का अनुकूलन करें।

  7. विभिन्न किस्मों के पैरामीटर सेटिंग्स के अंतर का परीक्षण करें और सर्वोत्तम पैरामीटर संयोजन खोजें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// @author LazyBear 
// 
// List of my public indicators: http://bit.ly/1LQaPK8 
// List of my app-store indicators: http://blog.tradingview.com/?p=970 
//
strategy("Ehlers MESA Adaptive Moving Average [LazyBear with ekoronin fix]", shorttitle="EMAMA_LB (ekoronin fix)", overlay=false, calc_on_every_tick=true, precision=0)
src=input(close, title="Source")
fl=input(.4, title="Fast Limit")
sl=input(.04, title="Slow Limit")
pi = 3.1415926
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0
dt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54)
q1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54)
i1 = nz(dt[3])
jI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54)
jq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54)
i2_ = i1 - jq
q2_ = q1 + jI
i2 = .2*i2_ + .8*nz(i2[1])
q2 = .2*q2_ + .8*nz(q2[1])
re_ = i2*nz(i2[1]) + q2*nz(q2[1])
im_ = i2*nz(q2[1]) - q2*nz(i2[1])
re = .2*re_ + .8*nz(re[1])
im = .2*im_ + .8*nz(im[1])
//p1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1]))
p1 = iff(im!=0 and re!=0, 2*pi/atan(im/re), nz(p[1]))
p2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1))
p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2))
p = .2*p3 + .8*nz(p3[1])
spp = .33*p + .67*nz(spp[1])
//phase = atan(q1 / i1)
phase = 180/pi * atan(q1 / i1) 
dphase_ = nz(phase[1]) - phase
dphase = iff(dphase_< 1, 1, dphase_)
alpha_ = fl / dphase
alpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_))
mama = alpha*src + (1 - alpha)*nz(mama[1])
fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1])
//pa=input(false, title="Mark crossover points")
//plotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title="Crossover Markers")
//fr=input(false, title="Fill MAMA/FAMA Region")
//duml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title="DummyL")
//mamal=plot(mama, title="MAMA", color=red, linewidth=2)
//famal=plot(fama, title="FAMA", color=green, linewidth=2)
//fill(duml, mamal, red, transp=70, title="NegativeFill")
//fill(duml, famal, green, transp=70, title="PositiveFill")
//ebc=input(false, title="Enable Bar colors")
//bc=mama>fama?lime:red
//barcolor(ebc?bc:na)

longSpike=mama>fama? 1:0
shortSpike=mama<fama? 1:0

plot(longSpike, title = "Mama Long", style=line, linewidth=1, color=yellow)
plot(shortSpike, title = "Mama Short", style=line, linewidth=1, color=red)

//possig = iff(reverse and pos == 1, -1,
//          iff(reverse and pos == -1, 1, pos))	   
if (longSpike) 
    strategy.entry("Long", strategy.long)
if (shortSpike)
    strategy.entry("Short", strategy.short)