Estrategia de decisión comercial basada en el histograma del indicador MACD


Fecha de creación: 2024-01-25 14:31:57 Última modificación: 2024-01-25 14:31:57
Copiar: 3 Número de Visitas: 662
1
Seguir
1617
Seguidores

Estrategia de decisión comercial basada en el histograma del indicador MACD

Descripción general

La estrategia toma decisiones de negociación basadas en el histograma del indicador MACD. Utiliza la tendencia ascendente y la tendencia descendente del histograma para generar señales de compra y venta. Se produce una señal correspondiente cuando el histograma sube o baja continuamente hasta alcanzar un cierto período.

Principio de estrategia

La estrategia utiliza la línea rápida, la línea lenta y el histograma de los indicadores MACD. Primero se calculan el EMA de la línea rápida y el EMA de la línea lenta.

Una vez que el histograma alcanza el ciclo establecido, se genera una señal de compra. Esto significa que el MACD está acelerando hacia arriba para romper su línea de señal y pronosticar que el precio puede subir.

Cuando el histograma alcanza un ciclo de tendencia bajista consecutiva, genera una señal de venta. Esto significa que el MACD está acelerando hacia abajo para romper su línea de señal y pronostica que el precio puede caer.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Utilizando la tendencia del histograma MACD, se pueden capturar los puntos de inflexión de los cambios en los precios y aumentar la probabilidad de obtener ganancias.

  2. Combinando las condiciones de ciclo de un Histogram que continúa subiendo o bajando, se puede filtrar parte de la transacción de ruido y reducir las pérdidas innecesarias.

  3. Permite la personalización de los parámetros MACD y el ciclo de tendencia del histograma, que se puede ajustar para adaptarse a diferentes variedades y períodos de negociación.

  4. La lógica de las estrategias es simple y clara, fácil de entender y modificar, y fácil de usar con otros indicadores o combinaciones de estrategias.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Cuando el precio está en el rango de oscilación, puede generar señales erróneas y se requiere un filtro en combinación con un indicador de tendencia.

  2. Una vez que el histograma sube o baja, la línea MACD puede no poder romper la línea de señal, no puede salir de ganancias, y se debe establecer un stop loss para controlar el riesgo.

  3. Sin tener en cuenta las transacciones reales como el costo de la transacción y el punto de deslizamiento, la ganancia en tiempo real puede disminuir.

  4. La configuración incorrecta de los parámetros (por ejemplo, el ciclo MACD, el ciclo de tendencia del histograma, etc.) puede causar un efecto deficiente en la estrategia, que requiere optimización para la variedad y el período.

Estos riesgos pueden ser controlados y reducidos mediante combinaciones con indicadores de tendencia, mecanismos de parada de pérdidas y parámetros de optimización.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. En combinación con otros indicadores para determinar la dirección general de la tendencia, evite las zonas de oscilación de la negociación. Por ejemplo, la línea de 20 días para determinar la tendencia de la línea media y larga.

  2. Aumentar el mecanismo de detención de pérdidas. Por ejemplo, el MACD se detiene cuando vuelve a caer en la línea de señal.

  3. Optimización de los parámetros MACD para adaptarse a diferentes variedades de ciclo. Por ejemplo, los parámetros de ciclo pueden acortarse para datos de alta frecuencia.

  4. Optimización del mínimo número de ciclos en los que el histograma sube o baja de forma continua, equilibrando la frecuencia de la señal con la fiabilidad.

  5. La lógica de la estrategia de seguimiento de la señal después del fracaso del intento de breakout. Es decir, el histograma se invierte y luego se rastrea la señal inversa.

  6. En combinación con otros indicadores, como el indicador de energía cuantitativa, el indicador de fluctuación, etc., para determinar el calor del mercado y filtrar las señales.

Resumir

La estrategia de tendencia del histograma MACD captura los cambios de tendencia del histograma y permite el juicio de los puntos de inflexión de los cambios de precio. Combinado con la optimización de parámetros y el juicio de indicadores combinados, puede eliminar eficazmente las señales erróneas. El histograma MACD es una herramienta auxiliar de juicio muy importante en el comercio cuantitativo.

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

//@version=4
//study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur")
strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur")


/// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100)
//buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
//sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
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 = #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)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

plot(hist, title="Histogram", style=plot.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(macd, title="MACD", color=col_macd, transp=0)
//plot(signal, title="Signal", color=col_signal, transp=0)

//bullish = hist[1] <= hist and buyh<=hist?true:false
//bearish = hist[1] >= hist and sellh>=hist?true:false
bull=0
bear=0


for i=0 to hist_length
    if (hist[i+1] <= hist[i])
        bull:=bull+1
bullish = bull==hist_length+1?true:false   

for j=0 to hist_length
    if (hist[j+1] >= hist[j])
        bear:=bear+1
bearish = bear==hist_length+1?true:false 



//bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false
//bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false

strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)