Cette stratégie est un système de trading basé sur l'indicateur de volatilité stop (VStop) et l'exponentielle moyenne mobile (EMA). Incorporant les principes de trading de Stan Weinstein, elle optimise la gestion du capital grâce à des arrêts de perte dynamiquement ajustés tout en utilisant l'EMA pour confirmer la direction de la tendance. Cette combinaison fournit aux investisseurs et aux traders swing un cadre qui peut à la fois capturer les tendances et gérer efficacement les risques.
La logique de base repose sur deux indicateurs techniques principaux: 1. Stop de volatilité (VStop): Indicateur dynamique de stop-loss basé sur ATR (Average True Range) qui s'adapte à la volatilité du marché. Lorsque le prix est en hausse, la ligne d'arrêt monte avec le prix; lorsque la tendance s'inverse, la ligne d'arrêt change de direction et recalcule.
Logique de génération de signaux commerciaux: - Conditions d'entrée: prix supérieur à VStop (en hausse) et prix de clôture supérieur à la EMA - Conditions de sortie: lorsque le prix de clôture tombe en dessous de la EMA - Contrôle des risques: positions stop-loss en temps réel fournies par VStop réglé dynamiquement
Cette stratégie construit une tendance complète suivant le cadre de négociation en combinant des arrêts de volatilité et des systèmes de moyennes mobiles. Ses principaux avantages résident dans l'adaptabilité et les capacités de gestion des risques, mais il faut prêter attention à l'impact de l'environnement du marché sur la performance de la stratégie. Grâce à l'optimisation et à l'amélioration continues, la stratégie a le potentiel de maintenir une performance stable dans différents environnements de marché. Les traders sont invités à tester en profondeur les paramètres et à ajuster la stratégie en fonction de leur tolérance au risque avant de trader en direct.
/*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")