Estrategia de negociación basada en los indicadores ADX y MACD

El autor:¿ Qué pasa?, Fecha: 2023-12-13 15:45:24
Las etiquetas:

img

Resumen general

La estrategia se llama Estrategia de seguimiento de tendencia basada en indicadores ADX y MACD. Utiliza el índice de movimiento direccional promedio (ADX) para determinar la dirección y la fuerza de la tendencia, combinado con las señales comerciales de la divergencia de convergencia promedio móvil (MACD), para implementar las operaciones de seguimiento de tendencia. Establecerá posiciones largas o cortas solo cuando ADX indique una tendencia fuerte y MACD emita señales comerciales.

Estrategia lógica

La estrategia calcula las líneas ADX y +DI, -DI para juzgar la dirección y intensidad de la tendencia del mercado. Cuando la línea +DI cruza por encima de -DI, es una tendencia alcista; cuando -DI cae por debajo de +DI, es una tendencia bajista. Además, cuando la lectura de ADX está por encima de 20, indica que la tendencia es lo suficientemente fuerte. La estrategia luego toma el valor de diferencia del indicador MACD (macdline) y los cruces de la línea de señal (línea de señal) como señales de compra y venta, para llevar a cabo operaciones siguiendo la tendencia.

Específicamente, la lógica de las señales de trading es:

Signales largos: +DI > -DI y línea de diferencia MACD se cruzan por encima de la línea de señal
Señal corto: -DI > +DI y línea de diferencia MACD se cruzan por debajo de la línea de señal

Con esta lógica, la estrategia es capaz de capturar el momento óptimo de entrada dentro de las tendencias fuertes.

Ventajas

La mayor ventaja de esta estrategia es que toma en consideración tanto el juicio de tendencia como la selección del momento de entrada, lo que permite a los operadores encontrar puntos de entrada relativamente buenos cuando hay un mercado direccional fuerte.

Además, también se implementa una lógica de stop loss. Cortará las pérdidas activamente si la pérdida de posición excede el precio de stop loss definido por el usuario.

Los riesgos

Aunque la estrategia tiene algunos méritos, todavía existen riesgos de los que hay que ser conscientes:

  1. Las señales de negociación compuestas por ADX y MACD pueden fallar o dar señales falsas en determinadas situaciones de mercado, incurriendo en pérdidas innecesarias.

  2. El precio de stop loss definido por el usuario podría penetrar, lo que daría lugar a pérdidas más allá de las expectativas.

  3. Se pueden producir demasiadas operaciones ineficaces en mercados variados, consumiendo costos de transacción.

Para mitigar estos riesgos, se recomienda la optimización de parámetros del ADX y el MACD, así como la implementación de reglas estrictas de gestión de dinero.

Direcciones de mejora

Esta estrategia aún puede mejorarse:

  1. Se podrían introducir más indicadores para formar señales de negociación más fuertes, por ejemplo, combinando el índice de volatilidad para limitar las operaciones.

  2. Los parámetros ADX y MACD podrían optimizarse automáticamente a través del aprendizaje automático.

  3. Se puede establecer un mecanismo de stop loss adaptativo para el seguimiento dinámico de las fluctuaciones del mercado.

Estos métodos pueden contribuir a mejorar aún más la estabilidad y la rentabilidad de la estrategia.

Conclusión

En conclusión, la estrategia de seguimiento de tendencias basada en los indicadores ADX y MACD tiene méritos para determinar la dirección de la tendencia, encontrar el momento óptimo de entrada, establecer la lógica de stop loss, etc., lo que la convierte en un sistema comercial considerable. Dado el ajuste adecuado de los parámetros y el control de riesgos, es capaz de cosechar retornos de inversión decentes. Pero los operadores aún deben ser cautelosos con los riesgos potenciales y monitorear de cerca los entornos cambiantes del mercado. Con el monitoreo y la mejora sistémicos, la estrategia tiene el potencial de lograr un alfa sostenible.


/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)

showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")

/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)

[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)

//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC

longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline

int trade = 0

//Open from nothing

if trade == 0 and longcheck
    trade := 1

else if trade == 0 and shortcheck
    trade := -1
    
//Reversal

else if trade == 1 and shortcheck
    trade := -1
    
else if trade == -1 and longcheck
    trade := 1
    
//Keep status quo until crossover

else
    trade := trade[1]

//////////////////////////////////////////////////////////////////////////////////////////////PLOT 

colors = longcheck ? colorup : shortcheck ? colordown : color.white

plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)

plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)

///////////////////////////////////////////////////////////////////////////////////////////// ALERTS

// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")

if trade == 1
    strategy.entry("Long", strategy.long)

if trade == -1
    strategy.entry("Short", strategy.short)

if trade == 1 and close < close[1] - stopLossPrice
    strategy.close("LongExit")

if trade == -1 and close > close[1] + stopLossPrice
    strategy.close("ShortExit")


Más.