Esta estrategia es un sistema de trading basado en el indicador de Volatility Stop (VStop) y el Exponential Moving Average (EMA). Incorporando los principios de trading de Stan Weinstein, optimiza la gestión de capital a través de stop losses ajustados dinámicamente mientras utiliza EMA para confirmar la dirección de la tendencia. Esta combinación proporciona a los inversores y swing traders un marco que puede capturar tendencias y gestionar riesgos de manera efectiva.
La lógica central se basa en dos indicadores técnicos principales: 1. Stop de volatilidad (VStop): Un indicador dinámico de stop-loss basado en ATR (Rango Verdadero Promedio) que se adapta a la volatilidad del mercado. Cuando el precio está en una tendencia alcista, la línea de stop se mueve hacia arriba con el precio; cuando la tendencia se invierte, la línea de stop cambia de dirección y se recalcula.
Lógico de generación de señales comerciales: - Condiciones de entrada: Precio por encima de VStop (en tendencia alcista) y precio de cierre por encima de la EMA - Condiciones de salida: Cuando el precio de cierre cae por debajo de la EMA - Control de riesgos: posiciones de stop-loss en tiempo real proporcionadas por VStop ajustado dinámicamente
Esta estrategia construye un marco comercial completo de tendencia mediante la combinación de paradas de volatilidad y sistemas de promedio móvil. Sus principales ventajas se encuentran en la adaptabilidad y las capacidades de gestión de riesgos, pero se debe prestar atención al impacto del entorno del mercado en el rendimiento de la estrategia. A través de la optimización y mejora continuas, la estrategia tiene el potencial de mantener un rendimiento estable en diferentes entornos de mercado. Se aconseja a los operadores que prueben a fondo la configuración de los parámetros y ajusten la estrategia de acuerdo con su tolerancia al riesgo antes de operar en vivo.
/*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")