Tendencia de seguir una estrategia basada en la suspensión dinámica de pérdidas del cruce de dos EMA

El autor:¿ Qué pasa?, Fecha: 2024-01-29 09:57:20
Las etiquetas:

img

Resumen general

Esta estrategia utiliza la cruz dorada y la cruz muerta de las líneas EMA para seguir la tendencia en dos direcciones, y establece líneas de stop loss dinámicas para posiciones largas y cortas para capturar los movimientos de tendencia en el mercado.

Estrategia lógica

  1. Calcular la línea de EMA rápida (5 días) y la línea de EMA lenta (20 días)
  2. Ir largo cuando la línea rápida cruza por encima de la línea lenta desde abajo; Ir corto cuando la línea rápida cruza por debajo de la línea lenta desde arriba
  3. En el caso de las entidades de crédito, el importe de las pérdidas de liquidación se calculará en función de las pérdidas de liquidación de las entidades de crédito.
  4. Posición de salida con stop loss una vez que el precio alcanza el nivel de stop loss

Análisis de ventajas

  1. Las líneas EMA tienen capacidades más fuertes en el seguimiento de tendencias.
  2. Dinámico stop loss se mueve junto con la ganancia, maximizando la tendencia de captura de ganancias
  3. El filtro adicional con vwap evita quedar atrapado en las flechas y mejora la calidad de la señal

Análisis de riesgos

  1. Como pura tendencia de seguimiento de la estrategia, es vulnerable a los mercados de variación con
  2. Las pérdidas de detención demasiado sueltas pueden dar lugar a pérdidas ampliadas.
  3. La naturaleza tardía de las señales cruzadas de la EMA puede perder los mejores puntos de entrada

Las mejoras como la gestión de riesgos basada en ATR, la optimización de las reglas de stop loss, la adición de indicadores de filtro, etc. pueden ayudar a mejorar la estrategia.

Direcciones de mejora

  1. Incorporar indicadores dinámicos de stop loss como ATR o DONCH para establecer mejores paradas adaptativas
  2. Añadir más indicadores de filtro como MACD, KDJ para evitar malas operaciones
  3. Optimizar los parámetros para encontrar la mejor combinación de longitudes EMA
  4. Utilice métodos de aprendizaje automático para descubrir parámetros óptimos

Conclusión

En conclusión, esta es una tendencia muy típica después de la estrategia. El cruce dual EMA con stop loss dinámico puede bloquear efectivamente las ganancias de la tendencia. Mientras tanto, los riesgos como señales rezagadas y paradas generales todavía existen. A través del ajuste de parámetros, gestión de riesgos, adiciones de filtros, etc., un mayor refinamiento puede conducir a mejores resultados.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("EMA Crossover Strategy", shorttitle="EMAC", overlay=true,calc_on_every_tick=true)

// Input parameters
shortEmaLength = input(5, title="Short EMA Length")
longEmaLength = input(20, title="Long EMA Length")
priceEmaLength = input(1, title="Price EMA Length")

// Set stop loss level with input options (optional)
longLossPerc = input.float(0.05, title="Long Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

shortLossPerc = input.float(0.05, title="Short Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

// Calculating indicators
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
//priceEma = ta.ema(close, priceEmaLength)
vwap = ta.vwap(close)

// Long entry conditions
longCondition = ta.crossover(shortEma, longEma) and close > vwap
// Short entry conditions
shortCondition = ta.crossunder(shortEma, longEma) and close > vwap

// STEP 2:
// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


if (longCondition)
    strategy.entry("Enter Long", strategy.long)
    strategy.exit("Exit Long",from_entry = "Enter Long",stop= longStopPrice)
plotshape(series=longCondition, title="Long Signal", color=color.green, style=shape.triangleup, location=location.belowbar)


if (shortCondition)
    strategy.entry("Enter Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Enter Short",stop = shortStopPrice)
plotshape(series=shortCondition, title="Short Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Stop loss levels
//longStopLoss = (1 - stopLossPercent) * close
//shortStopLoss = (1 + stopLossPercent) * close

// Exit conditions
//strategy.exit("Long", from_entry="Long", loss=longStopLoss)
//strategy.exit("Short", from_entry="Short", loss=shortStopLoss)

// Plotting indicators on the chart
plot(shortEma, color=color.yellow, title="Short EMA")
plot(longEma, color=color.green, title="Long EMA")
plot(close, color=color.black, title="Close")
plot(vwap, color=color.purple, title="VWAP")

// Plot stop loss values for confirmation
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_line,
     linewidth=2, title="Long Stop Loss")

plot(strategy.position_size < 0 ? shortStopPrice : na,
     color=color.blue, style=plot.style_line,
     linewidth=2, title="Short Stop Loss")
// Plotting stop loss lines
//plot(longStopLoss, color=color.red, title="Long Stop Loss", linewidth=2, style=plot.style_line)
//plot(shortStopLoss, color=color.aqua, title="Short Stop Loss", linewidth=2, style=plot.style_line)

Más.