Estrategia de trading automático de posiciones largas y cortas basada en el indicador RSI


Fecha de creación: 2024-02-29 14:14:01 Última modificación: 2024-02-29 14:14:01
Copiar: 25 Número de Visitas: 686
1
Seguir
1617
Seguidores

Estrategia de trading automático de posiciones largas y cortas basada en el indicador RSI

Descripción general

Esta estrategia está basada en el indicador RSI, diseñado para un sistema de trading automático de más vacío. El sistema puede entrar automáticamente en el mercado para hacer más vacío cuando el RSI está sobrecomprado y salir activamente de la parada de pérdidas cuando se activan ciertas condiciones.

Principio de estrategia

Esta estrategia utiliza el indicador RSI para determinar el fenómeno de sobrecompra y sobreventa en el mercado. En concreto, cuando el indicador RSI está por debajo de la línea de sobreventa establecida, se hace una entrada de sobreventa; cuando el indicador RSI está por encima de la línea de sobrecompra establecida, se hace una entrada de shorting.

Además, esta estrategia también establece condiciones de salida. Si el indicador RSI cruza la línea de sobreventa una vez más después de una operación de sobreventa, se activará la salida de pérdidas de múltiples órdenes; de la misma manera, si el indicador RSI cruza la línea de sobreventa una vez más después de una operación de sobreventa, se activará la parada de pérdidas de una sola carta.

Análisis de las ventajas

La mayor ventaja de esta estrategia es que utiliza el indicador RSI para determinar el fenómeno de sobrecompra y sobreventa en el mercado, un método de análisis técnico confiable y más avanzado en el comercio cuantitativo. En comparación con la simple estrategia de medias móviles, esta estrategia puede capturar con mayor precisión los puntos de inflexión del mercado, lo que aumenta el margen de ganancia del sistema de negociación.

Además, esta estrategia establece condiciones de salida que pueden controlar eficazmente el riesgo de pérdidas en el mercado unidireccional. Esto contrasta claramente con la estrategia tradicional de seguimiento de tendencias, que puede evitar que se produzcan situaciones de estafa de la posición.

Análisis de riesgos

El mayor riesgo de esta estrategia es que las señales de negociación emitidas por el indicador RSI pueden ser mal interpretadas. Ningún indicador técnico puede determinar con un 100% de precisión el movimiento del mercado, y el indicador RSI no es una excepción.

Para reducir este riesgo, la estrategia establece un límite de pérdidas. Sin embargo, en un caso unilateral, la probabilidad de que el límite de pérdidas se active también es mayor. En este caso, se requiere una intervención manual para cerrar manualmente las posiciones erróneas. En general, la estrategia, como un sistema de negociación automático, también requiere monitoreo y ajuste manuales para obtener el máximo efecto.

Dirección de optimización

La estrategia tiene espacio para ser optimizada aún más:

  1. La combinación de múltiples indicadores confirma la entrada de señales, evitando la entrada errónea causada por el RSI por separado. Por ejemplo, se puede agregar un indicador de media móvil, etc.

  2. Optimización de los parámetros del RSI para encontrar los parámetros de longitud del RSI más adecuados, lo que hace que los juicios de sobrecompra y sobreventa sean más precisos.

  3. Optimice la configuración de la línea de parada para evitar pérdidas al máximo, pero asegúrese de que no sea demasiado sensible.

Resumir

En general, esta estrategia de trading automática basada en el RSI tiene la ventaja de identificar con eficacia las condiciones de mercado de sobrecompra y sobreventa. Se trata de beneficiarse de la reversión de los mercados al entrar en posiciones de extremo y de cabeza vacía durante los niveles extremos del RSI. El mecanismo de stop loss también ayuda a limitar las pérdidas en una fuerte tendencia unidireccional.

Código Fuente de la Estrategia
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4

strategy("Soran Strategy 2 - LONG SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)


// ----------------- Inputs ----------------- //

reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).

// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28


stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)

stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)


// --------------- Laguerre ----------------- //

laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")

laguerre_cal(s,g) =>
    l0 = 0.0
    l1 = 0.0
    l2 = 0.0
    l3 = 0.0
    l0 := (1 - g)*s+g*nz(l0[1])
    l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
    l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
    l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
    (l0 + 2*l1 + 2*l2 + l3)/6


// ---------------- Rsi VWAP ---------------- //

rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))

rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV


// ------------------ Plots ----------------- //

prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)


// ---------------- Positions: only shows Buy and close Buy positions --------------- //

timebull = stratbull 
timebear = stratbear 

strategy.entry("Long", true, when = timebull and crossover(rsiVWAP, ovrsld), comment="")
strategy.close("Long", when = timebull and crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="")