Cet article analyse en profondeur une stratégie de suivi de tendance qui combine l'indicateur SuperTrend avec un filtre RSI stochastique pour une précision améliorée. Il vise à générer des signaux d'achat et de vente tout en tenant compte de la tendance dominante et en réduisant les faux signaux.
Tout d'abord, la True Range (TR) et la Average True Range (ATR) sont calculées, puis les bandes supérieure et inférieure sont calculées à l'aide de l'ATR:
La bande supérieure = SMA ((close, période ATR) + ATR Multiplier * ATR La valeur de l'indicateur est la valeur de l'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur d'indicateur.
Une tendance à la hausse est identifiée lorsque la tendance à la baisse est proche de la bande inférieure.
Pendant la tendance haussière, la SuperTrend est réglée sur la bande inférieure.
Pour réduire les faux signaux, la SuperTrend est lissée à l'aide d'une moyenne mobile pour obtenir la SuperTrend filtrée.
La valeur du RSI est calculée, puis l'indicateur stochastique est appliqué pour générer un RSI stochastique.
Entrée longue: croix de fermeture au-dessus de la SuperTrend filtrée dans la tendance haussière et le RSI stochastique < 80 Entrée courte: Clôture des croisements inférieurs à la SuperTrend filtrée en tendance à la baisse et au RSI stochastique > 20
Sortie longue: Fermeture des croisements en dessous de la SuperTrend filtrée en hausse
Sortie courte: fermeture des croisements au-dessus de la SuperTrend filtrée en baisse
Cette stratégie de suivi des tendances améliorée présente les avantages suivants par rapport aux moyennes mobiles simples:
Cette stratégie combine les atouts de SuperTrend et de Stochastique RSI pour une identification efficace des tendances et des signaux commerciaux de qualité, tout en rendant la stratégie robuste au bruit du marché grâce à des mécanismes de filtrage.
/*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)