डबल ईएमए रणनीति विश्लेषण पर आधारित


निर्माण तिथि: 2024-02-28 18:07:59 अंत में संशोधित करें: 2024-02-28 18:07:59
कॉपी: 1 क्लिक्स: 552
1
ध्यान केंद्रित करना
1621
समर्थक

डबल ईएमए रणनीति विश्लेषण पर आधारित

अवलोकन

डबल ईएमए रणनीति एक प्रवृत्ति ट्रैकिंग रणनीति है जो विभिन्न चक्रों के ईएमए की गणना करके कीमतों की प्रवृत्ति की दिशा की पहचान करती है, ताकि यह तय किया जा सके कि यह स्थिति या स्थिति को बंद कर दे। यह रणनीति सरल है और प्रवृत्ति के लिए उपयुक्त है।

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

यह रणनीति मुख्य रूप से दो ईएमए संकेतकों पर आधारित है, एक छोटी अवधि में 9 दिन का ईएमए और दूसरा लंबी अवधि में 21 दिन का ईएमए। उनके क्रॉसिंग से स्टॉक और स्टॉक के संकेत मिलते हैं।

जब एक दीर्घकालिक ईएमए पर एक दीर्घकालिक ईएमए के माध्यम से प्रवेश किया जाता है, तो यह माना जाता है कि कीमतें एक ऊंची प्रवृत्ति में प्रवेश करती हैं, इस समय रणनीति अधिक ऑर्डर करती है और कीमतों में वृद्धि को ट्रैक करती है। जब एक अल्पकालिक ईएमए के नीचे एक दीर्घकालिक ईएमए के माध्यम से प्रवेश किया जाता है, तो यह माना जाता है कि कीमतें एक नीची प्रवृत्ति में प्रवेश करती हैं, इस समय रणनीति खाली ऑर्डर करती है और कीमतों में गिरावट को ट्रैक करती है।

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

रणनीतिक लाभ

इस रणनीति के निम्नलिखित फायदे हैं:

  1. रणनीति सरल, स्पष्ट और समझने और लागू करने में आसान है।
  2. मूल्य रुझानों की पहचान करने में सक्षम, समय पर स्टॉक बनाने और ट्रेंड को ट्रैक करने में सक्षम।
  3. ईएमए सूचकांक का उपयोग करें शोर को फ़िल्टर करने के लिए और अल्पकालिक मूल्य उतार-चढ़ाव से बचें।
  4. ईएमए पैरामीटर को विन्यस्त करें और रणनीति की संवेदनशीलता को समायोजित करें

रणनीतिक जोखिम

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

  1. प्रवृत्ति के उलट होने पर, ईएमए सूचकांक की पिछली प्रकृति के कारण नुकसान बढ़ सकता है।
  2. ईएमए पैरामीटर को गलत समय पर सेट करने से झूठे संकेतों की दर बढ़ जाती है।
  3. यह रणनीति मजबूत प्रवृत्ति वाले बाजारों के लिए अधिक उपयुक्त है, जो समापन के समय नुकसान के लिए अतिसंवेदनशील है।

रणनीति अनुकूलन

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

  1. अन्य संकेतकों के साथ संयोजन में, प्रवृत्ति को उलट दें और नुकसान को कम करें। जैसे कि MACD, KDJ आदि।
  2. स्टॉप लॉजिक के साथ, एक अच्छी स्टॉप लॉजिक रणनीति रणनीति की अधिकतम वापसी को काफी कम कर सकती है।
  3. ईएमए मापदंडों को अनुकूलित करें ताकि वे विभिन्न किस्मों की कीमत विशेषताओं के अनुकूल हों।
  4. मशीन लर्निंग एल्गोरिदम के साथ ईएमए पैरामीटर का स्वचालित अनुकूलन।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This can only draw so many lines. Use bar replay to go back further
strategy("Strategy Lines", shorttitle="Strategy Lines", overlay=true, max_lines_count=500)

//###########################################################################################################################################
// Replace your strategy here
//###########################################################################################################################################

shortEMA = ta.ema(close, input(9, title="Short EMA Length"))
longEMA = ta.ema(close, input(21, title="Long EMA Length"))

// Entry conditions for long and short positions
longCondition = ta.crossover(shortEMA, longEMA)
shortCondition = ta.crossunder(shortEMA, longEMA)

//###########################################################################################################################################
// Strategy Lines
//###########################################################################################################################################

var timeLow = bar_index
var line li = na
var openLPrice = 0.0000
var openSPrice = 0.0000

LongWColor = input.color(color.rgb(0,255,0,0),"Long Win Color", group="Strategy Lines")
LongLColor = input.color(color.rgb(0,0,255,0),"Long Loss Color", group="Strategy Lines")
ShortWColor = input.color(color.rgb(255,255,0,0),"Short Win Color", group="Strategy Lines")
ShortLColor = input.color(color.rgb(255,0,0,0),"Short Loss Color", group="Strategy Lines")
WinFontColor = input.color(color.rgb(0,0,0,0),"Win Font Color", group="Strategy Lines")
LossFontColor = input.color(color.rgb(255,255,255,0),"Loss Font Color", group="Strategy Lines")
LinesShowLabel = input(false,"Show Labels?",group = "Strategy Lines")

// // Start new line when we go long
// if strategy.position_size >0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)

// // Start new line when we go short
// if strategy.position_size <0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)

// //Delete Lines if we don't have a position open
// if strategy.position_size ==0
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=color.rgb(0,0,0,100))
//     line.delete(li)

if LinesShowLabel
    // Short Label
    if strategy.position_size>=0 and strategy.position_size[1] <0
        label.new(
             timeLow, na, 
             text=str.tostring((openSPrice-close[1])/(syminfo.mintick*10)), 
             color=close[1]<openSPrice?ShortWColor:ShortLColor, 
             textcolor=close[1]<openSPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)
    // Long Label
    if strategy.position_size<=0 and strategy.position_size[1] >0
        label.new(
             timeLow, na,
             text=str.tostring((close[1]-openLPrice)/(syminfo.mintick*10)), 
             color=close[1]>openLPrice?LongWColor:LongLColor, 
             textcolor=close[1]>openLPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)

// Open long position and draw line
if (longCondition)
    //strategy.entry("Long", strategy.long)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)
    openLPrice := close

// Open short position and draw line
if (shortCondition)
    //strategy.entry("Short", strategy.short)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)
    openSPrice := close

//###########################################################################################################################################
// Strategy Execution (Replace this as well)
//###########################################################################################################################################

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)