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