
La stratégie est un système de trading de revers de tendance synchronisé sur plusieurs indicateurs, combinant principalement les indicateurs relativement faibles ((RSI), l’indicateur de parabolique ((SAR) et la moyenne mobile simple ((SMA) trois indicateurs techniques. L’idée centrale de la stratégie est de prévenir les opportunités de revers potentiels par le signal de survente RSI, puis d’utiliser le changement de direction de l’indicateur SAR pour confirmer le signal de revers, et enfin d’utiliser la moyenne mobile comme référence dynamique de stop-loss. Cette méthode de vérification synchronisée sur plusieurs indicateurs peut réduire efficacement l’interférence des faux signaux et améliorer la fiabilité des transactions.
Le mécanisme de fonctionnement de la stratégie est principalement composé de trois étapes:
La stratégie utilise les moyennes mobiles comme outil de contrôle dynamique des risques, ce qui garantit une maîtrise efficace de la tendance et un contrôle dynamique du risque. Les principaux avantages de la stratégie résident dans la vérification de plusieurs signaux et la clarté des règles de négociation, mais dans l’application pratique, il est nécessaire de prêter attention à l’identification de l’environnement du marché et à l’optimisation dynamique des paramètres.
/*backtest
start: 2024-07-15 00:00:00
end: 2025-02-15 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("SAR + RSI Strategy", overlay=true, margin_long=100, margin_short=100)
// ———————— SAR Parameters ————————
start = input(0.02, "SAR Start")
increment = input(0.02, "SAR Increment")
maximum = input(0.2, "SAR Maximum")
// ———————— RSI Parameters ————————
rsiLength = input(14, "RSI Length")
upperLevel = input(70, "RSI Upper Level")
lowerLevel = input(30, "RSI Lower Level")
// ———————— SMA Parameter ————————
smaLength = input(21, "SMA Exit Length")
// ———————— Indicators Calculation ————————
// SAR Calculation
sarValue = ta.sar(start, increment, maximum)
sarUp = sarValue < close
sarDown = sarValue > close
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiOverbought = ta.cross(rsi, upperLevel)
rsiOversold = ta.cross(rsi, lowerLevel)
// SMA Calculation
sma21 = ta.sma(close, smaLength)
// ———————— Entry Conditions ————————
longCondition =
// RSI oversold signal occurred in last 3 bars
(ta.barssince(rsiOversold) <= 3) and
// SAR reversal to bullish occurs now
sarUp and not sarUp[1]
shortCondition =
// RSI overbought signal occurred in last 3 bars
(ta.barssince(rsiOverbought) <= 3) and
// SAR reversal to bearish occurs now
sarDown and not sarDown[1]
// ———————— Exit Conditions ————————
exitLong = ta.crossunder(close, sma21)
exitShort = ta.crossover(close, sma21)
// ———————— Strategy Execution ————————
strategy.entry("Long", strategy.long, when=longCondition)
strategy.close("Long", when=exitLong)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Short", when=exitShort)
// ———————— Visualizations ————————
// plot(sarValue, "SAR", style=plot.style_circles, color=sarUp ? color.green : color.red)
// plot(sma21, "21 SMA", color=color.orange)