Estrategia de negociación bidireccional basada en el RSI y en el RSI de STOCH

El autor:¿ Qué pasa?, Fecha: 2023-12-01 18:06:23
Las etiquetas:

img

Resumen general

Esta estrategia combina el poderoso índice de fortaleza relativa (RSI) y los indicadores técnicos de Stoch RSI para implementar una estrategia de negociación bidireccional relativamente estable y confiable.

Estrategia lógica

Esta estrategia se basa principalmente en los indicadores RSI y Stoch RSI. El RSI se utiliza para determinar si el mercado está sobrecomprado o sobrevendido.

En primer lugar, el RSI juzga si el mercado está sobrecomprado o sobrevendido. Si el RSI está por encima de la línea de sobrecompra, el mercado se considera sobrecomprado. Si el RSI está por debajo de la línea de sobreventa, el mercado se considera sobrevendido.

En segundo lugar, el Stoch RSI genera señales comerciales. Cuando la línea rápida cruza por encima de la línea lenta desde abajo, se genera una señal de compra. Cuando la línea rápida cruza por debajo de la línea lenta desde arriba, se genera una señal de venta.

Por último, la estrategia solo entrará en el mercado cuando el RSI muestre condiciones de sobrecompra / sobreventa y el Stoch RSI genere señales al mismo tiempo.

Análisis de ventajas

La estrategia combina las ventajas de los indicadores RSI y Stoch RSI, teniendo en cuenta tanto las tendencias generales del mercado como los cambios detallados para generar señales comerciales más confiables, evitando señales falsas innecesarias.

El RSI puede determinar efectivamente si el mercado está sobrecomprado o sobrevendido, evitando perseguir los tops y los bottoms.

Además, se añaden filtros de tiempo y precio para reducir aún más la probabilidad de operaciones erróneas y mejorar la solidez de toda la estrategia.

Análisis de riesgos

La estrategia se basa principalmente en el RSI y en el RSI de Bolsa, que son sensibles a los cambios del mercado, lo que puede dar lugar a frecuentes señales falsas y divergencias entre indicadores, lo que conduce a una alta frecuencia de operaciones y ganancias inestables.

Para mitigar dichos riesgos, los parámetros del RSI y del Stoch RSI pueden ajustarse para adaptarse mejor a las características del mercado y se pueden añadir más filtros.

Direcciones de optimización

La estrategia se puede optimizar aún más en los siguientes aspectos:

  1. Agregue el stop loss móvil para bloquear las ganancias y reducir las pérdidas.

  2. Optimizar los parámetros del RSI y del RSI de Stoch para adaptarse a diferentes períodos y productos.

  3. Añadir más filtros como marcos de tiempo más grandes y menor frecuencia de negociación.

  4. Incorporar otros indicadores para la verificación de la señal para evitar errores.

  5. Optimización de pruebas posteriores para la mejor combinación de parámetros.

Conclusión

La estrategia aprovecha las fortalezas tanto del RSI como del Stoch RSI para establecer un marco de negociación bidireccional, proporcionando una generación de señales más completa y confiable en comparación con el uso de un solo indicador, evitando muchas señales falsas innecesarias.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI v2", overlay=true)
lengthrsi = input(10)
overSold = input( 20 )
overBought = input( 70 )
price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)






yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(d,k)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(d,k) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Más.