यह रणनीति दो तकनीकी संकेतकों को जोड़ती हैः सापेक्ष शक्ति सूचकांक (आरएसआई) और चलती औसत अभिसरण विचलन (एमएसीडी) । यह ओवरबॉट और ओवरसोल्ड स्थितियों को निर्धारित करने के लिए आरएसआई का उपयोग करता है, और एक पूर्ण लंबी-छोटी रणनीति बनाने के लिए प्रवृत्ति की दिशा की पहचान करने के लिए एमएसीडी का उपयोग करता है। जब आरएसआई ओवरबॉट होता है, तो एक बिक्री संकेत उत्पन्न होता है, और जब एमएसीडी फास्ट लाइन स्लो लाइन से ऊपर जाती है, तो स्थिति बंद हो जाती है। जब आरएसआई ओवरसोल्ड होता है, तो एक खरीद संकेत उत्पन्न होता है, और जब एमएसीडी फास्ट लाइन स्लो लाइन से नीचे जाती है, तो स्थिति बंद हो जाती है। स्टॉप-लॉस बिंदु को परिसंपत्ति के औसत मूल्य परिवर्तन के आधे की गणना करके सेट किया जाता है।
ओवरबॉट और ओवरसोल्ड स्थितियों को निर्धारित करने के लिए आरएसआई का उपयोग करके, रणनीति एक उलट की शुरुआत में प्रवेश करती है। प्रवृत्ति की दिशा की पहचान करने के लिए एमएसीडी का उपयोग करके, यह प्रवृत्ति की शुरुआत में स्थिति को बंद कर देता है, प्रभावी रूप से प्रवृत्ति को पकड़ता है। दोनों संकेतक एक दूसरे को पूरक करते हैं, एक पूर्ण ट्रेडिंग प्रणाली बनाते हैं।
यह रणनीति ओवरबॉट और ओवरसोल्ड स्थितियों को निर्धारित करने के लिए आरएसआई और ट्रेंड दिशा की पहचान करने के लिए एमएसीडी का उपयोग करती है, जिससे एक पूर्ण लंबी-लघु ट्रेडिंग प्रणाली बनती है। रणनीति तर्क स्पष्ट है, और फायदे स्पष्ट हैं, जबकि कुछ जोखिम भी हैं। पैरामीटर अनुकूलन, फ़िल्टरिंग स्थितियों को जोड़ने, स्थिति प्रबंधन और अन्य रणनीतियों के साथ संयोजन के माध्यम से, इस रणनीति के प्रदर्शन में और सुधार किया जा सकता है, जिससे यह एक मजबूत ट्रेडिंग रणनीति बन जाती है।
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="RSI & MACD Strategy", shorttitle="RSI & MACD", overlay=true) // Définition des entrées rsi_length = 14 rsi_overbought = 70 rsi_oversold = 30 macd_fast_length = 12 macd_slow_length = 26 macd_signal_length = 9 // Fonction pour calculer le RSI calculate_rsi(source, length) => price_change = ta.change(source) up = ta.rma(price_change > 0 ? price_change : 0, length) down = ta.rma(price_change < 0 ? -price_change : 0, length) rs = up / down rsi = 100 - (100 / (1 + rs)) rsi // Fonction pour calculer le MACD calculate_macd(source, fast_length, slow_length, signal_length) => fast_ma = ta.ema(source, fast_length) slow_ma = ta.ema(source, slow_length) macd = fast_ma - slow_ma signal = ta.ema(macd, signal_length) hist = macd - signal [macd, signal, hist] // Calcul des indicateurs rsi_value = calculate_rsi(close, rsi_length) [macd_line, signal_line, _] = calculate_macd(close, macd_fast_length, macd_slow_length, macd_signal_length) // Conditions d'entrée et de sortie // Entrée en vente : RSI passe de >= 70 à < 70 sell_entry_condition = ta.crossunder(rsi_value, rsi_overbought) // Sortie en vente : MACD fast MA croise au-dessus de slow MA sell_exit_condition = ta.crossover(macd_line, signal_line) // Entrée en achat : RSI passe de <= 30 à > 30 buy_entry_condition = ta.crossover(rsi_value, rsi_oversold) // Sortie en achat : MACD fast MA croise en-dessous de slow MA buy_exit_condition = ta.crossunder(macd_line, signal_line) // Affichage des signaux sur le graphique plotshape(series=sell_entry_condition, title="Sell Entry", location=location.belowbar, color=color.red, style=shape.triangleup, size=size.small) plotshape(series=sell_exit_condition, title="Sell Exit", location=location.abovebar, color=color.green, style=shape.triangledown, size=size.small) plotshape(series=buy_entry_condition, title="Buy Entry", location=location.abovebar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=buy_exit_condition, title="Buy Exit", location=location.belowbar, color=color.red, style=shape.triangledown, size=size.small) // Entrées et sorties de la stratégie if (sell_entry_condition) strategy.entry("Short", strategy.short) if (sell_exit_condition) strategy.close("Short") if (buy_entry_condition) strategy.entry("Long", strategy.long) if (buy_exit_condition) strategy.close("Long")