Este artículo describe una estrategia cuantitativa que utiliza el RSI para formar señales de negociación. Esta estrategia trata el RSI y establece las condiciones de entrada y salida de las operaciones de más espacio.
El principio de la estrategia
La principal lógica de transacción de la estrategia es la siguiente:
Calcule el indicador RSI ((14)), y use el EMA ((28) para suavizarlo, obteniendo el indicador de oscilación después del tratamiento.
Calcula el Brin’s Band sobre el RSI procesado y se obtiene el trazado ascendente y descendente. Se establece un intervalo de sobreventa y sobreventa.
Cuando se trata de la línea de entrada bajo el indicador RSI, se genera una señal de compra; cuando se trata de la línea de entrada superior, se genera una señal de venta.
Cuando el indicador entra en el rango de sobreventa, se genera una señal de posición cerrada.
De esta manera, se puede aprovechar las características del indicador RSI para capturar oportunidades de reversión y procesar el indicador para mejorar la calidad de la señal y el valor de referencia.
Dos, las ventajas estratégicas
La mayor ventaja de esta estrategia es que el proceso de procesamiento de indicadores aumenta el espacio de parámetros, lo que permite un control estricto de la frecuencia de las operaciones y evita el exceso de operaciones.
Otra ventaja es que las condiciones de entrada son sencillas e intuitivas, y el tiempo de negociación se puede juzgar a través de los valores claros de los indicadores.
Por último, la configuración de un rango de sobreventa también ayuda a detener el stop loss a tiempo y a controlar el riesgo de una sola operación.
Tercero, el riesgo potencial.
Sin embargo, la estrategia también tiene los siguientes riesgos:
En primer lugar, el RSI se centra en el cambio de tendencia y es propenso a generar señales erróneas en la tendencia.
En segundo lugar, la configuración incorrecta de los parámetros también puede conducir a una optimización excesiva que no se adapta a los cambios en la estructura del mercado.
Por último, las bajas tasas de ganancias requieren cierta presión de pérdidas.
Cuatro contenido, resumen
Este artículo trata sobre una estrategia de trading cuantitativa que utiliza el indicador RSI. Esta estrategia controla la frecuencia de las operaciones mediante la regulación de los parámetros, así como las reglas claras de entrada y salida. Al mismo tiempo que optimiza los parámetros, también necesita controlar el riesgo de inversiones comerciales. En general, ofrece un modelo de estrategia RSI simple e intuitivo.
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//-----------------------------------------------------------------
//This simple strategy base on RSI, EMA, Bollinger Bands to get Buy and Sell Signal with detail as below:
//-----------------------------------------------------------------
//1.Define Oscillator Line
//+ Oscillator Line is smoothed by ema(28) of RSI(14) on H1 Timeframe
//2.Define Overbought and Oversold
//+ Apply Bollinger Bands BB(80,3) on Oscillator Line and calculate %b
//+ Overbought Zone marked above level 0.8
//+ Oversold Zone marked below level 0.2
//3.Buy Signal
//+ Entry Long Positon when %b crossover Point of Entry Long
//+ Deafault Point of Entry Long is 0.2
//+ Buy signal marked by Green dot
//4.Sell Signal
//+ Entry Short Position when %b crossunder Point of Entry Short
//+ Deafault Point of Entry Short is 0.8
//+ Sell signal marked by Red dot
//5.Exit Signal
//+ Exit Position (both Long and Short) when %b go into Overbought Zone or Oversold Zone
//+ Exit signal marked by Yellow dot
//-----------------------------------------------------------------
strategy(title="RSI %b Signal [H1 Backtesting]", overlay=false)
//RSI
rsi_gr="=== RSI ==="
rsi_len = input(14, title = "RSI",inline="set",group=rsi_gr)
smoothed_len = input(28, title = "EMA",inline="set",group=rsi_gr)
rsi=ta.ema(ta.rsi(close,rsi_len),smoothed_len)
//rsi's BOLLINGER BANDS
pb_gr="=== %b ==="
length = input(80, title = "Length",inline="set1",group=pb_gr)
rsimult = input(3.0, title = "Multiplier",inline="set1",group=pb_gr)
ovb = input(0.8, title = "Overbought",inline="set2",group=pb_gr)
ovs = input(0.2, title = "Oversold",inline="set2",group=pb_gr)
et_short = input(0.8, title = "Entry Short",inline="set3",group=pb_gr)
et_long = input(0.2, title = "Entry Long",inline="set3",group=pb_gr)
[rsibasis, rsiupper, rsilower] = ta.bb(rsi, length, rsimult)
//rsi's %B
rsipB = ((rsi - rsilower) / (rsiupper - rsilower))
plot(rsipB, title="rsi's %B", color=rsipB>math.min(ovb,et_short)?color.red:rsipB<math.max(ovs,et_long)?color.green:color.aqua, linewidth=1)
h1=hline(1,color=color.new(color.red,100))
h4=hline(ovb,color=color.new(color.red,100))
h0=hline(0,color=color.new(color.green,100))
h3=hline(ovs,color=color.new(color.green,100))
h5=hline(0.5,color=color.new(color.silver,0),linestyle=hline.style_dotted)
fill(h1,h4, title="Resistance", color=color.new(color.red,90))
fill(h0,h3, title="Support", color=color.new(color.green,90))
//Signal
rsi_buy=
rsipB[1]<et_long
and
rsipB>et_long
rsi_sell=
rsipB[1]>et_short
and
rsipB<et_short
rsi_exit=
(rsipB[1]>ovs and rsipB<ovs)
or
(rsipB[1]<ovb and rsipB>ovb)
plotshape(rsi_buy?rsipB:na,title="Buy",style=shape.circle,color=color.new(color.green,0),location=location.absolute)
plotshape(rsi_sell?rsipB:na,title="Sell",style=shape.circle,color=color.new(color.red,0),location=location.absolute)
plotshape(rsi_exit?rsipB:na,title="Exit",style=shape.circle,color=color.new(color.yellow,0),location=location.absolute)
//Alert
strategy.entry("Long",strategy.long,when=rsi_buy)
strategy.close("Long",when=rsi_exit)
strategy.entry("Short",strategy.short,when=rsi_sell)
strategy.close("Short",when=rsi_exit)
//EOF