
मल्टी-टाइम फ़्रेम आरएसआई इक्विवलेंट क्रॉसिंग रणनीति एक बहु-टाइम फ़्रेम ट्रेंड ट्रैकिंग रणनीति है। यह रणनीति एक साथ कई समय फ़्रेमों के आरएसआई संकेतक का उपयोग करती है, और प्रत्येक समय फ़्रेम के आरएसआई के लिए एक भारित चलती औसत को संसाधित करती है, और अंततः दो समग्र सिग्नल संकेतक के रूप में विलय हो जाती है। जब दो सिग्नल संकेतक गोल्ड फोर्क होते हैं, तो वे अधिक करते हैं, और जब वे मृत फोर्क होते हैं, तो वे खाली हो जाते हैं। यह एक विशिष्ट द्वि-इक्विवलेंट क्रॉसिंग रणनीति है।
यह रणनीति आरएसआई को कई समय-फ्रेमों (जैसे 1 मिनट, 5 मिनट, 15 मिनट, आदि) में अलग-अलग गणना करती है, और फिर प्रत्येक समय-फ्रेम के आरएसआई को 15 की लंबाई के भारित चलती औसत (वीएमए) के साथ संसाधित करती है, जो प्रत्येक समय-फ्रेम के लिए आरएसआई औसत प्राप्त करती है।
इसके बाद, सभी समय-सीमाओं के आरएसआई औसत को समान भारित संयोजन के साथ जोड़ा जाता है, क्रमशः दो संकेतों को तेज और धीमी गति से जोड़ते हुए। 100 चक्र ईएमए और 150 चक्र ईएमए के साथ धीमी गति से।
जब तेज रेखा नीचे से ऊपर की ओर धीमी रेखा को तोड़ती है तो एक खरीद संकेत उत्पन्न होता है; जब तेज रेखा ऊपर से नीचे की ओर धीमी रेखा को तोड़ती है तो एक बेचने का संकेत उत्पन्न होता है। इस प्रकार, बहु-समय फ़्रेम आरएसआई का समग्र क्रॉस सिग्नल, ट्रेंड को प्रभावी ढंग से ट्रैक करने के साथ-साथ अल्पकालिक बाजार के शोर को फ़िल्टर कर सकता है।
बहु-समय फ्रेम एकीकरण, मूल्य वक्र को चिकना करने के लिए, और झूठी दरारों को प्रभावी रूप से फ़िल्टर करने के लिए।
आरएसआई सूचकांक ओवरबॉय और ओवरसोल की स्थिति को दर्शाता है, जो उच्च और निम्न का पीछा करने से बचता है।
डबल सम-रेखा प्रणाली एकल सम-रेखा प्रणाली की तुलना में बेहतर है।
वीएमए को एसएमए के बजाय उपयोग करने से औसत रेखा पर अल्पकालिक उतार-चढ़ाव के प्रभाव को कम किया जा सकता है।
बहु-समय फ़्रेम रणनीतियाँ, पैरामीटर समायोजन के लिए उच्च आवश्यकताएं, अनुचित सेटिंग्स जो बहुत जल्दी या बहुत देर से खेल में प्रवेश कर सकती हैं
औसत रेखा प्रणाली वक्र के अनुकूलन के लिए खराब है और रुझान मोड़ बिंदुओं पर खराब प्रदर्शन करती है।
आरएसआई संकेतक विचलन के लिए अतिसंवेदनशील है, और इसके विपरीत संकेतों पर ध्यान दें।
समाधानः समय सीमा पैरामीटर सेटिंग्स को समायोजित करें; अन्य संकेतकों के साथ संयोजन में प्रवृत्ति का आकलन करें, जैसे कि MACD आदि; चेतावनी RSI सिग्नल से विचलित हो रहा है।
समय सीमा की संख्या और पैरामीटर सेटिंग्स को अनुकूलित करें ताकि रुझानों को बेहतर तरीके से कैप्चर किया जा सके।
जोखिमों को नियंत्रित करने के लिए स्टॉपलॉस को शामिल करने पर विचार करें।
अन्य संकेतकों के साथ प्रवृत्ति और विचलन का आकलन करने के लिए, निर्णय लेने की गुणवत्ता में सुधार करना।
विभिन्न होल्डिंग चक्र मापदंडों का परीक्षण करें और सबसे अच्छा होल्डिंग प्रभाव खोजें।
बहु-समय फ़्रेम आरएसआई सम-रेखा क्रॉसिंग रणनीति एक विशिष्ट बहु-समय फ़्रेम रुझान ट्रैकिंग रणनीति है, जो कई समय फ़्रेमों में आरएसआई संकेतकों के समग्र निर्णय के माध्यम से कीमतों की वक्र को चिकना करने और ट्रेडिंग सिग्नल उत्पन्न करने के लिए सम-रेखा प्रणाली का उपयोग करती है। इस रणनीति का लाभ यह है कि यह प्रभावी रूप से रुझानों को ट्रैक कर सकता है और शोर को फ़िल्टर कर सकता है, लेकिन पैरामीटर अनुकूलन और जोखिम नियंत्रण पर ध्यान देने की आवश्यकता है। आगे के अनुकूलन के साथ, यह रणनीति एक मजबूत रुझान ट्रैकिंग प्रणाली बन सकती है।
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="RSI multitimeframe SMA crossover", shorttitle="RSI multitimeframe strategy", default_qty_type= strategy.percent_of_equity, margin_long=50, default_qty_value=150)
res1 = input(title="Res 01", type=input.resolution, defval="1")
res2 = input(title="Res 0", type=input.resolution, defval="5")
res3 = input(title="Res 1", type=input.resolution, defval="15")
res4 = input(title="Res 2", type=input.resolution, defval="15")
res5 = input(title="Res 3", type=input.resolution, defval="15")
res6 = input(title="Res 4", type=input.resolution, defval="30")
res7 = input(title="Res 5", type=input.resolution, defval="45")
res8 = input(title="Res 6", type=input.resolution, defval="60")
lengthRSI = input(15, minval=1)
lengthMA = input(15, minval=1)
lengthFMA = input(100, minval=1)
lengthFMA2 = input(150, minval=1)
Long_yes = input(defval=1, title="Long trades 0 or 1", minval=0, maxval=1)
Short_yes = input(defval=0, title="Short trades 0 or 1", minval=0, maxval=1)
src = close
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// stop loss
longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.5, defval=10) *
0.01
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortLossPerc = input(title="Short Stop Loss (%)", type=input.float, minval=0.0, step=0.5, defval=10) *
0.01
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
rsi1 = rsi(src, lengthRSI)
MA1 = vwma(rsi1, lengthMA)
outD1 = security(syminfo.tickerid, res1, MA1)
outD2 = security(syminfo.tickerid, res2, MA1)
outD3 = security(syminfo.tickerid, res3, MA1)
outD4 = security(syminfo.tickerid, res4, MA1)
outD5 = security(syminfo.tickerid, res5, MA1)
outD6 = security(syminfo.tickerid, res6, MA1)
outD7 = security(syminfo.tickerid, res7, MA1)
outD8 = security(syminfo.tickerid, res8, MA1)
//plot_d0 = outD0
//plot_d1 = outD1
//plot_d2 = outD2
//plot_d3 = outD3
//plot_d4 = outD4
//plot_d5 = outD5
//plot_d6 = outD6
out_multi = ema(outD1+outD2+outD3+outD4+outD5+outD6+outD7+outD8, lengthFMA)
out_multi2 = ema(outD1+outD2+outD3+outD4+outD5+outD6+outD7+outD8, lengthFMA2)
//out_multi1 = outD2+outD3+outD4
//out_multi2 = outD4+outD5+outD6
//col0 = outD0 < 20 ? color.lime : outD0 > 80 ? color.red : color.blue
//col1 = outD1 < 20 ? color.lime : outD1 > 80 ? color.red : color.blue
//col2 = outD2 < 20 ? color.lime : outD2 > 80 ? color.red : color.blue
//col3 = outD3 < 20 ? color.lime : outD3 > 80 ? color.red : color.blue
//col4 = outD4 < 20 ? color.lime : outD4 > 80 ? color.red : color.blue
//col5 = outD5 < 20 ? color.lime : outD5 > 80 ? color.red : color.blue
//col6 = outD6 < 20 ? color.lime : outD6 > 80 ? color.red : color.blue
// plot(plot_d0,linewidth=2, color=col0)
// plot(plot_d1, linewidth=2, color=col1)
// plot(plot_d2,linewidth=2, color=col2)
// plot(plot_d3,linewidth=2, color=col3)
// plot(plot_d4,linewidth=2, color=col4)
// plot(plot_d5,linewidth=2, color=col5)
// plot(plot_d6,linewidth=2, color=col6)
long=(out_multi/8)
short=(out_multi2/8)
plot(long, linewidth=1, color=color.green)
plot(short, linewidth=1, color=color.red)
long1=crossover(long,short)
short1=crossunder(long,short)
h0 = hline(65, "Upper Band", color=color.red, linestyle=hline.style_solid, linewidth=2 )
h1 = hline(35, "Lower Band", color=color.green, linestyle=hline.style_solid, linewidth=2)
strategy.entry("buy", strategy.long, when=long1 and window() and Long_yes > 0)
if strategy.position_size > 0
strategy.exit(id="XL STP", stop=longStopPrice)
strategy.close("buy",when=short1 )
strategy.entry("sell", strategy.short, when=short1 and window() and Short_yes > 0)
if strategy.position_size < 0
strategy.exit(id="XS STP", stop=shortStopPrice)
strategy.close("buy",when=long1 )