La estrategia es una estrategia de negociación MACD basada en una media móvil ponderada por el volumen de transacción flexible (EVWMA); aprovecha las ventajas de EVWMA para diseñar una estrategia de señal de negociación 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 las líneas rápidas y lentas se basa en la implementación de EVWMA. Los parámetros de las líneas rápidas son más sensibles para capturar los cambios en los precios a corto plazo; los parámetros de las líneas lentas son más sólidos para filtrar parte del ruido.
La mayor ventaja de esta estrategia es que aprovecha la fuerza de los indicadores EVWMA, lo que hace que los parámetros de la estrategia MACD sean más estables y las señales de negociación sean más claras. En comparación con una simple media móvil, EVWMA puede captar mejor las tendencias de los cambios en el mercado. Esto hace que la estrategia sea más adaptable y funcione de manera estable en una variedad de entornos de mercado.
El principal riesgo de esta estrategia es que el MACD en sí mismo tiene un cierto retraso y no puede capturar la inversión de precios en el momento oportuno. Además, la configuración de los parámetros de EVWMA también puede afectar el rendimiento de la estrategia. Si los parámetros de la línea lenta se establecen incorrectamente, se producen distorsiones de la señal de negociación que afectan la rentabilidad.
Para reducir el riesgo, los parámetros deben ajustarse adecuadamente para que la diferencia entre la línea rápida y la línea lenta sea adecuada. El histograma puede ayudar a determinar si se necesita ajustar. Además, se puede diseñar una estrategia de stop loss para evitar pérdidas excesivas en una sola apuesta.
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Utilizando la tecnología de ajuste de parámetros adaptivos, los parámetros de EVWMA se pueden ajustar automáticamente según el entorno del mercado, lo que garantiza la claridad de las señales de negociación.
El aumento de los mecanismos de detención de pérdidas permite controlar eficazmente las pérdidas individuales.
En combinación con otros indicadores se filtran las señales de errores. Por ejemplo, cuando se combinan las transacciones, se producen señales cuando los precios cambian significativamente.
Optimización de la selección de puntos de entrada. La estrategia actual es abrir una posición cuando el MACD cruza el eje cero. Se puede probar si cambiar a un tirón profundo es más adecuado.
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 el MACD. Podemos mejorar la estrategia para que sea más sólida desde la optimización de parámetros de adaptación, el deterioro, el diseño de filtros de señales, etc.
/*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))