डबल ईएमए गोल्डन क्रॉस और डेथ क्रॉस ट्रेंड फॉलोइंग रणनीति


निर्माण तिथि: 2024-02-29 11:45:42 अंत में संशोधित करें: 2024-02-29 11:45:42
कॉपी: 0 क्लिक्स: 644
1
ध्यान केंद्रित करना
1617
समर्थक

डबल ईएमए गोल्डन क्रॉस और डेथ क्रॉस ट्रेंड फॉलोइंग रणनीति

अवलोकन

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

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

इस रणनीति के लिए दो ईएमए हैं, एक लंबी अवधि के ईएमए 1 और एक छोटी अवधि के ईएमए 2। ईएमए 1 पैरामीटर 21 है, और ईएमए 2 पैरामीटर 10 है। रणनीति चार घंटे की रेखा के साथ आधार चक्र के रूप में ईएमए के दो सेटों की गणना करती है।

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

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

श्रेष्ठता विश्लेषण

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

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

  • डबल ईएमए संरचना का मूल्यांकन करने के लिए खराब है। यदि यह लंबे समय तक चल रहा है, तो यह गलत संकेत देगा।
  • 4 घंटे के स्तर के संकेतक आकस्मिक घटनाओं के लिए प्रतिक्रिया के लिए संवेदनशील नहीं हैं। महत्वपूर्ण आकस्मिक संदेश 4 घंटे के भीतर बड़े पैमाने पर स्थिति पैदा कर सकते हैं, जो जोखिम को प्रभावी ढंग से नियंत्रित नहीं कर सकते हैं।
  • रणनीति केवल तकनीकी संकेतकों पर आधारित है, मूलभूत जानकारी के साथ गठबंधन नहीं की गई है। यदि कंपनी के मूल में कोई महत्वपूर्ण परिवर्तन होता है, तो तकनीकी संकेतकों को अमान्य कर दिया जा सकता है।

इन जोखिमों को निम्न तरीकों से नियंत्रित किया जा सकता हैः

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

अनुकूलन दिशा

इस रणनीति को और भी बेहतर बनाने के लिए जगह हैः

  1. मॉडल पोर्टफोलियो को बढ़ाएं। विभिन्न पैरामीटर के लिए संकेतकों का एक और पोर्टफोलियो बनाया जा सकता है, जो रणनीति की स्थिरता को बढ़ाता है।

  2. अतिरिक्त रोकथाम तंत्र। एक उचित रोकथाम बिंदु निर्धारित करें, जिससे एकल नुकसान को प्रभावी ढंग से नियंत्रित किया जा सके।

  3. गतिशील पैरामीटर अनुकूलन। ईएमए के पैरामीटर को विभिन्न बाजार स्थितियों के अनुसार स्वचालित रूप से अनुकूलित किया जा सकता है।

  4. मशीन लर्निंग तकनीक के साथ संयुक्त। Tensorflow जैसे ढांचे का उपयोग करते हुए, मॉडल को वास्तविक समय में मूल्य रुझानों की भविष्यवाणी करने के लिए प्रशिक्षित किया जाता है।

संक्षेप

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

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

//@version=3


/// Component Code Startt
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

strategy(title="Ema cross strat", overlay=true)
margin = input(true, title="Margin?")
Margin = margin  ? margin : false
resCustom = input(title="EMA Timeframe", defval="240" )
source = close,
len2 = input(21, minval=1, title="EMA1")
len3 = input(10, minval=1, title="EMA2")
ema2 = request.security(syminfo.tickerid,resCustom,ema(source,len2), lookahead=barmerge.lookahead_off)
ema3 = request.security(syminfo.tickerid,resCustom,ema(source,len3), lookahead=barmerge.lookahead_off)


mylong = crossover(ema3, ema2)
myshort = crossunder(ema3,ema2)

last_long = na
last_short = na
last_long := mylong ? time : nz(last_long[1])
last_short := myshort ? time : nz(last_short[1])

in_long = last_long > last_short ? 2 : 0
in_short = last_short > last_long ? 2 : 0

mylong2 = crossover(ema3, ema2)
myshort2 = crossunder(ema3, ema2)

last_long2 = na
last_short2 = na
last_long2 := mylong2 ? time : nz(last_long2[1])
last_short2 := myshort2 ? time : nz(last_short2[1])

in_long2 = last_long2 > last_short2 ? 0 : 0
in_short2 = last_short2 > last_long2 ? 0 : 0

condlongx =   in_long + in_long2
condlong = crossover(condlongx, 1.9)
condlongclose = crossunder(condlongx, 1.9)

condshortx =  in_short + in_short2
condshort = crossover(condshortx, 1.9)
condshortclose = crossover(condshortx, 1.9)




if crossover(condlongx, 1.9) and testPeriod() and strategy.position_size <= 0
    strategy.entry("Long", strategy.long, comment="Long")

if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size > 0    
    strategy.close("Long",when = not Margin)
    
if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size >= 0
    strategy.entry("Short", strategy.short, comment="Short", when = Margin)