এই কৌশলটি দুটি প্রযুক্তিগত সূচককে একত্রিত করেঃ আপেক্ষিক শক্তি সূচক (আরএসআই) এবং চলমান গড় ঘনিষ্ঠতা বৈষম্য (এমএসিডি) । এটি ওভারবয় এবং ওভারসোল্ড শর্তগুলি নির্ধারণ করতে আরএসআই এবং একটি সম্পূর্ণ দীর্ঘ-স্বল্প কৌশল গঠন করে প্রবণতা দিক সনাক্ত করতে এমএসিডি ব্যবহার করে। যখন আরএসআই ওভারবয় হয়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয় এবং যখন এমএসিডি দ্রুত লাইনটি ধীর লাইনের উপরে অতিক্রম করে তখন অবস্থানটি বন্ধ হয়। যখন আরএসআই ওভারসোল্ড হয়, তখন একটি ক্রয় সংকেত উত্পন্ন হয় এবং যখন এমএসিডি দ্রুত লাইনটি ধীর লাইনের নীচে অতিক্রম করে তখন অবস্থানটি বন্ধ হয়। স্টপ-লস পয়েন্টটি সম্পদের গড় মূল্য পরিবর্তনের অর্ধেক গণনা করে সেট করা হয়।
RSI ব্যবহার করে অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় শর্তগুলি নির্ধারণ করে, কৌশলটি বিপরীতমুখী হওয়ার শুরুতে প্রবেশ করে। প্রবণতার দিক সনাক্ত করতে MACD ব্যবহার করে, এটি প্রবণতার শুরুতে অবস্থানটি বন্ধ করে, কার্যকরভাবে প্রবণতাটি ক্যাপচার করে। দুটি সূচক একে অপরকে পরিপূরক করে, একটি সম্পূর্ণ ট্রেডিং সিস্টেম গঠন করে।
এই কৌশলটি ওভারকুপ এবং ওভারসোল্ড শর্তাদি নির্ধারণ করতে আরএসআই এবং ট্রেন্ডের দিকনির্দেশনা সনাক্ত করতে এমএসিডি ব্যবহার করে, একটি সম্পূর্ণ লং-শর্ট ট্রেডিং সিস্টেম গঠন করে। কৌশল যুক্তি স্পষ্ট, এবং সুবিধাগুলি সুস্পষ্ট, যখন কিছু ঝুঁকিও রয়েছে। প্যারামিটার অপ্টিমাইজেশান, ফিল্টারিং শর্ত যুক্ত করে, অবস্থান পরিচালনা এবং অন্যান্য কৌশলগুলির সাথে একত্রিত করে, এই কৌশলটির কর্মক্ষমতা আরও উন্নত করা যেতে পারে, এটি একটি শক্তিশালী ট্রেডিং কৌশল করে তোলে।
/*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")