
La estrategia es una estrategia de negociación MACD basada en el promedio móvil ponderado por volumen de transacción flexible (EVWMA). Utiliza las ventajas de EVWMA para diseñar una estrategia de negociación con una señal clara y práctica.
El indicador EVWMA integra la información de la transacción en el cálculo de las medias móviles, lo que permite que las medias móviles reflejen con mayor precisión los cambios en los precios. La estrategia de construcción de líneas rápidas y las líneas lentas se basan en EVWMA. La configuración de los parámetros de las líneas rápidas es más sensible y puede capturar cambios en los precios a corto plazo; los parámetros de las líneas lentas son más robustos y pueden filtrar parte del ruido.
La mayor ventaja de esta estrategia es que aprovecha el poder de los indicadores EVWMA, lo que hace que la configuración de los parámetros de la estrategia MACD sea más estable y que las señales de negociación sean más claras. En comparación con las medias móviles simples, EVWMA puede capturar mejor las tendencias de los cambios en el mercado. Esto hace que la estrategia sea más adaptable y pueda trabajar de manera estable en una variedad de entornos de mercado.
El principal riesgo de esta estrategia es que la MACD en sí misma está un poco rezagada y no puede capturar la reversión de precios a tiempo. Además, la configuración de los parámetros de EVWMA también puede afectar el rendimiento de la estrategia. Si la configuración de los parámetros de la línea rápida y lenta no es adecuada, se producen señales de negociación erróneas que afectan la rentabilidad.
Para reducir el riesgo, los parámetros deben ajustarse adecuadamente para que la diferencia entre las líneas rápidas y lentas sea moderada. Histogram puede ayudar a determinar si se necesita un ajuste. Además, también se puede diseñar una estrategia de parada de pérdidas para evitar pérdidas individuales excesivas.
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Utilizando la tecnología de configuración de parámetros adaptativos, los parámetros de EVWMA se ajustan automáticamente según el entorno del mercado, garantizando la claridad de las señales de negociación.
El incremento de los mecanismos de suspensión de pérdidas permite un control efectivo de las pérdidas individuales.
En combinación con otros indicadores, se filtran las señales de alerta falsa. Por ejemplo, en combinación con el volumen de tráfico, se producen señales solo cuando hay cambios significativos en los precios.
Optimizar la selección de puntos de entrada. La estrategia actual es abrir posiciones en el cruce del eje cero del MACD. Se puede probar si es más adecuado cambiar a un tirón de profundidad.
Esta estrategia aprovecha las ventajas de los indicadores EVWMA para construir una estrategia MACD simple y práctica. Es más estable y adaptable. También hay problemas de retraso en la propia MACD. Podemos mejorar la estrategia para que sea más robusta mediante la optimización de parámetros de adaptación, diseño de deterioro y filtración de señales.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("QuantNomad - EVWMA MACD Strategy", shorttitle = "EVWMA MACD", overlay = false)
// Inputs
fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer)
signal_length = input(9, title = "Signal Smoothing", type = input.integer, minval = 1, maxval = 50)
// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)
// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)
// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)
// Calculate MACD
macd = fast_evwma - slow_evwma
signal = ema(macd, signal_length)
hist = macd - signal
// Plot
plot(hist, title = "Histogram", style = plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #EF5350) ), transp=0 )
plot(macd, title = "MACD", color = #0094ff, transp=0)
plot(signal, title = "Signal", color = #ff6a00, transp=0)
// Strategy
strategy.entry("Long", true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))