Estrategia de seguimiento de tendencias basada en el indicador RSI


Fecha de creación: 2023-10-26 15:44:15 Última modificación: 2023-10-26 15:44:15
Copiar: 0 Número de Visitas: 689
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en el indicador RSI

Descripción general

Esta estrategia se basa en el indicador RSI para diseñar un simple sistema de comercio de seguimiento de tendencias, que puede determinar la dirección de la tendencia del mercado a través del indicador RSI en un rango de fechas específicas, para realizar un descubierto automático.

Principio de estrategia

La estrategia utiliza el indicador RSI para determinar las tendencias del mercado y el canal de la correa de Bryn para determinar las zonas de sobreventa y sobrecompra.

En primer lugar, se calcula el valor del RSI, y luego se calcula el promedio móvil y el diferencial estándar del RSI para determinar la banda de Brin que sube y baja. El indicador RSI oscila entre 0 y 1, y el Brin determina el área de sobreventa y sobreventa a través del diferencial estándar.

Cuando el RSI genera una señal de compra cuando se rompe la vía inferior a la vía superior, y una señal de venta cuando se rompe la vía superior a la vía inferior, para lograr el seguimiento de la tendencia. Después de la entrada de la estrategia, no se establece un stop loss stop hasta que se cierre la posición al final de la fecha especificada.

La estrategia utiliza el indicador RSI para determinar la dirección de la tendencia de manera simple y efectiva, junto con el uso de las bandas de browning para determinar el momento de negociación específico. Al limitar el rango de fechas de negociación, se evita el riesgo innecesario.

Análisis de las ventajas

  • El uso del indicador RSI para determinar la dirección de la tendencia es simple y eficaz
  • Combinado con la señal de confirmación de transacciones de Brin, evita falsas brechas
  • Limitar el rango de fechas de transacción ayuda a evitar riesgos de mercado
  • No hay paradas de pérdidas, seguimiento de tendencias máximo
  • Parámetros de ajuste flexible para diferentes entornos de mercado

Riesgo y optimización

  • El mercado podría sufrir fuertes fluctuaciones y causar pérdidas.
  • No se ha configurado un parador de pérdidas y no se puede controlar el riesgo de manera efectiva
  • La configuración incorrecta de los parámetros puede ocasionar transacciones frecuentes o oportunidades perdidas

La dirección de la optimización:

  • Unirse a la estrategia de detener el deterioro y controlar el riesgo
  • Optimización de la configuración de los parámetros para mejorar la tasa de éxito
  • En combinación con otros indicadores, filtra las señales para evitar falsas brechas.
  • Ajuste dinámico del tamaño de las posiciones

Resumir

Esta estrategia es en general una estrategia de seguimiento de tendencias muy simple y directa. Utilizando la tendencia de juicio de RSI, Brin lleva una señal de filtro para limitar el rango de fechas de negociación, puede seguir la tendencia de manera efectiva y controlar el riesgo. Sin embargo, la estrategia puede optimizarse aún más, manteniendo una base simple y efectiva, y perfeccionando aún más la estrategia mediante el stop loss, la optimización de parámetros y la filtración de señales.

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

//Gidra
//2018

//@version=2
strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
src = input(close, title="source")
lengthRSI = input(14, title="RSI or MFI length")
// RSI %B
useRSI = input(true, title="use RSI or MFI")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//MFI
upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI)
lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI)
mf = rsi(upper, lower)

//RSI
rsi = useRSI?rsi(src, lengthRSI): mf

// %B
length = input(50, minval=1, title="BB length")
mult = input(1.618, minval=0.001, maxval=50)
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upperr = basis + dev
lowerr = basis - dev
bbr = (rsi - lowerr)/(upperr - lowerr)

plot(bbr, color=black, transp=0, linewidth=2)
// band1 = hline(1, color=white, linestyle=dashed)
// band0 = hline(0, color=white, linestyle=dashed)
// fill(band1, band0, color=teal)
hline(0.5, color=white)

//Signals
up = bbr >= 0 and bbr[1] < 0
dn = bbr <= 1 and bbr[1] > 1
//exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5))

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)// or exit
    strategy.close_all()