
La estrategia de monopolización de la dinámica MACD utiliza principalmente la combinación de indicadores MACD y indicadores de dinámica para formar una señal de negociación, y pertenece a la estrategia de seguimiento de tendencias. La estrategia primero calcula el EMA de línea rápida y la EMA de línea lenta, luego calcula el valor de MACD y luego calcula la línea de señal de MACD.
La estrategia se basa principalmente en la combinación de MACD y el uso de indicadores de dinámica.
El indicador MACD es un indicador de seguimiento de tendencias que consiste en un gráfico columnar de EMA de línea rápida, EMA de línea lenta y MACD. El parámetro de EMA de línea rápida suele ser de 12 días y el parámetro de EMA de línea lenta de 26 días. La fórmula de cálculo es:
La línea rápida EMA = EMA ((precio de cierre, 12)
La línea lenta EMA = EMA (precio de cierre, 26)
MACD = línea rápida EMA - línea lenta EMA
La línea de señal = EMA ((MACD,9)
Cuando la línea rápida atraviesa la línea lenta, indica que el impulso ascendente a corto plazo es más fuerte que el largo plazo, como señal de entrada; cuando la línea rápida atraviesa la línea lenta, indica que el impulso descendente a largo plazo es más fuerte que el corto plazo, como señal de salida.
El índice de dinámica es un indicador técnico que refleja la velocidad de los cambios en el precio de las acciones, calculado con la fórmula:
Valor dinámico = precio de cierre de hoy - precio de cierre de hace N días
Cuando el precio de cierre de hoy sube más de N días antes, el valor de la dinámica es positivo y las acciones están en tendencia alcista; cuando el precio de cierre de hoy baja menos de N días antes, el valor de la dinámica es negativo y las acciones están en tendencia bajista.
La estrategia utiliza una combinación de indicadores MACD con indicadores de dinámica para formar una señal de negociación. Los criterios para determinar la señal de negociación son: cuando la diferencia de MACD y la diferencia de dinámica se cruzan en el eje cero, se produce una señal de compra que se cruza por encima del eje cero; cuando la diferencia de MACD y la diferencia de dinámica se cruzan por debajo del eje cero, se produce una señal de venta que se cruza por debajo del eje cero.
La estrategia tiene las siguientes ventajas:
La combinación de indicadores MACD con indicadores de dinámica permite el seguimiento de tendencias, evitando que los precios de los activos sólo tengan un movimiento sin dirección y que el comercio sea ineficaz.
La generación de señales de transacción basadas en el mecanismo de doble confirmación puede filtrar algunos ruidos y evitar la interferencia de señales falsas.
Los parámetros del indicador MACD son ajustables y se pueden optimizar para diferentes variedades y ciclos de negociación, y son muy adaptables.
La captura bidireccional de tendencias se realiza mediante el mecanismo de compra y venta bidireccional.
Las estrategias son fáciles de entender, tienen menos parámetros y son adecuadas para los principiantes.
La estrategia también tiene sus riesgos:
El MACD y el índice de dinámica son indicadores de seguimiento de tendencias, que pueden generar más operaciones no válidas cuando el mercado está muy volátil o no hay una tendencia evidente.
Las combinaciones de índices dobles, aunque pueden filtrar falsas señales, también pueden perder oportunidades de negociación, y los parámetros deben ajustarse adecuadamente para equilibrar el riesgo.
Cuando se produce una reversión de la tendencia del gran ciclo, el indicador MACD se retrasa, lo que provoca pérdidas en el comercio.
La frecuencia de las transacciones puede ser alta, por lo que se debe tener en cuenta la administración de fondos y el control de las comisiones.
Los parámetros incorrectos pueden conducir a una sensibilidad excesiva o a un retraso excesivo, lo que requiere pruebas y optimizaciones continuas según las condiciones del mercado.
La estrategia puede ser optimizada en los siguientes aspectos:
Optimización de los parámetros del indicador MACD para encontrar la combinación óptima de parámetros según las diferentes variedades y períodos de negociación.
Optimización de los parámetros diarios de los indicadores de movimiento, equilibrando la sensibilidad con el ruido filtrado.
Aumentar el mecanismo de stop loss para controlar las pérdidas máximas de una sola operación.
Se ha añadido un módulo de gestión de posiciones para que el tamaño de las transacciones siga la tendencia.
Se han añadido filtros como los indicadores de concentración para evitar transacciones erróneas en el mercado de curvas.
Combinado con otros indicadores, como el BRI, el RSI, etc., forma una señal de negociación de confirmación múltiple.
Añade un ciclo de optimización para que los parámetros puedan ser iterados y optimizados continuamente.
La estrategia de monopolización de la dinámica MACD utiliza el indicador MACD y el indicador de dinámica Strengths para realizar operaciones de seguimiento de tendencias. Su mecanismo de doble confirmación permite eliminar el ruido del mercado y evitar la aparición de operaciones no válidas. La estrategia es simple, directa, fácil de entender y especialmente adecuada para los principiantes.
/*backtest
start: 2022-10-13 00:00:00
end: 2023-10-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="MACD MOMENTUM TEST", shorttitle="MACD MOM TEST")
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
len = input(title="Momentum", type=input.integer, defval=10)
src1 = input(title="Source MACD", type=input.source, defval=close)
src2 = input(title="Source MOMENTUM", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 14)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #0c8e61
col_grow_below = #ffcdd2
col_fall_above = #b2dfdb
col_fall_below = #d42f28
col_macd = #ffffff
col_signal = #d42f28
col_mom = #fbc02d
// Calculating
fast_ma = sma_source ? sma(src1, fast_length) : ema(src1, fast_length)
slow_ma = sma_source ? sma(src1, slow_length) : ema(src1, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
mom = src2 - src2[len]
ma(s,l) => ema(s,l)
sema = ma( src1, fast_length )
lema = ma( src1, slow_length )
i1 = sema + mom + ma( src1 - sema, fast_length )
i2 = lema + mom + ma( src1 - lema, slow_length )
macdl = i1 - i2
macd1 =sema - lema
delta = mom - macd1
// Strategy
// Backtest
FromYear = input(defval = 2001, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// Function exampel
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
if (crossover(delta, 0))
strategy.entry("Buy", true, when=window(), comment="Buy")
if (crossunder(delta, 0))
strategy.close_all(when=window())
// Plot
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
plot(hist, title="Histogram", style=plot.style_histogram, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
plot(mom, color=col_mom, title="Mom")