A Estratégia de Tendência de Reversão do Estocástico do RSI da SPY é uma estratégia quantitativa de negociação que usa cruzamento de indicadores do RSI entre linhas rápidas e lentas para determinar reversões de preços.
A lógica central desta estratégia é baseada em cruzes de linhas rápidas e lentas do RSI. O RSI geralmente se reverte em zonas de sobrecompra e sobrevenda, portanto, ao determinar as situações de cruz de ouro e cruz de morte entre as linhas rápidas e lentas do RSI, podemos identificar possíveis pontos de reversão de preços com antecedência. Especificamente, a estratégia depende principalmente dos seguintes indicadores e condições:
Quando o RSI rápido atravessa o RSI lento (cruz de ouro) e a linha rápida atravessa a linha MA, um sinal de compra é gerado.
Além disso, a seguinte lógica é configurada para filtrar alguns negócios de ruído:
Existem duas condições de saída após a entrada:
A maior vantagem da Estratégia de Tendência de Reversão do Stochastic RSI da SPY é que ela pode capturar a tendência cedo antes que ocorram reversões significativas de preços. Através de cruzamentos rápidos e lentos da linha RSI, ela pode emitir sinais de negociação antes do tempo e criar oportunidades para entrar no mercado. Além disso, a estratégia tem as seguintes vantagens:
Em resumo, ao combinar o seguimento da tendência e a análise da inversão de valor, a estratégia pode capturar o momento da reversão de preços até certo ponto e tem uma forte praticidade.
Apesar de a estratégia de reversão da tendência do SPY RSI Stochastics Crossover ter certas vantagens, apresenta também os seguintes riscos principais:
Para fazer face aos riscos acima referidos, a estratégia pode ser otimizada e melhorada nos seguintes aspectos:
A estratégia de reversão da tendência cruzada do RSI-STOCHASTICS SPY pode ser essencialmente otimizada nas seguintes áreas:
Tais otimizações podem tornar os parâmetros da estratégia mais inteligentes, os sinais mais confiáveis e também ajustar as regras de acordo com as mudanças do mercado, melhorando assim muito a estabilidade dos lucros da estratégia.
A Estratégia de Tendência de Reversão do Stochastics Crossover da SPY RSI projetou um sistema de estratégia de negociação quantitativa relativamente simples e claro baseado em julgar os cruzes rápidos e lentos da linha RSI. Combinando características de negociação de tendência e reversão, ele pode capturar o tempo de reversão de preços até certo ponto. Mas a estratégia também tem algumas falhas inerentes, exigindo otimização de parâmetros, recursos e modelos para controlar riscos e melhorar a qualidade do sinal. Com otimizações contínuas, pode se tornar um sistema quantitativo lucrativo estável.
/*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)