यह रणनीति एक ट्रेंड फॉलो ट्रेडिंग सिस्टम है जो रिलेटिव स्ट्रेंथ इंडेक्स (आरएसआई) और सिंपल मूविंग एवरेज (एसएमए) को जोड़ती है। यह आरएसआई के साथ गति की पुष्टि करते हुए चलती औसत का उपयोग करके बाजार की प्रवृत्ति की दिशा की पहचान करती है, जब प्रवृत्ति और गति संरेखित होती है तो ट्रेडों को निष्पादित करती है। रणनीति में प्रभावी जोखिम नियंत्रण के लिए व्यापक स्टॉप-लॉस और ले-प्रॉफिट तंत्र शामिल हैं।
मूल तर्क दो तकनीकी संकेतकों के संयोजन पर आधारित हैः
ट्रेडिंग सिग्नल जनरेशन लॉजिकः
जोखिम नियंत्रण में प्रवेश मूल्य के निश्चित प्रतिशत के रूप में निर्धारित प्रतिशत-आधारित स्टॉप-लॉस और ले-प्रॉफिट स्तरों का उपयोग किया जाता है।
यह रणनीति प्रवृत्ति और गति संकेतक के संयोजन से एक तार्किक रूप से स्पष्ट और जोखिम-नियंत्रित ट्रेडिंग प्रणाली का निर्माण करती है। जबकि अंतर्निहित जोखिम मौजूद हैं, रणनीति उचित पैरामीटर सेटिंग्स और जोखिम नियंत्रण के माध्यम से अच्छी व्यावहारिकता का प्रदर्शन करती है। भविष्य का अनुकूलन गतिशील पैरामीटर समायोजन, बाजार वातावरण की मान्यता और संकेत गुणवत्ता में सुधार पर केंद्रित है, संभावित रूप से रणनीति स्थिरता और लाभप्रदता में वृद्धि।
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © raiford87 //@version=6 strategy("RSI + MA Trend Strategy (v6)", shorttitle="RSI_MA_Trend_v6", overlay=true, initial_capital=50000, default_qty_type=strategy.fixed, default_qty_value=1) // ───────────────────────────────────────────────────────────────────────────────────── // 1. USER INPUTS // ───────────────────────────────────────────────────────────────────────────────────── maLength = input.int(50, "Moving Average Length") rsiLength = input.int(14, "RSI Length") rsiBuyLevel = input.int(55, "RSI > X for Buy", minval=1, maxval=99) rsiSellLevel = input.int(45, "RSI < X for Sell", minval=1, maxval=99) stopLossPerc = input.float(1.0, "Stop Loss %", minval=0.1) takeProfitPerc = input.float(2.0, "Take Profit %", minval=0.1) // ───────────────────────────────────────────────────────────────────────────────────── // 2. INDICATOR CALCULATIONS // ───────────────────────────────────────────────────────────────────────────────────── maValue = ta.sma(close, maLength) rsiVal = ta.rsi(close, rsiLength) // Trend conditions bullTrend = close > maValue bearTrend = close < maValue // RSI conditions rsiBull = rsiVal > rsiBuyLevel rsiBear = rsiVal < rsiSellLevel // ───────────────────────────────────────────────────────────────────────────────────── // 3. ENTRY CONDITIONS // ───────────────────────────────────────────────────────────────────────────────────── longCondition = bullTrend and rsiBull shortCondition = bearTrend and rsiBear if longCondition strategy.entry("RSI MA Long", strategy.long) if shortCondition strategy.entry("RSI MA Short", strategy.short) // ───────────────────────────────────────────────────────────────────────────────────── // 4. STOP LOSS & TAKE PROFIT // ───────────────────────────────────────────────────────────────────────────────────── stopLossLevel = stopLossPerc * 0.01 takeProfitLevel = takeProfitPerc * 0.01 if strategy.position_size > 0 stopPriceLong = strategy.position_avg_price * (1 - stopLossLevel) tpPriceLong = strategy.position_avg_price * (1 + takeProfitLevel) strategy.exit("Exit Long", from_entry="RSI MA Long", stop=stopPriceLong, limit=tpPriceLong) if strategy.position_size < 0 stopPriceShort = strategy.position_avg_price * (1 + stopLossLevel) tpPriceShort = strategy.position_avg_price * (1 - takeProfitLevel) strategy.exit("Exit Short", from_entry="RSI MA Short", stop=stopPriceShort, limit=tpPriceShort) // ───────────────────────────────────────────────────────────────────────────────────── // 5. PLOT SIGNALS & LEVELS // ───────────────────────────────────────────────────────────────────────────────────── plot(maValue, color=color.yellow, linewidth=2, title="Moving Average") plotchar(longCondition, title="Long Signal", char='▲', location=location.belowbar, color=color.green, size=size.tiny) plotchar(shortCondition, title="Short Signal", char='▼', location=location.abovebar, color=color.red, size=size.tiny) // Plot Stop & TP lines posIsLong = strategy.position_size > 0 posIsShort = strategy.position_size < 0 plotStopLong = posIsLong ? strategy.position_avg_price * (1 - stopLossLevel) : na plotTpLong = posIsLong ? strategy.position_avg_price * (1 + takeProfitLevel): na plotStopShort= posIsShort? strategy.position_avg_price * (1 + stopLossLevel) : na plotTpShort = posIsShort? strategy.position_avg_price * (1 - takeProfitLevel): na plot(plotStopLong, color=color.red, linewidth=2, style=plot.style_line, title="Stop Loss Long") plot(plotTpLong, color=color.green, linewidth=2, style=plot.style_line, title="Take Profit Long") plot(plotStopShort, color=color.red, linewidth=2, style=plot.style_line, title="Stop Loss Short") plot(plotTpShort, color=color.green, linewidth=2, style=plot.style_line, title="Take Profit Short")