
यह रणनीति ईएमए (इंडेक्स मूविंग एवरेज) और एमएएमए (एमईएसए एडाप्टेड मूविंग एवरेज) पर आधारित है, जो बाजार में रुझानों का आकलन करने और ट्रेडिंग सिग्नल उत्पन्न करने के लिए उनके क्रॉसिंग के आधार पर है। ईएमए को अक्सर बाजार की प्रवृत्ति की दिशा का आकलन करने के लिए उपयोग किया जाता है, जबकि एमएएमए बाजार के मोड़ बिंदुओं को अधिक सटीक रूप से पकड़ सकता है। दोनों का संयोजन रणनीति के प्रदर्शन को बढ़ा सकता है।
विशेष रूप से, रणनीति ने सबसे पहले त्वरित ईएमए (fl) और धीमी गति से ईएमए (sl) की गणना की, जो क्रमशः अल्पकालिक और दीर्घकालिक रुझानों को दर्शाती है।
और फिर MAMA और FAMA की गणना John Ehlers के सूत्रों के अनुसार करेंः
अंत में, रणनीति ईएमए और MAMA/FAMA के क्रॉसिंग के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती हैः
यह रणनीति ईएमए और एमएएमए संकेतकों के लाभों को जोड़ती है, जिससे ट्रेडिंग सिग्नल की सटीकता में सुधार होता है।
ईएमए के फायदे:
MAMA के फायदे:
दोनों के साथ काम करने के फायदे:
इस रणनीति में मुख्य रूप से निम्नलिखित जोखिम हैं:
जवाबः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
यह रणनीति ईएमए और एमएएमए दोनों संकेतकों के लाभ को एकीकृत करती है और ट्रेंड टर्नओवर को समय पर पकड़ने में सक्षम है। यह एक विश्वसनीय ट्रेंड ट्रैकिंग रणनीति है। पैरामीटर अनुकूलन और जोखिम नियंत्रण के माध्यम से, रणनीति की जीत और लाभप्रदता को बढ़ाया जा सकता है। लेकिन उपयोगकर्ता को अभी भी अपनी जोखिम वरीयताओं के आधार पर सावधानीपूर्वक काम करना होगा।
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("EMAMA strategy", overlay=true)
//This entire strategy is courtesy of LazyBear for programming the original EMAMA system, I simply added a strategy element to everything to round things out.
src=input(hl2, title="Source")
fl=input(.5, title="Fast Limit")
sl=input(.05, title="Slow Limit")
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]))
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)
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)
longCondition = crossover(mama, fama)
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(mama, fama)
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)