Estrategia de convergencia y divergencia de medias móviles logarítmicas


Fecha de creación: 2023-09-21 15:38:05 Última modificación: 2023-09-21 15:38:05
Copiar: 4 Número de Visitas: 929
1
Seguir
1617
Seguidores

Descripción general

La estrategia se basa en el indicador de dispersión de la media móvil logarítmica (Logarithmic MACD) para generar señales de negociación. La estrategia determina la tendencia y la oportunidad del mercado calculando la diferencia entre las medias móviles logarítmicas rápidas y lentas.

Principio de estrategia

La principal lógica de esta estrategia es la siguiente:

  • Cálculo de las medias móviles rápidas (de 12 días por defecto) y lentas (de 26 días por defecto)

  • El MACD es el diferencial entre ambos para expresar la dinámica del mercado

  • La línea de señal es el promedio móvil liso del MACD (default 9 días)

  • Hacer más cuando la línea MACD se rompe la línea de señal desde abajo

  • Cuando la línea MACD cae desde arriba y se vacía la línea de señal

  • La diferencia entre MACD y la línea de señal se expresa en forma de gráfico columnar

En comparación con el MACD de media móvil simple, el MACD logarítmico puede resaltar las tendencias de los cambios en el mercado de crecimiento de escala exponencial. Después de la conversión logarítmica, los valores con mayor volatilidad pueden mantenerse relativamente comparables en el gráfico.

Ventajas estratégicas

  • Utilizando la conversión logarítmica, se pueden detectar cambios en los precios a nivel de índice

  • El MACD paralelo resalta la información sobre las fluctuaciones de precios

  • Las líneas de señal se suavizan MACD, formando una señal de transacción

  • El MACD en forma de columnas es una expresión intuitiva de la dirección de la tendencia

Riesgo estratégico

  • La conversión numérica podría aumentar las fluctuaciones de precios

  • Las señales son frecuentes y se puede comerciar demasiado.

  • No se ha considerado la gestión de pérdidas y el control de riesgos es incompleto.

Respuesta:

  • Ajuste de parámetros para reducir la frecuencia de la señal

  • Aumentar las condiciones de filtración para evitar la generación de señales en las vibraciones

  • Establezca una estrategia de stop loss para controlar las pérdidas individuales

Dirección de optimización de la estrategia

  • Optimización de parámetros y estabilidad

  • Intentar otras conversiones de índices, como promedios móviles de índices

  • Combinación de indicadores de tendencia para filtrar señales

  • Aumentar las estrategias de alto riesgo

  • Aprendizaje automático para determinar la fiabilidad de la señal

Resumir

La estrategia utiliza la conversión de la simetría para mejorar la sensibilidad del indicador MACD, lo que permite detectar los cambios de tendencia antes. Sin embargo, debe tenerse en cuenta el control de la frecuencia de las transacciones. A través de la optimización de los parámetros, el control del viento y otras mejoras, la estrategia puede convertirse en un sistema de comercio cuantitativo estable y con personalidad.

Código Fuente de la Estrategia
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Logarithmic Moving Average Convergence Divergence Strategy", shorttitle="LMACD Strategy")

// 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(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)",  defval=false)
sma_signal = input(title="Simple MA(Signal Line)", defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
lmacd = log(fast_ma) - log(slow_ma)
signal = sma_signal ? sma(lmacd, signal_length) : ema(lmacd, signal_length)
hist = lmacd - signal

plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(lmacd, title="LMACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

if (crossover(hist, 0))
	strategy.entry("Long", strategy.long, comment="LMACD long")
if (crossunder(hist, 0))
	strategy.entry("Short", strategy.short, comment="LMACD short")