Estrategia de negociación oscilatoria con banda de Bohr RSI


Fecha de creación: 2023-09-16 18:48:44 Última modificación: 2023-09-16 18:48:44
Copiar: 2 Número de Visitas: 737
1
Seguir
1617
Seguidores

Descripción general

La estrategia de comercio de la oscilación del RSI de las bandas de Bol es una estrategia de comercio de oscilación de la línea corta que combina el uso del indicador de las bandas de Bol y el indicador de la fuerza relativa (RSI). La estrategia obtiene ganancias al capturar las oscilaciones de los precios entre las bandas de Bol.

El principio

En primer lugar, la estrategia utiliza un indicador de bandas de Bol para analizar los límites superiores y inferiores de la fluctuación de los precios. Cuando el precio se acerca a la vía superior, se trata de una sobrecompra, y cuando se acerca a la vía inferior, se trata de una sobreventa.

En segundo lugar, en combinación con el indicador RSI, se puede determinar la fortaleza de la sobrecompra. Un RSI superior a 70 es una sobrecompra y un RSI inferior a 30 es una sobreventa.

Cuando el precio toque la banda de Bol hacia abajo y el RSI muestre un sobreventa, haga más; cuando el precio toque la banda de Bol hacia arriba y el RSI muestre un sobreventa, haga un vacío.

Las ventajas

  • El indicador de la banda de Bol puede determinar con precisión el rango de fluctuación de los precios.

  • El indicador RSI evita hacer demasiado vacío a ciegas.

  • La probabilidad de obtener ganancias es mayor si se aprovechan las características de la regresión de precios.

  • La mayoría de las personas que trabajan en el sector de la salud y el medio ambiente son personas de edad avanzada.

  • Aplicable a diferentes variedades y períodos de tiempo.

El riesgo

  • Los parámetros de la banda de Bol están mal configurados y no se puede ubicar el precio clave.

  • La configuración de los parámetros del RSI no es razonable y genera falsas señales.

  • La resistencia es insuficiente y el parón se dispara.

  • El coste de los puntos de deslizamiento de las altas frecuencias de transacción.

  • Es difícil entender las tendencias en un mercado volátil.

Cómo hacer frente

  • Optimización de los parámetros para acercar la banda de Bohr al rango de fluctuación real.

  • Ajuste el ciclo RSI para asegurar que se filtre el ruido.

  • El Stop Loss móvil rastrea el precio y reduce la pérdida de arbitraje.

  • Seleccione variedades que sean de buena comercialización y reduzca el impacto de los puntos de deslizamiento.

  • Otros indicadores pueden ayudar a determinar la dirección de la tendencia.

Resumir

La estrategia de comercio de oscilación del RSI de las bandas de Bol, capaz de capturar eficazmente las fluctuaciones bidireccionales de los precios dentro del rango. Se obtienen ganancias estables mediante la regulación de los parámetros y la gestión del riesgo. Es una estrategia de comercio de cuantificación de la línea corta que se recomienda.

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

//@version=4
strategy("Swing trading strategy FOREX ", shorttitle="BB+RSI", overlay=true)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2022, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
// 
// 


///////////// RSI
RSIlength = input(6,title="RSI Period Length") 
RSIoverSold = input(defval = 65, title = "RSIoverSold", minval = 1, maxval = 100)
RSIoverBought = input(defval = 35, title = "RSIoverBought", minval = 1, maxval = 100)
price = close
vrsi = rsi(price, RSIlength)



///////////// Bollinger Bands
BBlength = input(200, minval=1,title="Bollinger Period Length")
BBmult = 2 // 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
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
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?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
//for buy
cond1=crossover(vrsi, RSIoverSold)
cond2=crossover(source, BBlower) 
//for sell
cond3=crossunder(vrsi, RSIoverBought)
cond4=crossunder(source, BBupper)
if (not na(vrsi))

    if (cond1 and cond2 and time_cond)
        strategy.entry("RSI_BB_LONG", strategy.long, stop=BBlower, comment="LONG",alert_message = "long")
    else
        strategy.cancel(id="RSI_BB_LONG")
        
    if (cond3 and cond4 and time_cond)
        strategy.entry("RSI_BB_SHORT", strategy.short, stop=BBupper,  comment="SHORT",alert_message = "short")
        //strategy.close("RSI_BB_LONG")

    else
        strategy.cancel(id="RSI_BB_SHORT")
        
//strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort")


//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)