इस रणनीति ने ट्रेंड की पहचान और ट्रैकिंग के लिए चलती औसत और अपेक्षाकृत मजबूत संकेतकों के लाभों का पूरा उपयोग किया है। इसमें केवल दो संकेतकों की आवश्यकता होती है ताकि प्रवृत्ति के निर्णय और प्रविष्टियों / निकास के समय का चयन किया जा सके। इस रणनीति का उद्देश्य मध्यम-लंबी रेखा की कीमतों की प्रवृत्ति को पकड़ना है ताकि अल्पकालिक बाजार के शोर से भटकने से बचा जा सके।
यह रणनीति तीन अलग-अलग चक्रों के ईएमए की औसत रेखा का उपयोग करती है, ईएमए-ए सबसे कम अवधि के लिए, ईएमए-बी के बाद, ईएमए-सी सबसे लंबा है। जब छोटी अवधि ईएमए-ए पर लंबी अवधि के ईएमए-बी को पार करती है, तो यह दर्शाता है कि कीमतें एक ऊंची प्रवृत्ति में हैं, तो यह अधिक हो सकता है; इसके विपरीत, जब ईएमए-ए ईएमए-बी को पार करता है, तो यह दर्शाता है कि कीमतें गिरावट की प्रवृत्ति में बदल जाती हैं, तो यह खाली हो सकता है। गलत संकेतों को फ़िल्टर करने के लिए, यह सबसे लंबी अवधि के ईएमए-सी को भी पेश करता है, केवल जब कीमत ईएमए-सी को तोड़ती है तो प्रवेश पर विचार किया जाता है।
यह रणनीति RSI के साथ भी जुड़ी हुई है ताकि यह पता लगाया जा सके कि exit का समय कब है। जब कोई व्यक्ति बहुस्तरीय स्थिति रखता है, तो वह RSI के ऊपर 70 के पार होने पर ब्लीडिंग करता है। जब कोई व्यक्ति खाली स्थिति रखता है, तो वह RSI के नीचे 30 के पार होने पर ब्लीडिंग करता है। यह प्रवृत्ति लाभ को लॉक कर सकता है और नुकसान को और अधिक विस्तार से रोक सकता है।
इन जोखिमों को आरएसआई पैरामीटर को अनुकूलित करके या अतिरिक्त फ़िल्टरिंग शर्तों को जोड़कर कम किया जा सकता है। रणनीति के प्रदर्शन को बढ़ाने के लिए रुझान, समर्थन प्रतिरोध और अन्य तकनीकी विश्लेषण विधियों के साथ संयोजन किया जा सकता है।
इस रणनीति में ट्रेंड ट्रैकिंग और ओवरबॉय ओवरसोल इंडिकेटर शामिल हैं, केवल दो सरल इंडिकेटरों की आवश्यकता होती है ताकि ट्रेंड का निर्णय और कैप्चर किया जा सके। पैरामीटर ऑप्टिमाइज़ेशन और नियम ऑप्टिमाइज़ेशन के माध्यम से, सरल रहते हुए प्रभावशीलता में काफी वृद्धि की जा सकती है। यह एक बहुत ही व्यावहारिक ट्रेंड ट्रैकिंग रणनीति टेम्पलेट है जो मध्यम और लंबी लाइन निवेशकों के लिए उपयुक्त है।
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@author Alorse
//@version=5
// strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)
// Bollinger Bands
len = input.int(14, minval=1, title='Length', group='RSI')
src = input.source(close, 'Source', group='RSI')
rsi = ta.rsi(src, len)
// Moving Averages
len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages')
out_a = ta.ema(close, len_a)
plot(out_a, title='EMA A', color=color.purple)
len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages')
out_b = ta.ema(close, len_b)
plot(out_b, title='EMA B', color=color.orange)
len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages')
out_c = ta.ema(close, len_c)
plot(out_c, title='EMA B', color=color.green)
// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup)
xBars = input.int(24, title='# bars')
entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open
exitLong = rsi > 70
entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open
exitShort = rsi < 30
bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = ta.valuewhen(bought, open, 0)
var int nPastBars = 0
if strategy.position_size > 0
nPastBars := nPastBars + 1
nPastBars
if strategy.position_size == 0
nPastBars := 0
nPastBars
if closeAfterXBars
exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong
exitLong
exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort
exitShort
// Long Entry
strategy.entry('Long', strategy.long, when=entryLong and showLong)
strategy.close('Long', when=exitLong)
// Short Entry
strategy.entry('Short', strategy.short, when=entryShort and showShort)
strategy.close('Short', when=exitShort)