Estrategia de indicadores de impulso ADX y RSI


Fecha de creación: 2023-12-11 16:06:30 Última modificación: 2023-12-11 16:06:30
Copiar: 0 Número de Visitas: 886
1
Seguir
1621
Seguidores

Estrategia de indicadores de impulso ADX y RSI

Descripción general

Esta estrategia utiliza los indicadores de dinámica ADX, RSI y las bandas de Brin para determinar las tendencias del mercado y las situaciones de sobreventa y sobrecompra, para lograr una estrategia de comercio automático de baja y alta venta y salida en beneficio.

Principio de estrategia

  1. El indicador ADX determina la tendencia. Cuando el ADX es mayor que 32, se considera que el mercado está en una tendencia.
  2. El indicador RSI juzga sobrecompra y sobreventa. Cuando el indicador RSI pasa de 30 niveles, se considera sobreventa; cuando el indicador RSI pasa de 70 niveles, se considera sobrecompra.
  3. Los precios de las bandas de Brin juzgaron la reestructuración y la ruptura. Cuando el precio de cierre rompió la banda de Brin, se consideró que el mercado terminó su reestructuración; cuando el precio de cierre cayó por debajo de la banda de Brin, se consideró que el mercado terminó su reestructuración.

En función de los indicadores anteriores, se puede determinar la situación del mercado y establecer la siguiente estrategia de negociación:

Condiciones de compra:

  1. ADX>32, estado de la tendencia
  2. El RSI sube a 30 y se superaventa
  3. El precio de cierre se cerró por debajo de la banda de Brin y terminó la caída

Condiciones de venta:

  1. ADX>32, estado de la tendencia
  2. El RSI está por debajo de los 70 y está sobrecomprando.
  3. El precio de cierre es más alto que el de la banda de Brin, y el cierre es más alto que el de la banda de Brin

Análisis de las ventajas

Esta estrategia utiliza una combinación de varios indicadores para determinar el estado del mercado, evitando la probabilidad de error de un solo indicador. Al mismo tiempo, mediante la tendencia, el exceso de compras y ventas, se puede bloquear eficazmente el punto de inflexión del mercado y lograr una venta baja.

En comparación con el uso de un solo indicador de tendencia, esta estrategia puede capturar oportunidades a corto plazo con mayor rapidez. En comparación con el uso de un solo indicador de oscilación, esta estrategia puede capturar mejor la dirección de la tendencia. Por lo tanto, esta estrategia conserva las ventajas de seguir la tendencia y tiene la flexibilidad de operar en contra, una estrategia cuantitativa con una mayor eficiencia potencial.

Análisis de riesgos

Los principales riesgos de esta estrategia son los siguientes:

  1. El riesgo de que los indicadores envíen una señal errónea. El juicio de los indicadores puede fallar cuando ocurren eventos importantes en el mercado.
  2. El riesgo de que la posición de stop loss sea demasiado radical. Si el stop loss es demasiado pequeño, puede ser detenido por la volatilidad del mercado a corto plazo.
  3. Riesgo de ajuste de parámetros. Si los parámetros del indicador se ajustan solo en función de los datos históricos, la estabilidad de los parámetros será menor y es posible que no se adapte a los cambios en el mercado.

Las medidas de gestión de riesgos correspondientes:

  1. Intervención artificial en los mercados anormales, para evitar pérdidas por señales erróneas.
  2. Establezca una distancia de parada razonable y, al mismo tiempo, combine indicadores como la línea media para determinar el precio de parada y evitar la estafa.
  3. Se añade el módulo Parameter Tuning para optimizar dinámicamente los parámetros con el método Walk Forward Analysis, garantizando la estabilidad de los parámetros.

Dirección de optimización

El espacio para la optimización de esta estrategia se encuentra principalmente en los siguientes aspectos:

  1. Optimización de los parámetros indicadores. Se puede introducir un algoritmo de optimización inteligente para optimizar independientemente los parámetros de las diferentes variedades.

  2. Aumentar la ingeniería de características. Introducir más indicadores técnicos de precios, establecer modelos de apoyo para el entrenamiento de máquinas vectoriales y otros, mejorar la precisión de la señal.

  3. Combinación de estrategias de ruptura. De acuerdo con las características de la situación de las diferentes variedades, aplica reglas de juicio basadas en canales, resistencia de soporte, etc., para capturar puntos de ruptura y aumentar la estabilidad de la estrategia.

  4. Optimización del mecanismo de stop loss. Introducción de métodos de seguimiento de stop loss, stop loss móvil, etc., para lograr el ajuste dinámico de stop loss, bloqueo máximo de ganancias y control efectivo del riesgo.

Resumir

Esta estrategia es una estrategia de comercio cuantitativa de corto y medio plazo, que utiliza varios indicadores técnicos para evaluar el estado del mercado, como ADX, RSI y Brin Belt, y realiza operaciones de compra y venta para evaluar los cambios significativos en la estructura del mercado. La lógica de la estrategia se puede interpretar con claridad y puede reducir considerablemente la probabilidad de error en el juicio de un solo indicador técnico. Al mismo tiempo, la estrategia también requiere que los indicadores de alerta emitan señales erróneas, establezcan riesgos como paros demasiado radicales y desviación de parámetros de pérdidas.

Código Fuente de la Estrategia
/*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)