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

लेखक:चाओझांग, दिनांक: 2023-11-21 11:41:40
टैगः

img

अवलोकन

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

सिद्धांत

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

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

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

लाभ

  • सरलता और विश्वसनीयता के लिए डबल ईएमए लाइनों के स्वर्ण क्रॉस और मृत्यु क्रॉस सिद्धांत का उपयोग करता है
  • कमजोर वृद्धि के दौरान गलत लेनदेन से बचने के लिए वृद्धि दर की सीमाएँ जोड़ता है
  • अधिकतम हानि अनुपात को सख्ती से नियंत्रित कर सकता है
  • ईएमए अवधि के मापदंडों को विभिन्न चक्रों के लिए लचीले ढंग से समायोजित किया जा सकता है

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

  • ईएमए लाइनों में विलंब प्रभाव होते हैं, संभवतः मूल्य उलट बिंदुओं की कमी होती है
  • लाइन क्रॉसिंग में कुछ देरी होती है, संभवतः सबसे अच्छे प्रवेश बिंदुओं को याद किया जाता है
  • पैरामीटर अनुकूलन पर निर्भर करता है, अनुचित सेटिंग्स ओवरट्रेडिंग या अपर्याप्त संकेतों का कारण बन सकती हैं

अनुकूलन दिशाएँ

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

सारांश

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


/*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)

अधिक