डबल ईएमए क्रॉसओवर पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-11-21 11:41:40 अंत में संशोधित करें: 2023-11-21 11:41:40
कॉपी: 0 क्लिक्स: 620
1
ध्यान केंद्रित करना
1617
समर्थक

डबल ईएमए क्रॉसओवर पर आधारित मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

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

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

इस रणनीति में मुख्य रूप से दो ईएमए औसत रेखाओं के स्वर्ण-चोक सिद्धांत को लागू किया गया है। दो ईएमए औसत रेखाओं को लंबे ईएमए और छोटे ईएमए में विभाजित किया गया है। लघु ईएमए पैरामीटर को 10 दिनों के लिए और लंबे ईएमए पैरामीटर को 21 दिनों के लिए सेट किया गया है।

जब छोटी ईएमए पर लंबी ईएमए से गुजरती है, तो एक खरीद संकेत उत्पन्न होता है; जब छोटी ईएमए नीचे लंबी ईएमए से गुजरती है, तो एक बेचने का संकेत उत्पन्न होता है। यह रणनीति एक ही समय में वृद्धि दर की सीमा निर्धारित करती है, केवल वृद्धि दर के ऊपर होने पर अधिक स्थिति खोलने के लिए, और गिरावट के ऊपर होने पर स्थिति को कम करने के लिए।

विशेष रूप से, शॉर्ट लाइन ईएमए लंबी लाइन ईएमए से अधिक है और शेयर मूल्य वृद्धि दर सेट सकारात्मक थ्रेशोल्ड से अधिक है; शॉर्ट लाइन ईएमए लंबी लाइन ईएमए से कम है और शेयर मूल्य वृद्धि दर सेट नकारात्मक थ्रेशोल्ड से कम है।

रणनीतिक लाभ

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

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

  • ईएमए औसत में देरी है, कीमतों के पलटाव से चूक सकता है
  • औसत क्रॉसिंग में कुछ विलंबता होती है, जिससे स्थिति खोलने का सबसे अच्छा समय खो सकता है
  • पैरामीटर अनुकूलन पर निर्भर करता है, गलत पैरामीटर सेट करने से लेनदेन की आवृत्ति या सिग्नल की कमी हो सकती है

अनुकूलन दिशा

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

संक्षेप

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

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

//@version=3
strategy(title="ema(ema10-21)", overlay=true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 15000, commission_type = strategy.commission.percent, commission_value = 0.2)

useTimeLimit    = input(defval = false, title = "Use Start Time Limiter?")
startYear       = input(defval = 2016, title = "Start From Year",  minval = 0, step = 1)
startMonth      = input(defval = 05, title = "Start From Month",  minval = 0,step = 1)
startDay        = input(defval = 01, title = "Start From Day",  minval = 0,step = 1)
startHour       = input(defval = 00, title = "Start From Hour",  minval = 0,step = 1)
startMinute     = input(defval = 00, title = "Start From Minute",  minval = 0,step = 1)

startTimeOk() => true

lenght0 = input(10)
lenght1 = input(21)

source = close

EmaShort = ema(ema(source, lenght0), lenght0)
EmaLong = ema(ema(source, lenght1),lenght1)
plot(EmaShort, color=red)
plot(EmaLong, color=purple)

growth = ((EmaShort-EmaLong)*100)/((EmaShort+EmaLong)/2)
thresholdUp = input(defval=0.05, title="Threshold Up", type=float, step=0.01)
thresholdDown = input(defval=-0.165, title="Threshold Down", type=float, step=0.001)

if( startTimeOk() )
    buy_condition = EmaShort > EmaLong and growth > thresholdUp
    buy_exit_condition = EmaShort < EmaLong and growth < thresholdDown
    strategy.entry("buy", strategy.long, comment="buy", when=buy_condition)
    strategy.close(id='buy', when=buy_exit_condition)