Estrategia de trading cuantitativo con RSI y bandas de Bollinger


Fecha de creación: 2024-01-08 10:16:22 Última modificación: 2024-01-08 10:16:22
Copiar: 0 Número de Visitas: 704
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo con RSI y bandas de Bollinger

Descripción general

Esta estrategia identifica oportunidades de negociación mediante la combinación de indicadores relativamente fuertes (RSI) y el canal de Brin, y pertenece a la estrategia de retorno de la media en el comercio cuantitativo. Comprar cuando el RSI está por debajo de un umbral establecido, y cerrar la posición cuando el precio cruza el canal de Brin.

Principio de estrategia

  1. El indicador RSI se usa para determinar si el mercado está sobrevendido. Cuando el RSI está por debajo de 30, se considera una señal de sobreventa.

  2. Utiliza el canal de la línea de Brin para determinar si el precio comienza a rebotar hacia arriba. Cuando el precio rebota desde la línea de Brin hacia abajo y atraviesa la línea de Brin hacia el medio, termina en múltiples direcciones.

  3. La combinación de la señal de venta por encima del RSI y la señal de bucle de salida de Bolling permite configurar puntos de compra. Comprar cuando ambas señales se activan al mismo tiempo y esperar a que el precio se ponga en equilibrio cuando atraviese la línea de Bolling.

Análisis de las ventajas

  1. La estrategia combina el indicador de inversiones de la media RSI y la línea de Brin del indicador de canal para determinar con mayor precisión el momento de comprar.

  2. El indicador RSI puede filtrar muchas brechas falsas y reducir las transacciones innecesarias.

  3. El canal Brinline sirve como un indicador de stop loss para controlar el riesgo de una sola transacción.

Análisis de riesgos

  1. El indicador RSI puede emitir señales erróneas, lo que lleva a perder oportunidades de compra.

  2. La configuración incorrecta de los parámetros de la ruta de la línea de browning puede causar que el stop loss sea demasiado flexible o estricto.

  3. El riesgo de liquidez es mayor cuando se negocian acciones de pequeña capitalización.

Dirección de optimización

  1. Se pueden probar diferentes combinaciones de parámetros, como el ciclo RSI, el ciclo de la ruta de Bryn y el multiplicador, para encontrar el parámetro óptimo.

  2. Se puede combinar con otros indicadores como KD, MACD, etc., para establecer condiciones de compra más estrictas para filtrar las señales.

  3. Se puede establecer un margen de pérdida de acuerdo con las diferentes variedades de operaciones, como el límite de pérdida de la tasa de volatilidad.

Resumir

Esta estrategia utiliza primero la compra en el RSI bajo, y luego el uso de la ruta de la línea de bullings alto punto de parada de pérdidas, es una estrategia de comercio de retorno a la media. En comparación con el uso de indicadores como el RSI o la línea de bullings, esta estrategia puede determinar con mayor precisión el punto de compra y venta de puntos, para obtener un mejor efecto de la estrategia. El siguiente paso puede ser mejorado con la optimización de parámetros de señales, filtración, estrategia de parada de pérdidas, etc.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's BB + RSI Strategy v1.0", shorttitle = "BB+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
rsiuse = input(true, defval = true, title = "Use RSI")
bbuse = input(true, defval = true, title = "Use BB")
showbb = input(true, defval = true, title = "Show BB Overlay")
bbperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "BB period")
bbsource = input(ohlc4, title = "BB source")
bbmult = input(2, defval = 2, minval = 1, maxval = 100, title = "BB Mult")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 1000, title = "RSI period")
rsisource = input(close, title = "RSI source")
rsilimit = input(30, defval = 30, minval = 1, maxval = 49, title = "RSI Limit")
fromyear = input(1900, defval = 1900, 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")

//RSI
rsi = rsi(rsisource, rsiperiod)

//BB
basis = sma(bbsource, bbperiod)
dev = bbmult * stdev(bbsource, bbperiod)
upper = basis + dev
lower = basis - dev

//Overlay
col = showbb ? blue : na
plot(upper, color = col)
plot(basis, color = col)
plot(lower, color = col)

//Signals
up = (rsi < rsilimit or rsiuse == false) and (low < lower or bbuse == false)
cl = close > open

//Trading
lot = 0.0 
lot := strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, lot)
if cl
    strategy.entry("Close", strategy.short, 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()