
Strategi ini adalah sistem perdagangan yang melacak tren berdasarkan indikator relatif kuat lemah (RSI) dan indikator relatif kuat kuat acak (RSI Stochastic). Strategi ini melakukan perdagangan dengan memantau tingkat overbought dan oversold dari RSI dan RSI Stochastic. Strategi ini didukung untuk beroperasi pada siklus waktu sunset dan mingguan, memberikan pilihan perdagangan yang fleksibel bagi pedagang.
Strategi ini didasarkan pada dua indikator teknis: RSI dan RSI Stokastik. RSI digunakan untuk mengukur kecepatan dan amplitudo perubahan harga, sedangkan RSI Stokastik memberikan sinyal overbought/oversold yang lebih sensitif melalui perhitungan acak dari nilai RSI. Triggering sinyal beli di RSI di bawah 35 dan K nilai RSI Stokastik di bawah 20 menunjukkan bahwa pasar berada dalam keadaan overbought; Triggering sinyal jual di RSI di atas 70 dan K nilai RSI Stokastik di atas 80 menunjukkan bahwa pasar berada dalam keadaan overbought. Strategi menggunakan rata-rata bergerak ((SMA) untuk meluruskan garis K dan D dari RSI Stokastik, mengurangi sinyal palsu.
Strategi ini membangun sistem perdagangan yang relatif andal dengan menggabungkan keunggulan RSI dan Stochastic RSI. Meskipun ada beberapa keterbatasan, strategi ini memiliki nilai praktis yang baik dengan manajemen risiko yang masuk akal dan pengoptimalan berkelanjutan.
/*backtest
start: 2023-12-20 00:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTC Buy & Sell Strategy (RSI & Stoch RSI)", overlay=true)
// Input Parameters
rsi_length = input.int(14, title="RSI Length")
stoch_length = input.int(14, title="Stochastic Length")
stoch_smooth_k = input.int(3, title="Stochastic %K Smoothing")
stoch_smooth_d = input.int(3, title="Stochastic %D Smoothing")
// Threshold Inputs
rsi_buy_threshold = input.float(35, title="RSI Buy Threshold")
stoch_buy_threshold = input.float(20, title="Stochastic RSI Buy Threshold")
rsi_sell_threshold = input.float(70, title="RSI Sell Threshold")
stoch_sell_threshold = input.float(80, title="Stochastic RSI Sell Threshold")
use_weekly_data = input.bool(false, title="Use Weekly Data", tooltip="Enable to use weekly timeframe for calculations.")
// Timeframe Configuration
timeframe = use_weekly_data ? "W" : timeframe.period
// Calculate RSI and Stochastic RSI
rsi_value = request.security(syminfo.tickerid, timeframe, ta.rsi(close, rsi_length))
stoch_rsi_k_raw = request.security(syminfo.tickerid, timeframe, ta.stoch(close, high, low, stoch_length))
stoch_rsi_k = ta.sma(stoch_rsi_k_raw, stoch_smooth_k)
stoch_rsi_d = ta.sma(stoch_rsi_k, stoch_smooth_d)
// Define Buy and Sell Conditions
buy_signal = (rsi_value < rsi_buy_threshold) and (stoch_rsi_k < stoch_buy_threshold)
sell_signal = (rsi_value > rsi_sell_threshold) and (stoch_rsi_k > stoch_sell_threshold)
// Strategy Execution
if buy_signal
strategy.entry("Long", strategy.long, comment="Buy Signal")
if sell_signal
strategy.close("Long", comment="Sell Signal")
// Plot Buy and Sell Signals
plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", size=size.small, text="BUY")
plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.red, title="Sell Signal", size=size.small, text="SELL")
// Plot RSI and Stochastic RSI for Visualization
hline(rsi_buy_threshold, "RSI Buy Threshold", color=color.green)
hline(rsi_sell_threshold, "RSI Sell Threshold", color=color.red)
plot(rsi_value, color=color.blue, linewidth=2, title="RSI Value")
plot(stoch_rsi_k, color=color.purple, linewidth=2, title="Stochastic RSI K")
plot(stoch_rsi_d, color=color.orange, linewidth=1, title="Stochastic RSI D")