
La stratégie est un système de trading de suivi de tendance basé sur l’indicateur Volatility Rate Stop (VStop) et la moyenne mobile exponentielle (EMA). La stratégie combine la philosophie de trading de Stan Weinstein pour optimiser la gestion de l’argent grâce à des niveaux de stop-loss ajustés dynamiquement, tout en utilisant l’EMA pour confirmer la direction de la tendance. Cette combinaison offre aux investisseurs et aux swing traders un cadre de trading qui leur permet de capturer les tendances tout en gérant efficacement les risques.
La logique de base de la stratégie repose sur deux indicateurs techniques principaux :
Volatility Stop (VStop) : Un indicateur d’arrêt dynamique basé sur l’ATR (Average True Range) qui ajuste de manière adaptative la position d’arrêt en fonction de la volatilité du marché. Lorsque le prix est dans une tendance à la hausse, la ligne de stop loss se déplacera vers le haut à mesure que le prix augmentera ; lorsque la tendance s’inverse, la ligne de stop loss changera de direction et sera recalculée.
Moyenne mobile exponentielle (EMA) : agit comme un outil de confirmation de tendance et aide à filtrer les faux signaux. Le prix doit être supérieur à l’EMA avant d’envisager d’ouvrir une position, ce qui garantit que la direction du trading est cohérente avec la tendance principale.
La logique de génération de signaux de trading est la suivante :
Cette stratégie construit un cadre de trading complet de suivi de tendance en combinant un stop loss de volatilité et un système de moyenne mobile. Les principaux avantages de la stratégie résident dans son adaptabilité et ses capacités de gestion des risques, mais il faut également prêter attention à l’impact de l’environnement de marché sur la performance de la stratégie. Grâce à une optimisation et une amélioration continues, la stratégie devrait permettre de maintenir des performances stables dans différents environnements de marché. Il est recommandé aux traders de tester entièrement les paramètres et d’ajuster les stratégies en fonction de leur propre tolérance au risque avant de les utiliser dans le trading réel.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("VStop + EMA Strategy", overlay=true)
// VStop Parameters
length = input.int(20, "VStop Length", minval=2)
multiplier = input.float(2.0, "VStop Multiplier", minval=0.25, step=0.25)
// EMA Parameters
emaLength = input.int(30, "EMA Length", minval=1)
// VStop Calculation
volStop(src, atrlen, atrfactor) =>
if not na(src)
var max = src
var min = src
var uptrend = true
var float stop = na
atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
max := math.max(max, src)
min := math.min(min, src)
stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != uptrend[1] and not barstate.isfirst
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
// Calculate VStop
[vStop, isUptrend] = volStop(close, length, multiplier)
// Plot VStop
plot(vStop, "Volatility Stop", style=plot.style_cross, color=isUptrend ? color.teal : color.red)
// Calculate 30 EMA
emaValue = ta.ema(close, emaLength)
plot(emaValue, "EMA", color=color.blue)
// Entry and Exit Conditions
longCondition = isUptrend and close > emaValue
exitCondition = close <= emaValue
// Strategy Execution
if longCondition and not strategy.opentrades
strategy.entry("Long", strategy.long)
if exitCondition and strategy.opentrades
strategy.close("Long")
// Display Strategy Info
bgcolor(isUptrend ? color.new(color.teal, 90) : color.new(color.red, 90), title="Trend Background")