Estrategia de seguimiento de tendencias de stop-profit y stop-loss dinámicos y cruzados con múltiples indicadores

EMA RSI ADX MACD ATR
Fecha de creación: 2025-02-20 09:37:03 Última modificación: 2025-02-27 17:52:08
Copiar: 1 Número de Visitas: 382
2
Seguir
319
Seguidores

Estrategia de seguimiento de tendencias de stop-profit y stop-loss dinámicos y cruzados con múltiples indicadores Estrategia de seguimiento de tendencias de stop-profit y stop-loss dinámicos y cruzados con múltiples indicadores

Descripción general

La estrategia es una estrategia de mercado en efectivo basada en múltiples indicadores técnicos. Utiliza principalmente señales cruzadas de promedios móviles rápidos y lentos (EMA), combinadas con índices relativamente débiles (RSI), promedios de tendencia (ADX) y promedios móviles de tendencia / desviación (MACD) para confirmar las señales de negociación. La estrategia también utiliza el promedio real de amplitud (ATR) para establecer niveles de stop y stop dinámicos para la gestión del riesgo.

Principio de estrategia

La lógica central de la estrategia se basa en los siguientes componentes clave:

  1. Utiliza cruces de EMA de 8 y 21 ciclos como señal de entrada principal
  2. Confirmación de la intensidad de la tendencia a través de ADX> 25
  3. Utiliza el MACD Gold Fork para confirmar la dirección de la tendencia
  4. RSI < 70 para evitar entrar en una zona de sobrecompra
  5. Utiliza 1.5 veces el ATR como stop loss y 2 veces como stop
  6. Introducción de un mecanismo de seguimiento de pérdidas para asegurar el bloqueo de ganancias

Ventajas estratégicas

  1. El mecanismo de confirmación múltiple mejora significativamente la fiabilidad de las transacciones
  2. Paradas y paradas dinámicas para adaptarse a las fluctuaciones del mercado
  3. Función de seguimiento de la pérdida de la protección efectiva de los beneficios obtenidos
  4. Ejecutar transacciones solo después de la confirmación de la línea K, reduciendo las señales falsas
  5. Porcentaje de capital para mantener posiciones y controlar mejor el riesgo
  6. Se toma en cuenta el costo de la transacción y se ajusta mejor al entorno real de la transacción.

Riesgo estratégico

  1. La multiplicación de indicadores puede hacer que se pierdan algunas oportunidades de negocio
  2. Los mercados rápidos pueden generar falsas señales frecuentes
  3. Un gran salto en el aire puede causar pérdidas de efecto
  4. Los costos de transacción pueden afectar el rendimiento general de la estrategia
  5. Las estrategias unidireccionales pueden no funcionar en un mercado bajista

Dirección de optimización de la estrategia

  1. Se puede considerar la adición de filtros de entorno de mercado para ajustar los parámetros en diferentes condiciones de mercado
  2. Introducción de indicadores de volumen de ventas como una señal de confirmación adicional
  3. Optimización de los parámetros EMA y MACD para adaptarlos mejor a diferentes períodos de tiempo
  4. Mecanismos para detener la pérdida de las paredes, que pueden considerarse para detener las paredes por lotes
  5. Aumento de la lógica de gestión de ubicación para un control de posición más flexible

Resumir

Se trata de una estrategia de seguimiento de tendencias de diseño razonable, que busca obtener ganancias estables al mismo tiempo que controla el riesgo mediante el uso combinado de múltiples indicadores técnicos. La ventaja de la estrategia reside en su mecanismo de confirmación y sistema de gestión de riesgos perfectos, pero aún así se necesita una optimización de parámetros y mejoras lógicas según las condiciones reales del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Optimized Long-Only Strategy (Spot Market) - Candle Signals Only", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)

// INPUTS
fastEMA_len         = input.int(8, "Fast EMA Length", minval=1)
slowEMA_len         = input.int(21, "Slow EMA Length", minval=1)
rsiPeriod           = input.int(14, "RSI Period")
rsiOverbought       = input.int(70, "RSI Overbought Level", minval=50)
adxPeriod           = input.int(14, "ADX Period", minval=1)
adxThreshold        = input.int(25, "ADX Trend Strength Threshold", minval=1)
fastMACD            = input.int(12, "MACD Fast Length", minval=1)
slowMACD            = input.int(26, "MACD Slow Length", minval=1)
signalMACD          = input.int(9, "MACD Signal Length", minval=1)
atrPeriod           = input.int(14, "ATR Period", minval=1)
atrStopMultiplier   = input.float(1.5, "ATR Stop Loss Multiplier", step=0.1)
atrProfitMultiplier = input.float(2.0, "ATR Profit Target Multiplier", step=0.1)

// CALCULATIONS
emaFast   = ta.ema(close, fastEMA_len)
emaSlow   = ta.ema(close, slowEMA_len)
rsiValue  = ta.rsi(close, rsiPeriod)

// --- Custom ADX Calculation ---
up      = ta.change(high)
down    = -ta.change(low)
plusDM  = (up > down and up > 0) ? up : 0
minusDM = (down > up and down > 0) ? down : 0
trueRange = ta.tr(true)  // 'handle_na' parameter set to true
atrVal    = ta.rma(trueRange, adxPeriod)
plusDI    = 100 * ta.rma(plusDM, adxPeriod) / atrVal
minusDI   = 100 * ta.rma(minusDM, adxPeriod) / atrVal
dx        = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue  = ta.rma(dx, adxPeriod)

// MACD Calculation (MACD line, signal line, histogram)
[macdLine, signalLine, _] = ta.macd(close, fastMACD, slowMACD, signalMACD)

// ATR for stops and targets
atrValue  = ta.atr(atrPeriod)

// TRADING CONDITION (Long Only, on confirmed candle)
longCondition = ta.crossover(emaFast, emaSlow) and (adxValue > adxThreshold) and (macdLine > signalLine) and (rsiValue < rsiOverbought)

// POSITION MANAGEMENT: Execute only on confirmed candles
if barstate.isconfirmed and longCondition
    strategy.entry("Long", strategy.long)
    longStop   = close - atrStopMultiplier * atrValue
    longTarget = close + atrProfitMultiplier * atrValue
    strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTarget, trail_points=atrValue * 0.5, trail_offset=atrValue * 0.3)

// PLOTTING
plot(emaFast, color=color.green, title="Fast EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
plotshape(barstate.isconfirmed and longCondition, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", textcolor=color.white, size=size.tiny)