Estrategia de trading cuantitativo con índice de fuerza relativa triple

RSI SMA
Fecha de creación: 2024-05-15 10:23:08 Última modificación: 2024-05-15 10:23:08
Copiar: 0 Número de Visitas: 841
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo con índice de fuerza relativa triple

Descripción general

La estrategia utiliza principalmente el índice relativamente fuerte (RSI) para juzgar la situación de sobreventa y sobreventa en el mercado, en combinación con el precio por encima de la media móvil simple de 200 días (SMA) como condición de filtro de tendencia, para decidir si se entra en operaciones. La estrategia construye las condiciones de apertura de la posición mediante el triple indicador RSI, solo cuando el RSI de corto plazo es inferior a 35 y tiene una tendencia descendente en tres períodos consecutivos, mientras que el RSI del tercer período es inferior a 60 y el cierre actual está por encima de la SMA de 200 días.

Principio de estrategia

  1. Calcular el indicador RSI para el período especificado
  2. Para determinar si se cumplen los siguientes requisitos para abrir una posición:
    • El RSI actual es menor a 35.
    • El RSI actual es menor que el RSI del ciclo anterior, el RSI del ciclo anterior es menor que el RSI del ciclo anterior, y el RSI del ciclo anterior es menor que el RSI del ciclo anterior
    • El RSI de los tres primeros períodos es menor a 60
    • El precio de cierre actual es mayor que el SMA de 200 días
  3. Si se cumplen las cuatro condiciones anteriores, se abre más.
  4. Durante el proceso de mantenimiento de la posición, si el RSI pasa de 50, la posición queda en blanco.
  5. Repetir los pasos 2 a 4 para realizar la siguiente transacción.

Ventajas estratégicas

  1. Comprar y vender en exceso a través del RSI y abrir posiciones en zonas de sobreventa para capturar oportunidades de reversión del mercado
  2. La construcción conjunta de señales de apertura de posición a través del triple RSI reduce la probabilidad de señales falsas y mejora la fiabilidad de la señal
  3. La inclusión de precios por encima de la línea media diaria de 200 como condición de tendencia para evitar el comercio en una tendencia descendente
  4. Las condiciones de estabilidad son sencillas y claras, lo que permite obtener ganancias a tiempo.
  5. La lógica de la estrategia es clara, fácil de entender e implementar

Riesgo estratégico

  1. El RSI tiene una señal de atraso y podría perder el mejor momento para abrir una posición
  2. Las condiciones para abrir posiciones son relativamente estrictas, la frecuencia de las operaciones es baja, y es posible que se pierda parte de la situación.
  3. En el caso de las bolsas de valores, la tendencia es a cerrar sus posiciones con frecuencia, para evitar un mal desempeño de las bolsas.
  4. La estrategia sólo capta el alza unilateral y no capta el descenso después de la reversión.

Dirección de optimización de la estrategia

  1. Se puede considerar la inclusión de un Stop Loss móvil o un Stop Loss fijo para controlar el riesgo de una sola operación
  2. Estudiar la combinación de RSI con otros indicadores auxiliares para mejorar la fiabilidad y la puntualidad de las señales de apertura de posiciones
  3. Optimización de las condiciones de apertura de posiciones para aumentar la frecuencia de las operaciones al tiempo que se garantiza la fiabilidad de la señal
  4. Introducción de la gestión de posiciones para ajustar las posiciones de forma dinámica en función de la intensidad y la volatilidad de las tendencias del mercado
  5. Considerar la combinación de líneas cortas y medias para desarrollar versiones de estrategias que se adapten a las diferentes condiciones del mercado

Resumir

La estrategia utiliza el triple RSI para construir las condiciones de apertura de la posición, combinando el precio por encima de la línea media a largo plazo como un filtro de tendencia, para capturar la tendencia de reversión de la tendencia de la tendencia. La lógica de la estrategia es simple, clara, fácil de implementar y optimizar. Sin embargo, la estrategia también presenta riesgos e insuficiencias como el retraso de la señal, la baja frecuencia de negociación y la capacidad de capturar una tendencia unilateral.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )

  
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rule1   = rsi<35
rule2   = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3   = rsi[3]<60
rule4   = close>ta.sma(close, 200)

longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

if longCondition and strategy.position_size==0
    strategy.entry("LONG", strategy.long)
if closeCondition
    strategy.close("LONG")