Análisis de la estrategia RSI rápida

El autor:¿ Qué pasa?, Fecha: 2023-12-04 14:40:02
Las etiquetas:

img

Nombre de la estrategia

Estrategia de tendencia del RSI extrema bidireccional

Resumen general

Esta estrategia utiliza el indicador RSI para determinar rápidamente las tendencias de precios.

Principio de la estrategia

La estrategia utiliza un indicador RSI mejorado para juzgar el estado de sobrecompra y sobreventa de los precios, combinado con el filtrado del cuerpo de la vela para reducir el ruido. Se va largo o corto cuando el RSI está en la zona de sobrecompra o sobreventa y el tamaño del cuerpo de la vela es mayor que 1/3 del tamaño del cuerpo promedio. Cierra posiciones cuando la vela invierte la dirección y el RSI vuelve a niveles más seguros después de que se activen las señales comerciales.

Análisis de ventajas

La estrategia responde rápidamente y puede capturar tendencias a corto plazo más rápidas. Mientras tanto, el filtrado del cuerpo ayuda a reducir el ruido y evitar ser engañado por falsos breakouts. Se adapta bien a productos de alta volatilidad y puede lograr mayores rendimientos.

Análisis de riesgos

La estrategia es bastante sensible a los cambios de precios, fácilmente mal guiada por señales falsas en el mercado. Además, las pérdidas de parada pueden desencadenarse con frecuencia en el mercado de alta volatilidad. Podemos aflojar el rango de pérdida de parada y optimizar los parámetros del RSI para reducir la probabilidad de señal falsa.

Direcciones de optimización

Podemos probar diferentes parámetros periódicos de los indicadores para optimizar la estrategia y encontrar la mejor combinación de parámetros. Además, incorporar otros indicadores como las reglas de Turtle Trading puede ayudar aún más en el filtrado de señales.

Resumen de las actividades

En general, esta es una estrategia eficiente y sensible a corto plazo. Con algunos parámetros y optimización del modelo, tiene el potencial de mejorar aún más la estabilidad y la rentabilidad. Merece una investigación y seguimiento continuos por parte de los comerciantes cuánticos.


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

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.1", shorttitle = "Fast RSI str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Source")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
uplimit = 100 - limit
dnlimit = limit

//Body
body = abs(close - open)
emabody = ema(body, 30) / 3

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = bar == -1 and fastrsi < dnlimit and body > emabody
dn = bar == 1 and fastrsi > uplimit and body > emabody
exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

Más.