
Cet article analyse en détail une stratégie de suivi de tendance améliorée combinant l’indicateur SuperTrend et le filtre Stochastic RSI. Cette stratégie vise à générer des signaux d’achat et de vente tout en tenant compte des tendances du marché et en réduisant les faux signaux. Le RSI stochastique est utilisé pour éviter les faux signaux dans les cas de survente.
Tout d’abord, on calcule la plage de réelle fluctuation (TR) et la plage de réelle fluctuation moyenne (ATR). On utilise ensuite l’ATR pour calculer la voie supérieure et la voie inférieure:
La trajectoire de hausse = SMA (prix de clôture, cycle ATR) + ATR multiplié par ATR La trajectoire inférieure = SMA (prix de clôture, cycle ATR) - ATR multiplié par ATR
Si le prix de clôture est supérieur à la trajectoire descendante, c’est une tendance à la hausse; si le prix de clôture est inférieur à la trajectoire montante, c’est une tendance à la baisse. Dans une tendance à la hausse, SuperTrend est en baisse; dans une tendance à la baisse, SuperTrend est en hausse.
Pour réduire les faux signaux, une moyenne mobile de SuperTrend est utilisée pour obtenir une SuperTrend filtrée.
Calculer la valeur du RSI, puis appliquer l’indicateur stochastique pour générer le RSI stochastique. Il reflète si le RSI est en zone de surachat ou de survente.
Conditions d’achat: le cours de la clôture est en hausse après la rupture du SuperTrend et le RSI stochastique est inférieur à 80 Conditions de vente: le cours de clôture est en baisse après avoir traversé une super tendance et le RSI stochastique est supérieur à 20
Sortie d’achat: sous la clôture, la tendance est à la hausse après avoir traversé une super tendance à la baisse Sortie et vente: les cours de clôture sont en baisse après avoir traversé la SuperTrend
Il s’agit d’une stratégie de suivi de tendance améliorée qui présente les avantages suivants par rapport aux moyennes mobiles simples:
Cette stratégie intègre les avantages des deux indicateurs SuperTrend et Stochastic RSI, permettant d’identifier efficacement les tendances et d’émettre des signaux de négociation de haute qualité. Le mécanisme de filtrage rend également la stratégie plus robuste face au bruit du marché. Cette stratégie peut obtenir de meilleurs effets stratégiques grâce à l’optimisation des paramètres, mais peut également être considérée en combinaison avec d’autres indicateurs ou modèles.
/*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)