
La estrategia de tendencia RSI de dos vías rápidas
La estrategia es una estrategia rápida que utiliza el indicador RSI para determinar la tendencia de los precios. Tiene la capacidad de hacer más y hacer menos al mismo tiempo, lo que permite capturar precios de línea corta más rápidos.
La estrategia utiliza el indicador RSI mejorado para determinar el estado de sobreventa y sobreventa del precio, en combinación con el ruido de filtración de la entidad de la línea K. Cuando el RSI está en una zona de sobreventa o sobreventa y el volumen de la entidad de la línea K es mayor que el 1⁄3 del volumen promedio, se hace un sobreventa o un sobreventa.
La estrategia responde rápidamente y puede capturar tendencias de líneas cortas más rápidas; al mismo tiempo, el filtro entero ayuda a eliminar el ruido y evitar ser engañado por falsas rupturas. La estrategia se aplica a variedades de alta volatilidad y puede obtener mayores ganancias.
Esta estrategia es sensible a la respuesta a los cambios de precios y es fácilmente engañada por falsas señales en el mercado; además, los alto índice de volatilidad de los mercados pueden desencadenar pérdidas con mayor frecuencia. Se puede relajar adecuadamente el margen de pérdidas y optimizar los parámetros del RSI para reducir la probabilidad de falsas señales.
Se pueden probar diferentes parámetros de indicadores de ciclo para optimizar la estrategia y buscar la combinación óptima de parámetros. Además, se puede considerar la inclusión de otros indicadores como las reglas de negociación de la tortuga para ayudar a filtrar las señales. También puede ser un buen intento entrenar un mejor umbral de RSI en combinación con métodos de aprendizaje automático.
La estrategia en su conjunto es una estrategia de línea corta altamente eficiente y sensible. Se espera que mejore aún más la estabilidad y la rentabilidad a través de la optimización de algunos parámetros y modelos. La estrategia merece el estudio y el seguimiento de los comerciantes cuantitativos.
/*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()