Estrategia dual RSI y bandas de Bollinger


Fecha de creación: 2023-12-12 11:53:49 Última modificación: 2023-12-12 11:53:49
Copiar: 0 Número de Visitas: 685
1
Seguir
1621
Seguidores

Estrategia dual RSI y bandas de Bollinger

Descripción general

La idea central de la estrategia es combinar el indicador relativamente fuerte (RSI) y los dos indicadores técnicos de Brin para filtrar las señales de doble negociación, minimizar la interferencia de las señales falsas y mejorar la calidad de la señal.

Cuando el indicador RSI muestra una señal de sobrecompra o sobreventa, al mismo tiempo que el precio se rompe o retrocede hacia abajo de la banda de Bolingbroke, se crea una oportunidad de negociación. Combina las ventajas de dos indicadores diferentes, que consideran las características estadísticas de la fluctuación del mercado y se preocupan por la situación de exceso de espacio de los participantes en el mercado, para formar una base de juicio integral.

Principio de estrategia

En la sección de RSI, observamos dos indicadores RSI de diferentes períodos al mismo tiempo, un período más corto para capturar señales de sobreventa y sobreventa, y un período más largo para confirmar la reversión de la tendencia. Cuando el RSI de corto período muestra sobreventa y el RSI de largo período muestra reversión, se considera que se forma una oportunidad de negociación.

En el segmento de la banda de Brin, nos centramos en si el precio se rompe hacia arriba o hacia abajo. Romper la banda de Brin hacia arriba es un punto de venta, romper la banda de Brin hacia abajo es un punto de compra. También nos centramos en si el precio se reajusta a la banda de Brin, para capturar oportunamente la oportunidad de reversión.

Cuando la señal RSI y la señal de la banda de Brin se presentan al mismo tiempo, consideramos que la oportunidad de negociación se ha formado y emitimos una orden de negociación.

Análisis de las ventajas

  • Filtrado de doble indicador, mayor fiabilidad y evita el exceso de transacciones
  • Tener en cuenta las tendencias y los cambios, aprovechar las oportunidades en las diferentes fases del mercado
  • Los parámetros son configurables y se pueden ajustar según sea necesario
  • Gestión de tiempo y dinero integrado

Análisis de riesgos

  • Los parámetros incorrectos de la banda de Bryn pueden causar falsas señales
  • No puede hacer frente a situaciones extremas de fuertes fluctuaciones en el mercado
  • El indicador RSI puede emitir señales erróneas
  • Se necesitan parámetros optimizados para adaptarse a diferentes variedades y ciclos

El riesgo se puede evitar y controlar mediante optimización de parámetros, reducción adecuada de posiciones, intervenciones manuales, etc.

Dirección de optimización

  • Ajuste de los parámetros del RSI para optimizar el juicio de sobreventa
  • Ajuste de la banda ancha de Brin y optimización de la estrategia de ruptura de la banda
  • Mecanismo de gestión de posiciones
  • Aumentar las estrategias de alto riesgo
  • Modelos multifactoriales combinados con más indicadores

Resumir

El RSI y la doble estrategia de la cinta de Brin aprovechan al máximo las ventajas de ambos indicadores para generar señales de alta calidad y obtener un retorno estable de la inversión, siempre que los parámetros sean optimizados y la gestión del riesgo esté en su lugar. La combinación de más señales y modelos también es una posible dirección para el futuro.

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

//@version=4
strategy("Ezieh Str.v2", shorttitle="Ezieh Str.v2", overlay=true, pyramiding=10, currency=currency.USD, slippage=3, commission_type=strategy.commission.cash_per_order, commission_value=0.04, initial_capital=1000)



UseDateFilter  = input(title="Enable Date Filter"         ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off date filter")
StartDate      = input(title="Start Date Filter"          ,type=input.time    ,defval=timestamp("1 Jan 2000 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to start excluding trades")
EndDate        = input(title="End Date Filter"            ,type=input.time    ,defval=timestamp("1 Jan 2100 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to stop excluding trades")
UseTimeFilter  = input(title="Enable Time Session Filter" ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off time session filter")
TradingSession = input(title="Trading Session"            ,type=input.session ,defval="1000-2200:1234567"                 ,group="Date & Time" ,tooltip="No trades will be taken outside of this range")

In(t)      => na(time(timeframe.period, t)) == false
TimeFilter = (UseTimeFilter and not In(TradingSession)) or not UseTimeFilter
DateFilter = time >= StartDate and time <= EndDate

DateTime = (UseDateFilter ? not DateFilter : true) and (UseTimeFilter ? In(TradingSession) : true) 

///////////// RSI
L_RSI_Length     = input(7  , title="L_Length")
L_RSI_OverSold   = input(45 , title="L_OverSold")
S_RSI_Length     = input(14 , title="S_Length")
S_RSI_OverBought = input(65 , title="S_OverBought")

price = close
Lvrsi = rsi(price, L_RSI_Length)
Svrsi = rsi(price, S_RSI_Length)

///////////// Bollinger Bands
BBlength = input(title="Bollinger Period Length", type=input.integer, defval=100, minval=2)
BBmult = 2.1 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")



///////////// Condition
LongCondition  = crossover(Lvrsi, L_RSI_OverSold)    and crossover(close  ,BBlower)
ShortCondition = crossunder(Svrsi, S_RSI_OverBought) and crossunder(close,BBupper)
Longexcon      = crossunder(low, BBupper)
Shortexcon     = crossover(low, BBlower)

qt = round(strategy.equity/price, 3)

///////////// RSI + Bollinger Bands Strategy
if (not na(Lvrsi))

    if LongCondition and DateTime
        strategy.entry("RSI_BB_L", strategy.long, qty=qt,  comment="Long")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if Longexcon
        strategy.close("RSI_BB_L", qty_percent = 100, comment = "L_exit")
    
    if ShortCondition and DateTime
        strategy.entry("RSI_BB_S", strategy.short, qty=qt,  comment="Short")
    else
        strategy.cancel(id="RSI_BB_S")
        
    if Shortexcon
        strategy.close("RSI_BB_S", qty_percent = 100, comment = "S_exit")
    
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)