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

Estrategia de predicción cruzada de la oscilación dinámica del MACD

El autor:¿ Qué pasa?, Fecha: 2024-11-27 14:54:02
Las etiquetas:El MACDEl EMALa SMALa ROC

img

Resumen general

Esta estrategia basa las decisiones comerciales en las características dinámicas del indicador MACD (Moving Average Convergence Divergence). El enfoque central se centra en observar los cambios en el histograma MACD para predecir posibles cruces de oro y muerte, lo que permite el establecimiento temprano de posiciones.

Principios de estrategia

La estrategia emplea un sistema de indicadores MACD modificado, que incorpora la diferencia entre las medias móviles rápidas (EMA12) y lentas (EMA26), junto con una línea de señal de 2 períodos.

  1. Calcular la tasa de cambio del histograma (hist_change) para juzgar la dinámica de la tendencia
  2. Anticipación de señales de cruz dorada al entrar en posiciones largas cuando el histograma es negativo y muestra una tendencia al alza durante tres períodos consecutivos
  3. Anticipación de señales cruzadas de muerte cerrando posiciones cuando el histograma es positivo y muestra una tendencia a la baja durante tres períodos consecutivos
  4. Implementación de un mecanismo de filtración temporal para negociar únicamente dentro de intervalos de tiempo especificados

Ventajas estratégicas

  1. Predicción de señales fuertes: Anticipa señales potenciales de cruce observando la dinámica del histograma, mejorando el tiempo de entrada
  2. Control de riesgos razonable: Incorpora una comisión del 0,1% y un deslizamiento de 3 puntos, lo que refleja condiciones comerciales realistas
  3. Gestión de capital flexible: utiliza el tamaño de las posiciones basado en el porcentaje en relación con el patrimonio neto de la cuenta para un control eficaz del riesgo
  4. Excelente visualización: utiliza histogramas codificados por colores y marcadores de flechas para señales comerciales, facilitando el análisis

Riesgos estratégicos

  1. Riesgo de ruptura falsa: pueden producirse señales falsas frecuentes en mercados variados
  2. Riesgo de retraso: a pesar de los mecanismos predictivos, el MACD conserva cierto retraso inherente
  3. Dependencia del entorno del mercado: la estrategia tiene un mejor rendimiento en mercados de tendencia, con un rendimiento potencialmente inferior en condiciones variables
  4. Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de la configuración del período de línea rápida y lenta

Direcciones de optimización

  1. Filtración del entorno de mercado: añadir indicadores de identificación de tendencias para ajustar los parámetros de negociación en función de las condiciones del mercado
  2. Mejora de la gestión de la posición: Implementar dimensionamiento dinámico de la posición basado en la intensidad de la señal
  3. Implementación de pérdidas de parada: añadir pérdidas de parada de espera o fijas para controlar el descenso
  4. Mejora de la confirmación de la señal: incorporar indicadores técnicos adicionales para la validación cruzada
  5. Optimización de parámetros: Implementar parámetros adaptativos que se ajustan según las condiciones del mercado

Resumen de las actividades

Esta estrategia utiliza de manera innovadora las características dinámicas del histograma MACD para mejorar los sistemas de negociación MACD tradicionales. El mecanismo predictivo proporciona señales de entrada más tempranas, mientras que las estrictas condiciones de negociación y las medidas de control de riesgos aseguran la estabilidad de la estrategia.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=2)  // Set smoothing line to 2
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Date inputs
start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00"))
end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59"))

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Strategy logic
isInDateRange = true

// Calculate the rate of change of the histogram
hist_change = hist - hist[1]

// Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero
anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2]

// Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero
anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2]

if anticipate_long
    strategy.entry("Long", strategy.long)

if anticipate_exit
    strategy.close("Long")

// Plotting
hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2)))
plot(macd, title="MACD", color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)

// Plotting arrows when anticipating the crossover
plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1")
plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")


Relacionados

Más.