Estrategia de seguimiento de tendencias basada en indicadores RSI y ZigZag

El autor:¿ Qué pasa?, Fecha: 2024-02-22 16:15:18
Las etiquetas:

img

Resumen general

La estrategia se llama Crypto 15-minute Trend Tracking Strategy Based on RSI and ZigZag Indicators. Está específicamente diseñada para los cripto mercados de 15 minutos como ETHUSD/T y BTCUSD/T. La estrategia determina la dirección de la tendencia combinando el indicador RSI para juzgar los niveles de sobrecompra/sobreventa y el indicador ZigZag para detectar picos de precios. Pertenece a una estrategia típica de seguimiento de tendencias.

Estrategia lógica

La lógica central de esta estrategia es utilizar tanto los indicadores RSI como ZigZag para determinar la tendencia del precio. Específicamente, el indicador RSI juzga si el precio está sobrecomprado o sobrevendido. El indicador ZigZag detecta si el precio tiene un pico porcentual significativo. Cuando ambos indicadores dan señales comerciales simultáneamente, determinamos que hay una reversión de tendencia para una contraposición.

Para el indicador RSI, fijamos la línea de sobrecompra en 75 y la línea de sobreventa en 25. Cuando el RSI sube de menos de 25 a más de 25, se considera una reversión de sobreventa a alcista. Cuando el RSI cae de más de 75 a menos de 75, indica una reversión de alcista a sobreventa.

Para el indicador ZigZag, establecemos el umbral de aumento de precios a 1% en cambio porcentual. Cuando el precio hace un aumento de más del 1% en amplitud, la línea ZigZag dará una señal. Combinada con el juicio de tendencia, podemos identificar inversiones de tendencia.

Cuando ambos indicadores dan señales, si la tendencia anterior es alcista y ahora el RSI está sobrecomprado mientras que ZigZag muestra un aumento de precios, determinamos que el precio está superando y puede considerar el corto. Por el contrario, si la tendencia anterior es bajista y ahora el RSI está sobrevendido mientras ZigZag muestra un aumento de precios, determinamos que el precio está bajando y puede considerar el anhelo. A través de esta lógica, podemos seguir la tendencia.

Los puntos fuertes de la estrategia

La mayor ventaja de esta estrategia es la mejora de la calidad de la señal mediante la combinación de dos indicadores. Un solo indicador tiende a dar muchas señales falsas. Pero esta estrategia utiliza RSI y ZigZag para la verificación, filtrando muchas señales falsas y mejorando la tasa de ganancia.

El RSI y los parámetros ZigZag son personalizables de acuerdo con las diferentes condiciones del mercado para obtener mejores resultados.

Riesgos estratégicos

El principal riesgo son las señales incorrectas de los indicadores. A pesar de la validación de indicadores duales, todavía puede haber fallas durante la alta volatilidad que conduce a errores comerciales.

Para reducir los riesgos, podemos acortar el período de mantenimiento de la posición para detener la pérdida oportuna. La optimización de parámetros también es muy importante para satisfacer las características del mercado. La intervención manual puede ser necesaria cuando se enfrentan condiciones anormales del mercado.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Añadir más indicadores como KDJ y MACD para el juicio combinado para filtrar más señales.

  2. Introducir algoritmos de aprendizaje automático para la optimización automática de parámetros adaptados a los cambios del mercado.

  3. Construir un mecanismo de stop loss adaptativo con protección dinámica basada en la volatilidad del mercado.

  4. Optimizar el tamaño de las posiciones en función de las fortalezas de la tendencia.

  5. Establecer estrategias alternativas para cambiar automáticamente en mercados poco comunes.

Conclusión

En resumen, esta es una estrategia típica de seguimiento de tendencias. La idea central es identificar las reversiones de tendencias utilizando indicadores RSI y ZigZag en combinación. La ventaja radica en una mejor calidad de señal a través de la filtración de indicadores duales. Los riesgos de fallo del indicador deben considerarse completamente, y la estrategia debe mejorarse continuamente a través de la puesta a punto de parámetros, optimización de pérdidas, dimensionamiento de posiciones, etc. En general, esto proporciona una solución efectiva de seguimiento de tendencias para el mercado de criptomonedas.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("Crypto ZigZag RSI strategy 15min",overlay=true)
length =input(5, title="RSI Length")
overSold = input(25)
overBought= input(75)

p =close

vrsi = rsi(p, length)
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

//
ZZPercent = input(1, title="Minimum % Change", type=input.float)
r1Level=entry_value
s1Level=entry_value1
trend = 0
trend := na(trend[1]) ? 1 : trend[1]
LL = 0.0
LL := na(LL[1]) ? s1Level : LL[1]
HH = 0.0
HH := na(HH[1]) ?r1Level : HH[1]

Pi = ZZPercent * 0.01
zigzag = float(na)

if trend > 0  
    if r1Level >= HH  
        HH := r1Level
        HH
    else
        if s1Level < HH * (1 - Pi)
            zigzag :=r1Level[1]
            trend := -1
            LL := s1Level
            LL
else
   
    if s1Level <= LL 
        LL := s1Level
        LL
    else
        if r1Level > LL * (1 + Pi)
            zigzag := s1Level[1]
            trend := 1
            HH := s1Level
            HH


shortc=crossunder(trend,0)
longc=crossover(trend,0)


longa =input(true)
shorta=input(false)

if(longa)
    strategy.entry("long",1,when=longc)
    strategy.close("long",when=shortc)
if(shorta)
    strategy.entry("short",0,when=shortc)
    strategy.close("long",when=longc)


Más.