Estrategia de negociación de pares multi-MA

El autor:¿ Qué pasa?, Fecha: 2023-09-23 15:16:50
Las etiquetas:

Resumen general

Esta estrategia combina la doble selección de medias móviles y el reconocimiento de patrones de precios para formar un mecanismo de entrada más completo para mejorar la calidad de la señal.

Estrategia lógica

La estrategia incluye los siguientes indicadores y normas:

  1. 3 SMAs juzgan la tendencia general.

  2. 2 Las AEM hacen un juicio detallado sobre las direcciones.

  3. SAR ayuda con tendencia e impulso.

  4. Los patrones de precios identifican las formaciones como señales de entrada.

  5. El beneficio máximo toma el límite de control de la contabilidad de ganancias.

  6. El límite del período de retención evita la expansión de las pérdidas.

La combinación de múltiples indicadores forma robustas señales de entrada y mecanismos de salida, equilibrando la rentabilidad y el control de riesgos para una negociación estable.

Ventajas

En comparación con las estrategias de indicadores únicos, las ventajas son:

  1. Los múltiples indicadores mejoran la precisión.

  2. El reconocimiento de patrones de precios mejora el tiempo de entrada.

  3. El control de las ganancias genera ganancias.

  4. El período de retención evita la expansión de las pérdidas.

  5. Las SMA siguen la tendencia.

  6. Las EMA mejoran la sensibilidad.

  7. SAR verifica la fiabilidad de la fuga.

  8. En general, un buen equilibrio riesgo-recompensa, robustez.

  9. Los parámetros de sintonía pueden alcanzar un alfa constante.

Los riesgos

A pesar de los méritos, hay que tener en cuenta los siguientes riesgos:

  1. Los múltiples indicadores aumentan la complejidad.

  2. El ajuste amplio de parámetros corre el riesgo de una sobre-optimización.

  3. La eficacia del reconocimiento de patrones de precios es incierta.

  4. Los riesgos de las ganancias faltan a la continuación de la tendencia.

  5. El período de retención limita el potencial de ganancias.

  6. La estabilidad y la rentabilidad tienen un compromiso.

  7. La solidez de los mercados múltiples requiere validación.

  8. La vigilancia continua de la robustez del modelo es crítica.

Mejoramiento

Basándose en el análisis, las mejoras pueden incluir:

  1. Ajustar los parámetros para la estabilidad de retorno.

  2. Incorporar aprendizaje automático para el tiempo de entrada.

  3. Optimice el stop loss dinámico y tome ganancias.

  4. Evaluar el impacto del período de tenencia en la curva de patrimonio.

  5. Prueba de la robustez en diferentes mercados.

  6. Añadir controles de robustez de parámetros para evitar el sobreajuste.

  7. Desarrollar una gestión cuantitativa del riesgo.

  8. Valida continuamente la eficacia de la estrategia.

Conclusión

En resumen, el enfoque multi-indicador forma un sistema de negociación relativamente robusto. Pero la optimización y validación continuas son clave para cualquier estrategia, centrándose en la robustez de los parámetros para la adaptabilidad del mercado.


//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Más.