Seguimiento de la estrategia de stop loss basada en la media móvil doble dinámica


Fecha de creación: 2024-02-26 11:13:17 Última modificación: 2024-02-26 11:13:17
Copiar: 0 Número de Visitas: 594
1
Seguir
1617
Seguidores

Seguimiento de la estrategia de stop loss basada en la media móvil doble dinámica

Descripción general

La estrategia es una estrategia de seguimiento de pérdidas dinámicas basado en la media doble de EMA. Utiliza las líneas de 9 y 20 días para determinar la dirección de la tendencia del mercado, en combinación con el indicador RSI para filtrar las rupturas falsas. Al mismo tiempo, utiliza el indicador ATR para calcular las paradas y paradas dinámicas.

Principio de estrategia

La estrategia utiliza la EMA de 9 días como la media corta y la EMA de 20 días como la media media media para determinar la tendencia de los precios. Cuando los precios se elevan por encima de la media corta y el cierre es superior al máximo del día anterior y el RSI es superior a 30, se hace más; cuando los precios se elevan por debajo de la media corta y el cierre es inferior al mínimo del día anterior y el RSI es inferior a 70, se hace más.

El punto de parada se establece como el precio de cierre menos 1.5 veces el valor de ATR, el punto de parada se establece como el precio de cierre más el valor de ATR multiplicado por el coeficiente de parada. Al mismo tiempo, se establece un punto de parada de seguimiento de tendencia usando 2 veces el ATR.

Ventajas estratégicas

  1. Utilice el doble EMA para determinar las principales tendencias del mercado y evitar el ruido
  2. La combinación de filtros de brechas falsas con el indicador RSI mejora la precisión de entrada
  3. Paradas de pérdidas dinámicas, que se pueden ajustar según la volatilidad del mercado
  4. Seguir la tendencia, detener las pérdidas y maximizar las ganancias

Análisis de riesgos

  1. El EMA promedio está rezagado y podría perder oportunidades a corto plazo
  2. La configuración incorrecta de los parámetros de RSI puede causar oportunidades de entrada perdidas
  3. La proporción de la parada de deterioro está mal ajustada y puede ser demasiado flexible o estricta
  4. El bloqueo de pérdidas podría ser roto cuando la situación fluctúe.

Dirección de optimización

  1. Prueba las combinaciones de EMA de diferentes parámetros para encontrar el parámetro óptimo
  2. Optimización de los parámetros del RSI, equilibrando la relación entre la precisión de entrada y el aprovechamiento de oportunidades
  3. Probar diferentes proporciones de parada de pérdidas para encontrar la configuración óptima
  4. Agregar más condiciones de filtración para reducir la probabilidad de que el stop loss sea superado.

Resumir

La estrategia en general es una estrategia de posición de línea media y larga más estable. Combina los principales trends de mercado de los dos EMA para evitar que las decisiones sean influenciadas por el ruido del mercado a corto plazo. La inclusión del indicador RSI también filtra los falsos brechas en cierta medida. Además, el mecanismo de stop loss también permite a la estrategia ajustar su nivel de stop loss en función de la volatilidad del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CJTrade", overlay=true)

short = ema(close, 9)
medium = ema(close, 20)
long = ema(close, 50)
very_long = ema(close, 200)

plot(short, color=color.gray, linewidth=1)
plot(medium, color=color.red, linewidth=1)
plot(long, color=color.black, linewidth=1)
plot(very_long, color=color.blue, linewidth=1)

rsiValue = rsi(close, 14)

near20EMA = close > medium - atr(14)

longCond = crossover(close[1], short) and close >= high[1] and rsiValue < 70 and near20EMA
shortCond = crossunder(close[1], short) and close <= low[1] and rsiValue > 30 and near20EMA

strategy.entry("Long", strategy.long, when=longCond)
strategy.entry("Short", strategy.short, when=shortCond)

atrValue = atr(14)
stopLossLevel = close - atrValue * 1.5

// Dynamic take profit level based on ATR
takeProfitMultiplier = input(2, title="Take Profit Multiplier", minval=0.1, maxval=10, step=0.1)
takeProfitLevel = close + atrValue * takeProfitMultiplier

// Trailing stop loss for long positions
longTrailingStop = close - atrValue * 2
strategy.exit("LongTrailingStop", from_entry="Long", loss=longTrailingStop)

// Trailing stop loss for short positions
shortTrailingStop = close + atrValue * 2
strategy.exit("ShortTrailingStop", from_entry="Short", loss=shortTrailingStop)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)