Estrategia de predicción del cruce de volatilidad dinámica del MACD

MACD EMA SMA ROC
Fecha de creación: 2024-11-27 14:54:02 Última modificación: 2024-11-27 14:54:02
Copiar: 0 Número de Visitas: 441
1
Seguir
1617
Seguidores

Estrategia de predicción del cruce de volatilidad dinámica del MACD

Descripción general

La estrategia se basa en el MACD para tomar decisiones de negociación. El núcleo de la estrategia es predecir los posibles forks y deadlines mediante la observación de las tendencias cambiantes en el gráfico de columnas MACD. La estrategia no se centra solo en las señales de cruce de los indicadores MACD tradicionales, sino en las características de cambio dinámico de los gráficos de columnas.

Principio de estrategia

La estrategia utiliza una versión mejorada del sistema de indicadores MACD, que contiene el cálculo de la diferencia entre el promedio móvil rápido (EMA12) y el promedio móvil lento (EMA26), y una línea de señal basada en 2 ciclos. La lógica de negociación central se basa en los siguientes puntos clave:

  1. El cambio dinámico de la tendencia se determina calculando la tasa de cambio (hist_change) en el gráfico columnar
  2. Cuando el gráfico de columnas es negativo y presenta una tendencia al alza durante tres períodos consecutivos, el pronóstico puede dar lugar a una señal de horquilla de oro, para entrar más temprano.
  3. Cuando el gráfico de columnas es positivo y presenta una tendencia a la baja durante tres períodos consecutivos, el pronóstico puede dar lugar a una señal de horquilla muerta y una salida a la par.
  4. Introducción de un mecanismo de filtro de tiempo para las estrategias que solo operan en un período de tiempo determinado

Ventajas estratégicas

  1. Señales de predicción: predicción anticipada de posibles señales de cruce mediante la observación de cambios dinámicos en el gráfico de columnas, lo que mejora el tiempo de entrada
  2. El control de riesgo es razonable: se establece una comisión del 0.1% y un costo de transacción de 3 puntos de deslizamiento, en consonancia con el entorno de transacción real
  3. Flexibilidad en la gestión de fondos: porcentaje del valor total de la cuenta para la gestión de posiciones y el control efectivo del riesgo
  4. Excelente visualización: gráficos columnares en diferentes colores y señalamiento de señales de negociación con flechas para facilitar el análisis

Riesgo estratégico

  1. Riesgo de brechas falsas: señales de brechas falsas que pueden ser frecuentes en mercados de oscilación horizontal
  2. Riesgo de retraso: el MACD en sí mismo es algo retrasado a pesar de la adopción de mecanismos de prejuicio
  3. Dependencia del entorno del mercado: las estrategias funcionan mejor en mercados con una tendencia clara, y pueden funcionar peor en mercados convulsos
  4. Sensibilidad de los parámetros: la configuración del ciclo de línea rápida y lenta tiene un mayor impacto en el rendimiento de la estrategia

Dirección de optimización de la estrategia

  1. Introducción de filtros de entornos de mercado: se pueden agregar indicadores de tendencia para usar diferentes parámetros de negociación en diferentes entornos de mercado
  2. Optimización de la gestión de posiciones: el porcentaje de tenencia se puede ajustar dinámicamente según la intensidad de la señal
  3. Mecanismo de parada de pérdidas mejorado: agregado de parada de seguimiento o parada fija para controlar la retirada
  4. Mecanismos de confirmación de señales: verificación cruzada con otros indicadores técnicos para mejorar la fiabilidad de la señal
  5. Optimización de la selección de parámetros: se puede utilizar el método de parámetros de adaptación para ajustar los parámetros del indicador en función de la dinámica de la situación del mercado

Resumir

La estrategia mejora y optimiza el sistema de negociación MACD tradicional mediante la aplicación innovadora de las características de cambio dinámico del gráfico de columnas MACD. El mecanismo de predeterminación de la estrategia permite proporcionar señales de entrada más tempranas, mientras que las estrictas condiciones de negociación y las medidas de control de riesgo aseguran la estabilidad de la estrategia.

Código Fuente 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")