Estrategia de cruce de promedio móvil adaptativo de varios marcos de tiempo

El autor:¿ Qué pasa?, Fecha: 2023-10-09 14:56:37
Las etiquetas:

Resumen general

Esta estrategia utiliza el principio de cruce de la media móvil adaptativa a través de múltiples marcos de tiempo para rastrear las tendencias. Combina la línea rápida, la línea lenta y el indicador MACD para el juicio de la señal comercial, con el objetivo de capturar ganancias adicionales de las tendencias a mediano y largo plazo.

Principio

La estrategia se basa principalmente en la combinación del sistema de cruce de media móvil doble y el indicador MACD. El sistema de cruce de media móvil doble consiste en EMA rápida y EMA lenta, que calculan promedios móviles a corto y largo plazo respectivamente. Se genera una señal de compra cuando la línea rápida cruza por encima de la línea lenta, lo que indica que la tendencia del mercado ha cambiado de baja a alta, y se puede construir una posición larga. Se genera una señal de venta cuando la línea rápida cruza por debajo de la línea lenta, lo que indica que la tendencia del mercado ha cambiado de alta a baja, en cuyo momento se puede cerrar la posición. El indicador MACD consta de la línea MAC DIF y la línea MAC DEA, que son la diferencia entre la EMA a corto y la EMA a largo plazo, y la media móvil de la diferencia respectivamente.

La estrategia combina el juicio de tendencia de la media móvil dual y la señal de cambio de impulso del MACD. Al tiempo que captura ganancias de tendencias de mediano a largo plazo, puede filtrar efectivamente las falsas rupturas. Específicamente, cuando la línea rápida cruza por encima de la línea lenta, si el histograma del MACD se vuelve verde al mismo tiempo, se genera una señal larga más confiable. Por el contrario, cuando la línea rápida cruza por debajo de la línea lenta, si el histograma del MACD se vuelve rojo simultáneamente, se genera una señal corta más fuerte.

Además, la estrategia también incorpora una funcionalidad de parámetros adaptativos. Durante la optimización de parámetros, los períodos de parámetros de línea rápida, línea lenta y MACD se ajustan automáticamente en función del rendimiento en diferentes períodos de tiempo, para garantizar que la estrategia pueda lograr un rendimiento relativamente mejor en diferentes condiciones de mercado.

Ventajas

  1. Combina el sistema de media móvil dual y el indicador MACD para la toma de decisiones, evitando ser engañado por señales falsas del ruido.

  2. Aplica la funcionalidad de parámetros adaptativos para que la estrategia pueda ajustar dinámicamente los parámetros para adaptarse a los cambios del mercado y optimizar las decisiones comerciales automáticamente.

  3. Captura las tendencias a medio y largo plazo relativamente bien, filtra las falsas rupturas de los mercados de rango y obtiene ganancias adicionales de los mercados de tendencia.

  4. Adopta análisis a través de marcos de tiempo para identificar la dirección de la tendencia de mayor grado.

  5. Lógica simple y clara, estructura de código optimizada, fácil de entender y modificar para satisfacer diferentes necesidades.

Los riesgos

  1. El sistema de medias móviles dobles tiene el riesgo de ser desviado, no es adecuado para el mercado de rango, debe utilizarse para las existencias y los períodos de tiempo con tendencia obvia.

  2. El MACD tiene un efecto de retraso, no es adecuado para rastrear tendencias que cambian rápidamente, debe combinarse con otros indicadores.

  3. La optimización de los parámetros requiere un período de prueba posterior lo suficientemente amplio y una evaluación de riesgos estricta para evitar el sobreajuste.

  4. Preste atención a los riesgos sistémicos derivados de eventos repentinos al mantener una posición larga, detenga las pérdidas a tiempo si es necesario.

  5. Riesgo de sobreoptimización de la funcionalidad de parámetros adaptativos, que requiere una verificación suficiente para evitar un ajuste demasiado frecuente de parámetros.

Direcciones de mejora

  1. Prueba diferentes combinaciones de medias móviles rápidas y lentas para encontrar parámetros que filtran el ruido y cumplan con la tendencia.

  2. Pruebe diferentes conjuntos de parámetros MACD para encontrar la combinación que refleje el punto de cambio de tendencia más temprano.

  3. Agregue el indicador de tendencia como filtro, detenga la negociación cuando la tendencia no esté clara, para evitar el golpe.

  4. Introduzca un mecanismo de stop loss como el movimiento de stop loss u órdenes pendientes para controlar la pérdida de una sola operación.

  5. Prueba algoritmos de aprendizaje automático para entrenar reglas de parámetros adaptativos con más datos, mejorando la estabilidad.

  6. Pruebe el arbitraje entre productos para formar una cartera de productos correlacionados, diversificando los riesgos sistémicos del mercado.

Conclusión

Esta estrategia combina el doble cruce de promedio móvil y el indicador de impulso MACD, logrando la integración orgánica de seguimiento de tendencias y control de ritmo. La introducción de parámetros adaptativos hace que la estrategia sea más robusta para adaptarse sin problemas a los cambios del mercado. En comparación con las estrategias de indicadores únicos, esta estrategia forma efectos de toma de decisiones más fuertes, capaces de capturar ganancias comerciales relativamente amplias de tendencias a mediano y largo plazo. Los próximos pasos pueden incluir optimización de parámetros, control de riesgos, etc. para mejorar aún más la estrategia. En general, la estrategia forma un sistema de trading de seguimiento de tendencias confiable, digno de investigación y aplicación en profundidad.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Más.