वीआरएसआई और मार्सी रणनीति आरएसआई संकेतकों को चिकना करने के लिए चलती औसत का उपयोग करती है और एक दोहरी संकेतक रणनीति लागू करती है। यह ट्रेडिंग संकेत उत्पन्न करने के लिए कीमत और मात्रा के आरएसआई संकेतक दोनों का उपयोग करता है, उनके चलती औसत के साथ संयुक्त है। जब मूल्य आरएसआई बढ़ता है तो यह लंबा हो जाता है और जब कीमत आरएसआई गिरती है तो यह छोटा हो जाता है। इस बीच, यह बाजार की ताकत और संभावित रुझान परिवर्तनों का न्याय करने के लिए मात्रा आरएसआई में परिवर्तन का निरीक्षण करता है।
रणनीति पहले मूल्य के 9 अवधि के आरएसआई सूचक (आरएसआई) और मात्रा के 9 अवधि के आरएसआई सूचक (वीआरएसआई) की गणना करती है। फिर यह इन दो आरएसआई संकेतकों के 5 अवधि के सरल चलती औसत (एमएआरएसआई और एमएवीआरएसआई) की गणना करती है।
ट्रेडिंग सिग्नल मार्सी संकेतक के आधार पर उत्पन्न होते हैं। जब मार्सी बढ़ता है तो यह लंबा हो जाता है और जब मार्सी गिरता है तो यह छोटा हो जाता है। इसके अलावा, बाजार की ताकत और संभावित रुझान परिवर्तनों का न्याय करने के लिए मावरसी संकेतक का उपयोग किया जाता है।
उदाहरण के लिए, एक अपट्रेंड के दौरान, यदि कीमत बढ़ती रहती है लेकिन वॉल्यूम घटना शुरू हो जाता है, तो यह संकेत देता है कि तेजी की ताकत कमजोर हो सकती है और किसी को लंबी स्थिति बंद करने की तैयारी करनी चाहिए। इसके विपरीत, एक डाउनट्रेंड के दौरान, यदि कीमत गिरती रहती है लेकिन वॉल्यूम बढ़ता है, तो यह मंदी की शक्ति को मजबूत करने के संकेत देता है और छोटी स्थिति को और अधिक रखा जा सकता है।
दोहरे आरएसआई संकेतकों के चलती औसत को जोड़कर, यह रणनीति प्रभावी रूप से रुझानों को पकड़ सकती है, जबकि बाजार की ताकत का न्याय करने और फंसने से बचने के लिए वॉल्यूम परिवर्तनों का उपयोग कर सकती है। एकल आरएसआई संकेतक की तुलना में, यह रणनीति बाजार की लय को अधिक सटीक रूप से पकड़ सकती है।
चलती औसत का उपयोग संकेतों को अधिक विश्वसनीय बनाने के लिए कुछ शोर को भी फ़िल्टर करता है। इसके अलावा, आरएसआई अवधि और चलती औसत अवधि जैसी विभिन्न पैरामीटर सेटिंग्स रणनीति अनुकूलन के लिए संभावनाएं प्रदान करती हैं।
इस रणनीति का मुख्य जोखिम दोहरे संकेतकों के बीच होने वाले मतभेदों में निहित है। जब कीमत और मात्रा के बीच मतभेद होता है, तो ट्रेडिंग सिग्नल कम विश्वसनीय हो सकते हैं। तब संकेतकों के बीच संबंध का मैन्युअल निर्णय आवश्यक होता है।
एक और जोखिम रेंज-बाउंड बाजारों में फंस रहा है। जब कीमत रेंज में चलती है, तो आरएसआई संकेतक ऊपर और नीचे दोलन करता है, अनावश्यक ट्रेडों को ट्रिगर करता है। पैरामीटर समायोजन या संकेतक के पूर्ण स्तर का न्याय करना तब आवश्यक होता है।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
इष्टतम संयोजन खोजने के लिए आरएसआई और चलती औसत के मापदंडों को समायोजित करें
सिग्नल उत्पन्न करते समय अन्य शर्तें जोड़ें, उदाहरण के लिए ओवरबोल्ड/ओवरसोल्ड क्षेत्र में ट्रिगर किए गए रिवर्स सिग्नल अधिक विश्वसनीय होते हैं
स्टॉप लॉस की रणनीति जोड़ें जैसे कि स्टॉप लॉस या सूचक स्टॉप लॉस को स्थानांतरित करना
अन्य संकेतकों को शामिल करें जैसे कि कैंडलस्टिक पैटर्न, अस्थिरता संकेतकों आदि, जाल से बचने के लिए
वीआरएसआई और मार्सी रणनीति सफलतापूर्वक मूल्य और मात्रा के आरएसआई संकेतकों को जोड़ती है। दोहरे संकेतकों के बीच तुलना और निर्णय सिग्नल सटीकता और लाभप्रदता में सुधार कर सकते हैं। पैरामीटर अनुकूलन और स्टॉप लॉस रणनीतियाँ भी स्थिर चलना संभव बनाती हैं। सारांश में, संकेतकों को जोड़कर, यह रणनीति एक एकल आरएसआई संकेतक पर बेहतर प्रदर्शन प्राप्त करती है।
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("VRSI-MARSI Strategy", shorttitle="(V/MA)RSI Str.", overlay=false, default_qty_type=strategy.percent_of_equity, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0, default_qty_value=5, initial_capital=100) // RSI(close, ="RSI") and RSI(Volume, ="VRSI") src = close, len = input(9, minval=1, title="Length RSI") src2 = volume, len2 = input(9, minval=1, title="Length VRSI)") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) up2 = rma(max(change(src2), 0), len2) down2 = rma(-min(change(src2), 0), len2) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2)) // MA(=Moving Average) of RSI(close, ="MARSI") and RSI(Volume, ="MAVRSI") len3 = input(5, minval=1, title="Length MARSI") marsi = sma(rsi, len3) len4 = input(5, minval=1, title="Length MAVRSI") marsi2 = sma(rsi2, len4) // Plot: // Default plot of RSI and VRSI: not visible but can be made visible // Default plot MARSI and MAVRSI: visible p1 = plot(rsi, linewidth=2, transp=100, color=color.yellow, title="RSI") p2 = plot(rsi2, linewidth=2, transp=100, color=color.orange, title="VRSI") m1 = plot(marsi, color=(marsi>=0 ? (marsi[1] < marsi ? color.yellow : color.blue) : (marsi[1] < marsi ? color.yellow : color.blue) ), linewidth = 2, transp = 0, title="MARSI") m2 = plot(marsi2, color=color.orange, linewidth = 2, transp = 0, title="MAVRSI") // Color fill: // Default color fill "RSI - VRSI": not visible but can be made visible // Default color fill "MARSI - MAVRSI": visible fill(p1,p2, color = rsi>rsi2 ? color.green : color.red, transp=100, title="BG RSI-VRSI") fill(m1,m2, color = marsi>marsi2 ? color.green : color.red, transp=75, title="BG MARSI-MAVRSI") // Lines: h2=hline(20, color=color.green, linestyle=hline.style_dotted, title="Extreme Oversold Rsi") h3=hline(30, color=color.black, linestyle=hline.style_dotted, title="Oversold Rsi") h5=hline(50, color=color.yellow, linestyle=hline.style_dashed, title="Middle line") h7=hline(70, color=color.black, linestyle=hline.style_dotted, title="Overbought Rsi") h8=hline(80, color=color.red, linestyle=hline.style_dotted, title="Extreme Overbought Rsi") // Color fill between Lines "20-30" and "70-80" represents the crossing of "MARSI" and "MAVRSI": fill(h2, h3, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="20-30 BG color X MARSI/MAVRSI") fill(h7, h8, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="70-80 BG color X MARSI/MAVRSI") ///Long Entry/// longCondition = marsi > marsi[1] if (longCondition) strategy.entry("Long", strategy.long) ///Long exit/// Xlong =input(true) closeConditionLong = marsi < marsi[1] and Xlong if (closeConditionLong) strategy.close("Long") ///Short Entry/// shortCondition = marsi < marsi[1] if (shortCondition) strategy.entry("Short", strategy.short) ///Short exit/// Xshort =input(true) closeConditionShort = marsi > marsi[1] and Xshort if (closeConditionShort) strategy.close("Short")