ADX、RSI Indicadores de impulso Estrategia

El autor:¿ Qué pasa?, Fecha: 2023-12-11 16:06:30
Las etiquetas:

img

Resumen general

Esta estrategia utiliza los indicadores de impulso ADX, RSI y Bollinger Bands para determinar las tendencias del mercado y las situaciones de sobrecompra/sobreventa, con el fin de implementar operaciones automatizadas para comprar bajo y vender alto.

Principios de estrategia

  1. El indicador ADX determina la tendencia. Cuando el ADX es mayor que 32, indica un mercado en tendencia.

  2. El indicador RSI determina los niveles de sobrecompra / sobreventa. Cuando el RSI cruza por encima de 30, indica un mercado sobreventa. Cuando el RSI cruza por debajo de 70, indica un mercado sobrecomprado.

  3. Las bandas de Bollinger determinan la consolidación y la ruptura. Cuando el precio de cierre se rompe por encima de la banda superior, indica el final de la consolidación y la ruptura al alza. Cuando el precio de cierre se rompe por debajo de la banda inferior, indica el final de la consolidación y la ruptura a la baja.

Basándose en los indicadores anteriores, la estrategia de negociación se define de la siguiente manera:

Condición de compra:

  1. ADX> 32, en tendencia
  2. RSI cruza por encima de 30, sobreventa
  3. Precio de cierre por debajo de la banda inferior de Bollinger, final de la consolidación de tendencia bajista

Condición de venta:

  1. ADX> 32, en tendencia
  2. RSI cruza por debajo de 70, sobrecomprado
  3. Precio de cierre por encima de la banda superior de Bollinger, finalización de la consolidación de tendencia alcista

Análisis de ventajas

Esta estrategia utiliza múltiples indicadores para determinar las condiciones del mercado, evitando la probabilidad de error al confiar en un solo indicador.

En comparación con el uso de indicadores de tendencia solo, esta estrategia puede capturar oportunidades a corto plazo de una manera más oportuna. En comparación con el uso de solo osciladores, esta estrategia puede comprender mejor la dirección de la tendencia. Por lo tanto, conserva la ventaja de rastrear tendencias, al tiempo que también tiene la flexibilidad de la inversión media de la negociación. Es una estrategia cuantitativa potencialmente eficiente.

Análisis de riesgos

Los principales riesgos de esta estrategia incluyen:

  1. Riesgo de señales falsas de los indicadores: los indicadores pueden fallar cuando los mercados experimentan eventos extremos.

  2. El riesgo de que las paradas sean demasiado ajustadas Las fluctuaciones del mercado a corto plazo pueden afectar la posición si las paradas son demasiado ajustadas.

  3. Si los parámetros de los indicadores se ajustan únicamente a datos históricos, la estabilidad sería cuestionable y podría no adaptarse a la dinámica cambiante del mercado.

Medidas de gestión de riesgos:

  1. Intervenir manualmente en condiciones de mercado anormales para detener la estrategia y evitar pérdidas por señales falsas.

  2. Establezca una distancia de parada razonable, combinando con las medias móviles para determinar los niveles de parada, evitando ser detenido prematuramente.

  3. Introduzca el módulo de ajuste de parámetros, optimice dinámicamente los parámetros utilizando el análisis de avanzada para garantizar la robustez.

Direcciones de optimización

Los principales aspectos para mejorar esta estrategia incluyen:

  1. Optimizar los parámetros de los indicadores, utilizando algoritmos de aprendizaje automático adaptados a cada mercado.

  2. Ingeniería de características, introduciendo más indicadores técnicos y modelos de capacitación como SVM para mejorar la precisión de la señal.

  3. Incorporar estrategias de ruptura basadas en las características de cada mercado utilizando canales de precios, soportes/resistencias, etc. para mejorar la estabilidad.

  4. Optimizar los mecanismos de toma de ganancias y de detención de pérdidas mediante la introducción de paradas de seguimiento, paradas de movimiento, etc., para maximizar las ganancias y controlar los riesgos de manera efectiva.

Conclusión

Esta estrategia de negociación cuantitativa a mediano plazo utiliza múltiples indicadores técnicos como ADX, RSI y Bollinger Bands para determinar las condiciones del mercado y realizar operaciones cuando se identifican cambios estructurales significativos. La lógica es clara e interpretable, reduciendo drásticamente la dependencia de un solo indicador. Mientras tanto, los riesgos como señales falsas, paradas demasiado ajustadas y exceso de parámetros deben abordarse a través de la gestión de riesgos y la optimización del modelo para mejorar la estabilidad y la eficiencia.


/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)

//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
dirmov(len) =>
    up = change(high)
    down = -change(low)
    plusDM = na(up) ? na : up > down and up > 0 ? up : 0
    minusDM = na(down) ? na : down > up and down > 0 ? down : 0
    truerange = rma(tr, len)

    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)

    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx


[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)

//Creo RSI

src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")


//Creo Bande di Bollinger

source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)

//Stabilisco regole di ingresso

if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
    strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
    //strategy.exit("exit", "COMPRA", loss = 90) 
    strategy.cancel(id="COMPRA")

if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
    strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
    //strategy.exit("exit", "VENDI", loss = 90)
    strategy.cancel(id="VENDI")

//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Más.