SPY RSI Stochastics La estrategia de reversión de la tendencia del valor cruzado es una estrategia de negociación cuantitativa que utiliza el cruce de líneas lentas y rápidas del indicador RSI para juzgar la reversión de precios. La estrategia combina líneas lentas, rápidas y MA para generar señales de compra y venta bajo ciertas condiciones para capturar oportunidades de reversión de precios más grandes.
La lógica central de la estrategia se basa en la cruce de líneas rápidas con el indicador RSI. El RSI generalmente se invierte en zonas de sobrecompra y sobreventa, por lo que se puede determinar con anticipación el momento en que los precios pueden invertirse al juzgar la situación de la línea RSI rápida frente a la línea RSI lenta. En concreto, la estrategia depende principalmente de los siguientes indicadores y condiciones:
Cuando la línea RSI rápida atraviesa la línea RSI lenta ((horquillaje dorado) y la línea RSI rápida atraviesa la línea MA, genera una señal de compra; cuando la RSI rápida atraviesa la RSI lenta ((horquillaje muerto) y la línea RSI rápida atraviesa la línea MA, genera una señal de venta.
Además, para filtrar algunas transacciones de ruido, la estrategia también tiene la siguiente lógica:
La entrada tiene dos condiciones para la salida:
La mayor ventaja de la estrategia de reversión de tendencia de SPY RSI Stochastics es que se puede capturar la tendencia antes de que los precios se vuelvan más evidentes. Al cruzar la línea RSI de forma rápida y lenta, se puede enviar una señal de negociación con cierta antelación para crear oportunidades de entrada. Además, la estrategia tiene las siguientes ventajas:
En general, la estrategia, combinada con el seguimiento de tendencias y el juicio de reversión de valores, tiene una gran utilidad para captar el momento de la reversión de precios hasta cierto punto.
A pesar de las ventajas de una estrategia de reversión de tendencia cruzada de SPY RSI Stochastics, también existen los siguientes riesgos principales:
La estrategia puede ser optimizada y mejorada para estos riesgos en los siguientes aspectos:
La estrategia de reversión de tendencia cruzada de SPY RSI Stochastics puede optimizarse principalmente en los siguientes aspectos:
Estas optimizaciones pueden hacer que los parámetros de la estrategia sean más inteligentes, las señales más confiables, y también pueden ajustar las reglas de la estrategia según los cambios en el mercado, lo que mejora considerablemente la rentabilidad estable de la estrategia.
SPY RSI Stochastics estrategia de reversión de tendencias de valores cruzados mediante la determinación de la intersección de las líneas RSI rápido y lento, diseñó un conjunto de estrategias de comercio de cuantificación relativamente simple y claro. Combina el seguimiento de la tendencia y el comercio de reversión, que puede tomar en cuenta el momento de la reversión de los precios hasta cierto punto. Pero la estrategia también tiene ciertas deficiencias inherentes, que requieren el control de los riesgos a través de parámetros, características y optimización de modelos.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SPY Auto RSI Stochastics", pyramiding = 3)
// Input parameters
slowRSILength = input(64, title="SLOW RSI Length")
fastRSILength = input(9, title="FAST RSI Length")
smaRSILength = input(3, title="RSI SMA Length")
RSIUpperThreshold = input(83, title="RSI Upper")
RSILowerThreshold = input(25, title="RSI Lower")
RSIUpperDeadzone = input(61, title='RSI Upper Deadzone')
RSILowerDeadzone = input(39, title='RSI Lower Deadzone')
blockedDays = (dayofweek(time) == 1 or dayofweek(time) == 7)
sessionMarket = input("0900-0900", title="Session Start")
allowedTimes() => time(timeframe = timeframe.period, session = sessionMarket, timezone = "GMT+1")
isvalidTradeTime =true
// RSI and ATR
slowRSI = ta.rsi(close, slowRSILength)
fastRSI = ta.rsi(close, fastRSILength)
smaRSI = ta.sma(fastRSI, smaRSILength)
rsi = fastRSI
// Entry condition
RSIUptrend() => ta.crossover(fastRSI, slowRSI) and ta.crossover(fastRSI, smaRSI)
RSIDowntrend() => ta.crossunder(fastRSI, slowRSI) and ta.crossunder(fastRSI, smaRSI)
isRSIDeadzone() =>
rsi < RSIUpperDeadzone and rsi > RSILowerDeadzone
isBullishEngulfing() =>
close > high[1]
isBearishEngulfing() =>
close < low[1]
// Declare variables
var float initialSLLong = na
var float initialTPLong = na
var float initialSLShort = na
var float initialTPShort = na
//var bool inATrade = false
entryConditionLong = RSIUptrend() and not isRSIDeadzone() and isvalidTradeTime
entryConditionShort = RSIDowntrend() and not isRSIDeadzone() and isvalidTradeTime
exitConditionLong = entryConditionShort or fastRSI > RSIUpperThreshold
exitConditionShort = entryConditionLong or fastRSI < RSILowerThreshold
if (entryConditionLong)
strategy.entry(id = "Long", direction = strategy.long, alert_message = 'LONG! beep boop, all aboard the long train')
if (entryConditionShort)
strategy.entry(id = "Short", direction = strategy.short, alert_message = 'Short! beep boop, all aboard the short train')
if (exitConditionLong)
strategy.exit("Long", from_entry="Long", limit=close, alert_message = 'Stop Long, halt halt, take the profits and runnn')
if (exitConditionShort)
strategy.exit("Short", from_entry="Short", limit=close, alert_message = 'Stop Short, halt halt, take the profits and runnn')
//plot(smaRSI, "RSI MA", color=color.red)
plot(slowRSI, "Slow RSI", color=color.green)
//plot(fastRSI, "Fast RSI", color=color.white)
plot(smaRSI, "SMA RSI", color=color.white)