
यह रणनीति दो अलग-अलग चक्रों के ईएमए की औसत रेखा के क्रॉसिंग की गणना करके बाजार के रुझान का आकलन करती है और तदनुसार एक व्यापारिक संकेत उत्पन्न करती है। जब छोटी अवधि के ईएमए पर लंबी अवधि के ईएमए को पार करते हैं, तो यह मानते हैं कि बाजार एक उछाल प्रवृत्ति में प्रवेश कर रहा है, तो यह रणनीति अधिक स्थिति खोलेगी; जब छोटी अवधि के ईएमए को कम करते हैं, तो यह मानते हैं कि बाजार गिरावट की प्रवृत्ति में प्रवेश कर रहा है, तो यह रणनीति बाहर निकल जाएगी।
इस रणनीति में मुख्य रूप से दो ईएमए औसत रेखाओं के स्वर्ण-चोक सिद्धांत को लागू किया गया है। दो ईएमए औसत रेखाओं को लंबे ईएमए और छोटे ईएमए में विभाजित किया गया है। लघु ईएमए पैरामीटर को 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)