Artikel ini menganalisis secara mendalam strategi trend berikut yang menggabungkan penunjuk SuperTrend dengan penapis RSI Stochastic untuk ketepatan yang lebih baik. Ia bertujuan untuk menjana isyarat beli dan jual sambil mempertimbangkan trend yang berlaku dan mengurangkan isyarat palsu.
Pertama, Julat Benar (TR) dan Julat Benar Purata (ATR) dikira. Kemudian jalur atas dan bawah dikira menggunakan ATR:
Band atas = SMA ((Tutup, Tempoh ATR) + Pengganda ATR * ATR Band bawah = SMA ((Tutup, Tempoh ATR) - Pengganda ATR * ATR
Trend menaik dikenal pasti apabila dekat > band bawah. Trend menurun dikenal pasti apabila dekat < band atas.
Semasa trend menaik, SuperTrend ditetapkan ke band bawah. Semasa downtrend, SuperTrend ditetapkan ke band atas.
Untuk mengurangkan isyarat palsu, SuperTrend disederhanakan menggunakan purata bergerak untuk mendapatkan SuperTrend yang ditapis.
Nilai RSI dikira, maka penunjuk Stochastic digunakan untuk menjana RSI Stochastic.
Masuk panjang: Penutupan persilangan di atas SuperTrend yang ditapis dalam trend menaik dan RSI Stochastic < 80 Entry pendek: Tutup persilangan di bawah SuperTrend disaring dalam trend menurun dan RSI Stochastic > 20
Keluar panjang: Tutup salib di bawah SuperTrend yang disaring dalam trend menaik
Keluar pendek: Tutup salib di atas SuperTrend yang ditapis dalam trend menurun
Strategi trend berikut yang lebih baik ini mempunyai kelebihan berikut berbanding purata bergerak mudah:
Strategi ini menggabungkan kekuatan SuperTrend dan Stochastic RSI untuk pengenalan trend yang berkesan dan isyarat perdagangan yang berkualiti, sementara juga menjadikan strategi yang kukuh untuk bising pasaran melalui mekanisme penapisan. Penambahbaikan prestasi yang lebih lanjut boleh dicapai melalui pengoptimuman parameter atau menggabungkan dengan penunjuk / model lain. Secara keseluruhan, strategi ini menunjukkan kemampuan mengikuti trend yang baik dan beberapa kawalan risiko bagi mereka yang mencari pulangan 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)