Todo sobre la estrategia de comercio de impulso con stop loss para el oro

El autor:¿ Qué pasa?, Fecha: 2024-02-20 16:27:18
Las etiquetas:

img

Resumen general

Esta estrategia calcula la desviación del precio del oro de su promedio móvil exponencial de 21 días para determinar situaciones de sobrecompra y sobreventa en el mercado.

Estrategia lógica

  1. Calcular la EMA de 21 días como línea de base
  2. Computación de la desviación del precio respecto a la EMA
  3. Estandarizar la desviación en Z-Score
  4. Ir largo cuando el puntaje Z cruza más de 0,5; Ir corto cuando el puntaje Z cruza por debajo de -0,5
  5. Posición cerrada cuando el puntaje Z vuelva a caer a 0,5/-0,5
  6. Establezca el stop loss cuando el puntaje Z sea superior a 3 o inferior a -3

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. EMA como soporte/resistencia dinámico para captar las tendencias
  2. Stddev y Z-Score evalúan eficazmente los niveles de sobrecompra/sobreventa, reduciendo las señales falsas
  3. La EMA exponencial pone más peso en los precios recientes, haciéndolo más sensible
  4. Z-Score estandariza la desviación para las reglas de juicio unificadas
  5. El mecanismo de suspensión de pérdidas controla el riesgo y limita las pérdidas

Análisis de riesgos

Algunos riesgos a considerar:

  1. La EMA puede generar señales erróneas cuando los precios se rompen o se rompen
  2. Los umbrales de Stddev/Z-Score necesitan un ajuste adecuado para obtener el mejor rendimiento
  3. La configuración incorrecta del stop loss podría dar lugar a pérdidas innecesarias.
  4. Los eventos del cisne negro pueden desencadenar el stop loss y perder la oportunidad de tendencia

Soluciones:

  1. Optimizar el parámetro EMA para identificar las principales tendencias
  2. Backtest para encontrar los umbrales óptimos de Stddev/Z-Score
  3. Rationalidad de las pérdidas de prueba de parada con paradas de seguimiento
  4. Reevaluar el mercado después del evento, ajustar la estrategia en consecuencia

Direcciones de optimización

Algunas maneras de mejorar la estrategia:

  1. Utilice indicadores de volatilidad como ATR en lugar de Stddev simple para medir el apetito por el riesgo
  2. Prueba de diferentes tipos de medias móviles para una mejor línea de base
  3. Optimice el parámetro EMA para encontrar el mejor período
  4. Optimizar los umbrales de puntuación Z para mejorar el rendimiento
  5. Añadir paradas basadas en la volatilidad para un control de riesgos más inteligente

Conclusión

En general, esta es una sólida estrategia de seguimiento de tendencias. Utiliza la EMA para definir la dirección de la tendencia y la desviación estandarizada para identificar claramente los niveles de sobrecompra / sobreventa para las señales comerciales.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true)

// Input for the length of the EMA
ema_length = input.int(21, title="EMA Length", minval=1)

// Exponential function parameters
steepness = 2

// Calculate the EMA
ema = ta.ema(close, ema_length)

// Calculate the deviation of the close price from the EMA
deviation = close - ema

// Calculate the standard deviation of the deviation
std_dev = ta.stdev(deviation, ema_length)

// Calculate the Z-score
z_score = deviation / std_dev

// Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations
long_condition = ta.crossover(z_score, 0.5)

// Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations
short_condition = ta.crossunder(z_score, -0.5)

// Exit long position if Z-score converges below 0.5 from top
exit_long_condition = ta.crossunder(z_score, 0.5)

// Exit short position if Z-score converges above -0.5 from below
exit_short_condition = ta.crossover(z_score, -0.5)

// Stop loss condition if Z-score crosses above 3 or below -3
stop_loss_long = ta.crossover(z_score, 3)
stop_loss_short = ta.crossunder(z_score, -3)

// Enter and exit positions based on conditions
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)
if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")
if (stop_loss_long)
    strategy.close("Long")
if (stop_loss_short)
    strategy.close("Short")

// Plot the Z-score on the chart
plot(z_score, title="Z-score", color=color.blue, linewidth=2)

// Optional: Plot zero lines for reference
hline(0.5, "Upper Threshold", color=color.red)
hline(-0.5, "Lower Threshold", color=color.green)


Más.