
इस रणनीति का मुख्य विचार ईएमए सूचक के गोल्ड फॉर्क और डेड फॉर्क सिग्नल का उपयोग करके खरीद और बिक्री संचालन करना है। यह एक साथ कई समूहों को तेज और धीमी गति से ईएमए को रेखांकित करता है, और ट्रेडिंग सिग्नल के निर्णय के लिए उनके क्रॉसिंग का उपयोग करता है।
यह रणनीति पहले ईएमए औसत रेखाओं के एक समूह को परिभाषित करती है, जिसमें ईएमए 1 से ईएमए 6 और ईएमए 7 से ईएमए 12 शामिल हैं। इसके बाद, यह buy_signal और sell_signal को परिभाषित करता हैः
इस प्रकार, जब अल्पकालिक ईएमए औसत रेखा पर लंबी ईएमए औसत रेखा को पार करता है, तो यह दर्शाता है कि बाजार एक उछाल प्रवृत्ति में है, खरीदें; जब अल्पकालिक ईएमए औसत रेखा के नीचे लंबी ईएमए औसत रेखा को पार करता है, तो यह दर्शाता है कि बाजार एक गिरावट प्रवृत्ति में है, बेचें।
रणनीति ईएमए औसत रेखा के क्रॉसिंग की निगरानी करके प्रवृत्ति की दिशा का आकलन करती है ताकि खरीद और बिक्री के निर्णय लिए जा सकें।
इस रणनीति के कुछ फायदे हैं:
ईएमए औसत रेखा का उपयोग करके प्रवृत्ति का आकलन करें, ईएमए औसत रेखा मूल्य परिवर्तनों के लिए अधिक चिकनी है, जो अल्पकालिक बाजार के शोर को फ़िल्टर कर सकती है, जिससे ट्रेडिंग सिग्नल अधिक विश्वसनीय हो जाते हैं।
एक ही समय में ईएमए के कई समूहों को रेखांकित करने से प्रवृत्ति में परिवर्तन को अधिक सटीक रूप से निर्धारित किया जा सकता है। तेज और धीमी ईएमए लाइनों के क्रॉसिंग से महत्वपूर्ण प्रवृत्ति मोड़ बिंदुओं को याद करने से बचा जा सकता है।
रणनीति सरल और स्पष्ट है, ईएमए क्रॉसिंग के माध्यम से ट्रेडिंग सिग्नल जारी करता है, इसे समझने में आसान है और इसे अंजाम देने के लिए उपयुक्त है।
अनुकूलन योग्य ईएमए चक्र पैरामीटर, विभिन्न किस्मों और बाजारों के अनुसार पैरामीटर को समायोजित करने के लिए, बाजार में बदलाव के लिए लचीलापन।
इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:
ईएमए औसत में देरी होती है, जिससे ट्रेडिंग सिग्नल में देरी हो सकती है।
गलत ईएमए पैरामीटर संयोजन का चयन करने से गलत ट्रेडिंग सिग्नल उत्पन्न हो सकता है।
ईएमए क्रॉसिंग के कारण झूठे संकेतों को प्रभावी ढंग से फ़िल्टर नहीं किया जा सकता है।
अति-अनुरूपता का खतरा है, ईएमए पैरामीटर के लिए अनुकूलन के लिए सीमित स्थान है।
क्या करें?
अन्य संकेतकों के साथ संयोजन में फ़िल्टरिंग, कंपन क्षेत्र में गलत संकेतों से बचने के लिए
विभिन्न चक्रों की स्थिरता का परीक्षण करें ताकि ओवरफिट न हो।
जोखिम को नियंत्रित करने के लिए रणनीति पैरामीटर के संयोजन को ठीक से समायोजित करें या बाहर निकलें
इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः
हानि को रोकने के लिए रणनीति को बढ़ाएं, हानि के एक निश्चित स्तर तक पहुंचने के बाद हानि को रोकें।
फिर से बाजार में प्रवेश करने के लिए एक तंत्र जोड़ें, यानी फिर से खरीदने और बेचने के संकेत सेट करें।
ईएमए क्रॉस-साइकल पैरामीटर के संयोजन को अनुकूलित करें और सबसे अच्छा पैरामीटर ढूंढें।
अन्य मापदंडों को जोड़ने के लिए, बहु-कारक सत्यापन के लिए, सिग्नल की गुणवत्ता में सुधार।
विभिन्न किस्मों के पैरामीटर का परीक्षण करें और अनुकूलित करें।
फिक्स्ड डिस्क ट्रेडिंग में स्लाइडिंग कारक को ध्यान में रखते हुए, रिट्रेसिंग और समायोजन करें।
यह रणनीति ईएमए औसत के तेजी से और धीमी गति से क्रॉस निर्णय प्रवृत्ति की दिशा का उपयोग करता है, क्रॉस सिग्नल के आधार पर खरीदा और बेचा जाता है, यह एक सरल प्रवृत्ति ट्रैकिंग रणनीति है। इसमें प्रवृत्ति परिवर्तन का निर्णय करने का लाभ है, लेकिन इसमें विलंबता और आघात का जोखिम भी है। स्टॉप लॉस, पैरामीटर ऑप्टिमाइज़ेशन, मल्टी फैक्टर वेरिफिकेशन और अन्य तरीकों के माध्यम से रणनीति की प्रभावशीलता को और बढ़ाया जा सकता है।
/*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=3
//Companion Strategy script to my Cloud Study. Enjoy! -MP
// study("MP's Cloud Study", overlay=true)
strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05)
//bgcolor ( color=black, transp=20, title='Blackground', editable=true)
src = close, len1 = input(2, minval=1, title="Short EMA")
src2 = close, len3 = input(7, minval=1, title="Long EMA")
emaShort = ema(src, len1)
emaLong = ema(src2, len3)
StartYear = input(2018, "Start Year")
StartMonth = input(01, "Start Month")
StartDay = input(18, "Start Day")
StopYear = input(2018, "Stop Year")
StopMonth = input(12, "Stop Month")
StopDay = input(26, "Stop Day")
tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0)
//src = close,
//len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(3, minval=1, title="Fast EMA 2")
//len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(5, minval=1, title="Fast EMA 4")
len5 = input(8, minval=1, title="Fast EMA 5")
len6 = input(10, minval=1, title="Fast EMA 6")
//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")
//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
//Slow EMA
ema7 = ema(src, len7)
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)
//Fast EMA Color Rules
//colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
//colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12
//colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12
//Fast EMA Final Color Rules
//colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
//colFinal2 = colslowL ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver)
p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver)
fill(p1,p2,color=silver, transp=60)
//Slow EMA Plots
//p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2)
//plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2)
//plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2)
//plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2)
//plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2)
//p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2)
//fill(p3,p4, color=silver, transp=60)
//Plot the Ribbon
ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short")
ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long")
fcolor = emaShort>emaLong?green:red
fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill")
//fast = 4, slow = 16
//fastMA = ema(close, fast)
//slowMA = ema(close, slow)
//plot(fastMA, color=green, title = "buy/sell")
//plot(slowMA, color=red, title = "base")
//Conditions
buy_signal = crossover(ema1,ema3)
sell_signal = crossunder(ema1,ema3)
plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short")
plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long")
alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01')
alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01')
//alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency')
//alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency')
testStartYear = input(2018, "From Year")
testStartMonth = input(1, "From Month")
testStartDay = input(1, "From Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "To Year")
testStopMonth = input(1, "To Month")
testStopDay = input(1, "To Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
if testPeriod()
if buy_signal
strategy.entry("Long", true)
if sell_signal
strategy.close("Long")