En la carga de los recursos... Cargando...

La estrategia de negociación de doble cruce MACD de Lag Cero - Negociación de alta frecuencia basada en la captura de tendencias a corto plazo

El autor:¿ Qué pasa?, Fecha: 2024-05-24 18:14:37
Las etiquetas:El MACDEl EMALa SMA

img

Resumen general

Esta estrategia se basa en la versión de retraso cero del indicador MACD (Moving Average Convergence Divergence), que captura las tendencias a corto plazo al responder rápidamente a los cambios de precios, lo que permite el comercio de alta frecuencia. La estrategia utiliza dos promedios móviles con períodos diferentes (líneas rápidas y lentas) para construir el indicador MACD e introduce un algoritmo de retraso cero para eliminar el retraso entre el indicador y el precio, mejorando la puntualidad de las señales. Además, el cruce de la línea de señal y la línea MACD se utiliza como señales de compra y venta, y se establecen alertas para ayudar a los operadores a aprovechar las oportunidades comerciales de manera oportuna.

Principio de la estrategia

  1. Calcular la EMA (media móvil exponencial) o la SMA (media móvil simple) de la línea rápida (default 12 periodos) y la línea lenta (default 26 periodos).
  2. Utilice el algoritmo de retraso cero para suavizar las líneas rápidas y lentas, eliminando el retraso entre el indicador y el precio.
  3. La línea MACD se forma por la diferencia entre la línea rápida de cero retraso y la línea lenta de cero retraso.
  4. La línea de señal está formada por la EMA (período por defecto 9) o SMA de la línea MACD.
  5. El histograma MACD está formado por la diferencia entre la línea MACD y la línea de señal, con el azul representando valores positivos y el rojo representando valores negativos.
  6. Cuando la línea MACD cruza la línea de señal desde abajo y el punto de cruce está por debajo del eje cero, se genera una señal de compra (punto azul).
  7. Cuando la línea MACD cruza la línea de señal desde arriba y el punto de cruce está por encima del eje cero, se genera una señal de venta (punto rojo).
  8. La estrategia coloca automáticamente órdenes basadas en las señales de compra y venta y activa las alertas correspondientes.

Análisis de ventajas

  1. El algoritmo de retraso cero elimina efectivamente el retraso entre el indicador y el precio, mejorando la puntualidad y precisión de las señales.
  2. El diseño de medias móviles duales puede captar mejor las tendencias del mercado y adaptarse a diferentes entornos de mercado.
  3. El histograma MACD refleja intuitivamente la comparación de las fuerzas alcistas y bajistas, ayudando en las decisiones comerciales.
  4. Las funciones automáticas de colocación de órdenes y alerta permiten a los operadores aprovechar oportunamente las oportunidades de negociación, lo que mejora la eficiencia comercial.

Análisis de riesgos

  1. En mercados volátiles, las señales cruzadas frecuentes pueden dar lugar a un exceso de operaciones y a pérdidas.
  2. La configuración incorrecta de los parámetros puede causar distorsión de la señal y afectar el rendimiento de la estrategia.
  3. La estrategia se basa en datos históricos para los cálculos y tiene poca adaptabilidad a eventos repentinos y eventos de cisne negro.

Dirección de optimización

  1. Introducir indicadores de confirmación de tendencia, como el ADX, para filtrar las señales falsas en los mercados volátiles.
  2. Optimizar los parámetros para encontrar la mejor combinación de períodos de línea rápida y lenta y períodos de línea de señal, mejorando la estabilidad de la estrategia.
  3. Combinar otros indicadores técnicos o factores fundamentales para construir un modelo multifactorial, mejorando los rendimientos ajustados al riesgo de la estrategia.
  4. Introducir mecanismos de stop-loss y take-profit para controlar el riesgo de la operación única.

Resumen de las actividades

La estrategia de negociación MACD tiene ciertas ventajas, como señales intuitivas y operación conveniente, pero también se enfrenta a riesgos como el sobrecomercio y la sensibilidad de parámetros. En el futuro, la estrategia se puede optimizar introduciendo indicadores de confirmación de tendencias, optimización de parámetros, modelos multifactor, etc., para mejorar la robustez y rentabilidad de la estrategia.


/*backtest
start: 2024-04-23 00:00:00
end: 2024-05-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close

fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)

// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength) 
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength) 
zerolagEMA = ((2 * ma1) - ma2)

// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)

// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA 

// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2

hist = ZeroLagMACD - signal

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')

ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red

// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')

// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)

// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
    strategy.entry("Buy", strategy.long)
    alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)


Relacionados

Más.