Estrategia de tendencia cruzada de la media móvil del RSI

El autor:¿ Qué pasa?, Fecha: 2023-11-28 17:03:56
Las etiquetas:

img

Resumen general

La estrategia de tendencia de cruce de promedio móvil del RSI es una estrategia que utiliza las señales de cruce de promedio móvil del indicador RSI para determinar la tendencia y emitir señales comerciales.

Estrategia lógica

El indicador central de esta estrategia es el RSI. Cálcula tanto la EMA como la SMA del RSI. Las señales de compra solo se emiten cuando la EMA del RSI está por encima de la SMA mientras que el precio está por encima de la EMA. Las señales de venta se emiten cuando la EMA del RSI cae por debajo de la SMA para seguir la tendencia.

El indicador RSI puede reflejar de manera efectiva las condiciones de sobrecompra y sobreventa en el mercado. Romper por encima de 70 en el RSI se considera sobrecomprado mientras que romper por debajo de 30 es sobreventa.

Cuando el RSI EMA comienza a subir, señala la estabilización en el mercado. El SMA luego verifica la dirección. Cuando el SMA también comienza a subir, confirma que el RSI está en una tendencia alcista. La estrategia ahora emitirá una señal de compra dado que el precio está por encima de la EMA para seguir la tendencia.

Análisis de ventajas

Esta es una estrategia de seguimiento de tendencias, capaz de capturar de manera efectiva las oportunidades direccionales a medio y largo plazo.

La estrategia también incorpora la EMA de precios para garantizar la compra solo en una tendencia alcista de precios, evitando el riesgo de mercados de rango y mejorando la rentabilidad.

Análisis de riesgos

La estrategia se basa principalmente en el indicador RSI. Las señales falsas de RSI conducirán a señales de estrategia falsas. Además, el RSI es más adecuado para identificar los niveles de sobrecompra / sobreventa con cierto retraso en la captura de tendencias a mediano y largo plazo.

También puede haber un cierto retraso en el tiempo, especialmente cuando el RSI EMA y SMA están más limitados al rango.

Direcciones de optimización

  1. El RSI puede optimizarse seleccionando parámetros más adecuados para mejorar la eficacia.

  2. La lógica de stop loss se puede añadir a las posiciones de salida después de que las pérdidas alcancen ciertos niveles para gestionar eficazmente el riesgo.

  3. Los parámetros se pueden probar y optimizar en diferentes plazos de tiempo para que la estrategia pueda funcionar de manera estable en más productos y períodos.

Resumen de las actividades

La estrategia de tendencia de cruce de promedio móvil del RSI es una estrategia simple de seguimiento de tendencias que utiliza el RSI para determinar la dirección de la tendencia y cruces para la verificación. Incorpora la EMA de precios para comprar en tendencias alcistas. La estrategia tiene una alta estabilidad para la tenencia a medio y largo plazo, pero el riesgo de retraso debe ser administrado.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Created by Sv3nla 5-Jan-2021
strategy(title="Sv3nla RSI EMA SMA Strat", shorttitle="Sv3nla RSI EMA SMA Strat", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === BACKTEST RANGE ===
FromMonth = input(defval = 5, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2015, title = "From Year", minval = 2015)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2022) 
// syminfo.mintick = 0.01$ for BTCUSDT

testPeriod() => true

//INPUTS
rsilen = input(defval = 16, minval=1, title="RSILength")
RSIemaLen = input(defval = 12, minval=1, title="RSI EMA Length")
RSIsmaLen2 = input(defval = 29, minval=1, title="RSI SMA Length2")
length = input(defval = 8, minval=1, title="EMA price Length")

// RSI
RSIsrc = close
RSIup = rma(max(change(RSIsrc), 0), rsilen)
RSIdown = rma(-min(change(RSIsrc), 0), rsilen)
rsi = RSIdown == 0 ? 100 : RSIup == 0 ? 0 : 100 - 100 / (1 + RSIup / RSIdown)
emavalue=ema(rsi,RSIemaLen)
smavalue=sma(rsi,RSIsmaLen2)

//EMA
ema=ema(close,length)

//PLOT
plot(ema(rsi, RSIemaLen), color=color.yellow, linewidth=2, title="EMA", transp=0)
plot(sma(rsi, RSIsmaLen2), color=color.aqua, linewidth=2, title="SMA", transp=0)

//ORDERS
if (testPeriod())
    strategy.entry("long",strategy.long, comment="RSIEMA", when=(emavalue > smavalue and close>ema))
    strategy.close(id="long", when=(emavalue < smavalue))

// Colour background when in a trade and 50 horizontal line
backgroundColour = (strategy.position_size > 0) ? color.green : na    
bgcolor(color=backgroundColour, transp=85)
hline(50, color=color.yellow)

Más.