Estrategia de seguimiento de tendencia de stop loss dinámico utilizando filtrado dual RSI y MACD

RSI MACD SL (Stop Loss) TA (Technical Analysis)
Fecha de creación: 2025-02-20 16:50:43 Última modificación: 2025-02-20 16:50:43
Copiar: 0 Número de Visitas: 289
2
Seguir
319
Seguidores

Estrategia de seguimiento de tendencia de stop loss dinámico utilizando filtrado dual RSI y MACD Estrategia de seguimiento de tendencia de stop loss dinámico utilizando filtrado dual RSI y MACD

Descripción general

La estrategia es un sistema de seguimiento de tendencias basado en MACD y RSI doble indicador de filtración, con un mecanismo de stop loss dinámico integrado. La estrategia genera oportunidades de negociación principalmente a través de señales cruzadas de MACD, y utiliza el RSI como segunda confirmación, al tiempo que introduce un stop loss porcentual para controlar el riesgo. El núcleo de la estrategia es mejorar la fiabilidad de las señales de negociación mediante el uso en combinación de indicadores técnicos y proteger los beneficios mediante el stop loss dinámico.

Principio de estrategia

La estrategia utiliza el MACD (<12,26,9) y el RSI (<14) como indicadores principales. La señal de entrada requiere que se cumplan dos condiciones al mismo tiempo: el MACD de la horquilla de oro y el RSI están en la zona de sobreventa (<40 por defecto), y el MACD de la horquilla de la muerte y el RSI están en la zona de sobreventa (<59 por defecto). El sistema también establece un stop loss dinámico del 3%, que se despeja automáticamente para controlar el riesgo cuando el precio se mueve en una dirección desfavorable por encima del porcentaje establecido.

Ventajas estratégicas

  1. El filtro de doble indicador mejora la fiabilidad de las señales de negociación y reduce las falsas.
  2. El mecanismo de stop loss dinámico controla eficazmente el riesgo de cada operación.
  3. Los parámetros de la estrategia se pueden ajustar de manera flexible según las diferentes condiciones del mercado.
  4. La función de filtro de tiempo permite ejecutar transacciones en un período de tiempo específico.
  5. El porcentaje de capital que se utiliza para mantener posiciones es favorable para la administración de fondos.

Riesgo estratégico

  1. En un mercado convulso, se pueden generar señales de negociación frecuentes que aumentan los costos de las transacciones.
  2. El cierre porcentual fijo puede conducir a una liquidación prematura en mercados altamente volátiles.
  3. El MACD, como un indicador de retraso, puede perderse importantes movimientos de precios en un mercado rápido.
  4. La configuración del umbral RSI necesita ser optimizada para diferentes mercados.
  5. Los costos de transacción y los puntos de desliz pueden afectar el rendimiento real de la estrategia.

Dirección de optimización de la estrategia

  1. Introducción de un indicador de volatilidad para ajustar dinámicamente el porcentaje de stop loss.
  2. Aumentar los filtros de intensidad de tendencia para evitar el exceso de comercio en mercados convulsionados.
  3. Considere la posibilidad de añadir un stop loss móvil para proteger sus ganancias.
  4. Optimizar la configuración de los parámetros del RSI y el MACD para adaptarlos mejor a los diferentes ciclos del mercado.
  5. El objetivo es aumentar el volumen de transacciones y mejorar la fiabilidad de la señal.

Resumir

Es una estrategia de seguimiento de tendencias estructurada y con claridad lógica. El uso combinado de MACD y RSI mejora la calidad de las señales de negociación. El diseño de stop loss dinámico ayuda a controlar el riesgo, lo que hace que la estrategia tenga buenas características de gestión de riesgos. La estrategia es adecuada para su uso en mercados con una clara tendencia, pero requiere ajustar los parámetros según las características específicas del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2025-02-13 10:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © eagle916
//@version=5
strategy("EAG MACD + RSI Strategy",overlay=true, initial_capital = 300, default_qty_value = 10, default_qty_type = "percent_of_equity", commission_type=strategy.commission.percent, commission_value=0.1)


// Input para el RSI
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(59, title="RSI Overbought Level", minval=1, maxval=100)
rsi_oversold = input.int(40, title="RSI Oversold Level", minval=1, maxval=100)

// Input para el MACD
macd_length = input.int(12, title="MACD Length", minval=1)
macd_overbought = input.int(26, title="MACD Overbought Level", minval=1, maxval=100)
macd_signal = input.int(9, title="MACD Signal Level", minval=1, maxval=100)

// Input para el porcentaje de pérdida (stop loss)
stop_loss_percent = input.float(3.0, title="Porcentaje de Stop Loss (%)", minval=0.1, step=0.1)

// Calcular RSI
rsi_value = ta.rsi(close, rsi_length)

// Calcular MACD
[macdLine, signalLine, _] = ta.macd(close, macd_length, macd_overbought, macd_signal)
macd_crossup = ta.crossover(macdLine, signalLine)   // Cruce al alza del MACD
macd_crossdown = ta.crossunder(macdLine, signalLine) // Cruce a la baja del MACD

// Condiciones de compra y venta
buy_condition = macd_crossup and rsi_value <= rsi_oversold
sell_condition = macd_crossdown and rsi_value >= rsi_overbought


// Registrar precio de entrada
var float entry_price = na
if strategy.position_size == 0
    entry_price := na

// Mostrar señales de compra y venta en la gráfica principal
plotshape(series=buy_condition, title="Señal de Compra", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Compra debajo de la vela
plotshape(series=sell_condition, title="Señal de Venta", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Venta encima de la vela

// Órdenes de estrategia
if buy_condition 
    strategy.entry("Compra", strategy.long)
    entry_price := close
if sell_condition 
    strategy.entry("Venta", strategy.short)
    entry_price := close

// Calcular el precio de stop loss
long_stop_loss = entry_price * (1 - stop_loss_percent / 100)
short_stop_loss = entry_price * (1 + stop_loss_percent / 100)

// Cerrar posición si el precio va en contra el porcentaje definido por el usuario
if strategy.position_size > 0 and close < long_stop_loss
    strategy.close("Compra", comment="Stop Loss Compra")

if strategy.position_size < 0 and close > short_stop_loss
    strategy.close("Venta", comment="Stop Loss Venta")