Esta estrategia genera señales comerciales utilizando el indicador MACD logarítmico.
La lógica principal es:
Calcular el MA logarítmico rápido (por defecto 12) y el MA logarítmico lento (por defecto 26)
El MACD logarítmico es su diferencia, expresando el impulso del mercado
La línea de señal está suavizada MA del MACD (por defecto 9)
Ir largo cuando el MACD cruza por encima de la señal desde abajo
Ir corto cuando el MACD cruza por debajo de la señal desde arriba
Diferencia de la señal MACD representada en histograma
En comparación con el MACD simple, el MACD logarítmico puede resaltar mejor las tendencias de crecimiento exponencial.
Detecta movimientos de precios exponenciales utilizando la transformación logarítmica
El registro MACD destaca la información sobre las fluctuaciones de precios
La línea de señal suaviza el MACD en señales comerciales
El histograma MACD muestra de forma intuitiva la dirección de la tendencia
La transformación de log puede amplificar el ruido del precio
Señales frecuentes, riesgos de exceso de negociación
No hay gestión de pérdidas, control de riesgos incompleto
Mitigantes:
Ajustar los parámetros para reducir la frecuencia de la señal
Añadir filtros para evitar señales en condiciones agitadas
Implementar el stop loss para controlar la pérdida por operación
Optimización de los parámetros de estabilidad
Prueba otras transformaciones como promedio móvil exponencial
Añadir filtro de tendencia a las señales de pantalla
Incorporar estrategias de stop loss
Utilice el aprendizaje automático para juzgar la confiabilidad de la señal
La transformación logarítmica mejora la sensibilidad del MACD para la detección temprana de tendencias. Pero la frecuencia de las operaciones debe controlarse. Con optimizaciones en parámetros, gestión de riesgos, etc., esta estrategia puede convertirse en un sistema cuantitativo estable y único.
/*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")