Estrategia de MACD sólo larga

El autor:¿ Qué pasa?, fecha: 2024-01-12 11:02:06
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el indicador MACD y líneas largas y cerradas para implementar el comercio a largo plazo del par de divisas.

Estrategia lógica

La estrategia utiliza líneas rápidas y lentas del indicador MACD. La línea rápida tiene un parámetro de EMA de 12 días y la línea lenta tiene un parámetro de EMA de 26 días. La diferencia entre las dos líneas es el histograma MACD. Además, la EMA de 9 días se calcula como la línea de señal.

Específicamente, la estrategia primero calcula la línea rápida, la línea lenta y la línea de señal del indicador MACD. Luego, la línea larga se establece en -0.04, la línea de cierre se establece en 0.015. Si el histograma MACD actual es mayor que la línea larga, va largo. Si el histograma MACD actual es menor que la línea de cierre, cierra la posición larga. Además, la línea de stop loss se establece en el 95% del precio de entrada.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Utilice el indicador MACD para juzgar la tendencia del mercado con una alta precisión
  2. El doble filtro con líneas largas y estrechas evita señales erróneas
  3. La estrategia de stop loss controla eficazmente los riesgos
  4. Lógica sencilla y clara, fácil de entender e implementar
  5. Solo las necesidades y el indicador MACD, menos ocupación de recursos

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. El indicador MACD tiene un poco de retraso, puede perder oportunidades a corto plazo
  2. La configuración de stop loss puede ser demasiado conservadora para seguir las tendencias a largo plazo
  3. El ajuste de parámetros requiere muchas pruebas de retroceso, de lo contrario puede ocurrir sobreajuste
  4. Sólo aplicable a, la eficacia para otros pares es incierta

Se pueden utilizar métodos como ajustar parámetros, combinar otros indicadores para optimizar y mejorar.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Prueba diferentes combinaciones de parámetros MACD para encontrar mejores parámetros

    Se puede intentar encontrar combinaciones más adecuadas de línea rápida, línea lenta, línea de señal con diferentes longitudes.

  2. Prueba con otros indicadores.

    Indicadores como RSI, KD pueden tener resultados muy diferentes

  3. Optimización de los parámetros de línea larga y cerrada

    Los parámetros más adecuados se pueden encontrar mediante pruebas de retroceso repetitivas

  4. Ajuste de la estrategia de stop loss

    Considere las paradas de trailing para hacer que el stop loss sea más dinámico

  5. Prueba en diferentes pares de divisas

    Aplicar la estrategia a otros pares y examinar los efectos

Conclusión

En conclusión, esta es una estrategia comercial a largo plazo general muy simple e intuitiva. Juzga las condiciones del mercado utilizando el indicador MACD y establece criterios de doble filtro para reducir el comercio falso. El control de riesgos también se configura a través de stop loss. La lógica es clara y la ocupación de recursos es baja. Es fácil de entender e implementar, vale la pena recomendar. Por supuesto, todavía hay mucho espacio para mejorar a través de la puesta a punto de parámetros, el cambio de indicador y otros medios, para hacer que la estrategia sea aún más destacada.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// 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)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=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=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)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)

Más.