Artikel ini menganalisis secara mendalam strategi mengikuti tren yang menggabungkan indikator SuperTrend dengan filter RSI Stochastic untuk akurasi yang lebih baik.
Pertama, True Range (TR) dan Average True Range (ATR) dihitung. Kemudian band atas dan bawah dihitung menggunakan ATR:
Band atas = SMA ((Tutup, Periode ATR) + ATR Multiplier * ATR Band bawah = SMA (dekat, periode ATR) - ATR Multiplier * ATR
Tren naik diidentifikasi ketika dekat > band bawah.
Selama uptrend, SuperTrend diatur ke band bawah. Selama downtrend, SuperTrend diatur ke band atas.
Untuk mengurangi sinyal palsu, SuperTrend dihaluskan menggunakan rata-rata bergerak untuk mendapatkan SuperTrend yang disaring.
Nilai RSI dihitung, kemudian indikator Stochastic diterapkan untuk menghasilkan RSI Stochastic.
Long entry: Close crosses above filtered SuperTrend dalam uptrend dan Stochastic RSI < 80 Short entry: Close crosses below filtered SuperTrend dalam downtrend dan Stochastic RSI > 20
Keluar panjang: Tutup penyeberangan di bawah SuperTrend yang disaring dalam tren naik
Short exit: Tutup persilangan di atas SuperTrend yang disaring dalam downtrend
Strategi trend berikut yang ditingkatkan ini memiliki keunggulan berikut dibandingkan dengan rata-rata bergerak sederhana:
Strategi ini menggabungkan kekuatan SuperTrend dan Stochastic RSI untuk identifikasi tren yang efektif dan sinyal perdagangan berkualitas, sementara juga membuat strategi yang kuat untuk kebisingan pasar melalui mekanisme penyaringan. peningkatan kinerja lebih lanjut dapat dicapai melalui optimasi parameter atau menggabungkan dengan indikator / model lain. Secara keseluruhan, strategi ini menunjukkan kemampuan mengikuti tren yang baik dan beberapa kontrol risiko bagi mereka yang mencari pengembalian yang stabil.
/*backtest start: 2024-01-09 00:00:00 end: 2024-01-16 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved SuperTrend Strategy with Stochastic RSI", shorttitle="IST+StochRSI", overlay=true) // Input parameters atr_length = input(14, title="ATR Length") atr_multiplier = input(1.5, title="ATR Multiplier") filter_length = input(5, title="Filter Length") stoch_length = input(14, title="Stochastic RSI Length") smooth_k = input(3, title="Stochastic RSI %K Smoothing") // Calculate True Range (TR) and Average True Range (ATR) tr = ta.rma(ta.tr, atr_length) atr = ta.rma(tr, atr_length) // Calculate SuperTrend upper_band = ta.sma(close, atr_length) + atr_multiplier * atr lower_band = ta.sma(close, atr_length) - atr_multiplier * atr is_uptrend = close > lower_band is_downtrend = close < upper_band super_trend = is_uptrend ? lower_band : na super_trend := is_downtrend ? upper_band : super_trend // Filter for reducing false signals filtered_super_trend = ta.sma(super_trend, filter_length) // Calculate Stochastic RSI rsi_value = ta.rsi(close, stoch_length) stoch_rsi = ta.sma(ta.stoch(rsi_value, rsi_value, rsi_value, stoch_length), smooth_k) // Entry conditions long_condition = ta.crossover(close, filtered_super_trend) and is_uptrend and stoch_rsi < 80 short_condition = ta.crossunder(close, filtered_super_trend) and is_downtrend and stoch_rsi > 20 // Exit conditions exit_long_condition = ta.crossunder(close, filtered_super_trend) and is_uptrend exit_short_condition = ta.crossover(close, filtered_super_trend) and is_downtrend // Plot SuperTrend and filtered SuperTrend plot(super_trend, color=color.orange, title="SuperTrend", linewidth=2) plot(filtered_super_trend, color=color.blue, title="Filtered SuperTrend", linewidth=2) // Plot Buy and Sell signals plotshape(series=long_condition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=short_condition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar) // Output signals to the console for analysis plotchar(long_condition, "Long Signal", "▲", location.belowbar, color=color.green, size=size.small) plotchar(short_condition, "Short Signal", "▼", location.abovebar, color=color.red, size=size.small) // Strategy entry and exit strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) strategy.close("Long", when=exit_long_condition) strategy.close("Short", when=exit_short_condition)