
O SPY RSI Stochastics Cross Value Reversal Trend Strategy é uma estratégia de negociação quantitativa que usa o cruzamento de linhas rápidas e lentas do indicador RSI para determinar a reversão de preços. A estratégia combina linhas lentas, rápidas e MA para gerar sinais de compra e venda em determinadas condições para capturar grandes oportunidades de reversão de preços.
A lógica central da estratégia é baseada no cruzamento de linhas rápidas com indicadores de RSI. O RSI geralmente reverte em áreas de sobrecompra e sobrevenda, portanto, ao julgar a linha de RSI rápida com o Gold e o Dead Fork da linha de RSI lenta, é possível determinar antecipadamente quando o preço pode reverter.
Quando a linha RSI rápida atravessa a linha RSI lenta ((fork dourado) e a linha RSI rápida atravessa a linha MA, gera um sinal de compra; quando a linha RSI rápida atravessa a linha RSI lenta ((fork morto) e a linha RSI rápida atravessa a linha MA, gera um sinal de venda.
Além disso, para filtrar parte do ruído das transações, a estratégia também estabelece a seguinte lógica:
A inscrição tem duas condições de desistência:
A maior vantagem da estratégia de reversão de tendência de inversão de valor de SPY RSI Stochastics é que ela pode capturar a tendência antes que a reversão de preço seja mais evidente. Através do cruzamento rápido e lento da linha RSI, ela pode enviar sinais de negociação com antecedência por um certo tempo, criando oportunidades de entrada. Além disso, a estratégia também possui as seguintes vantagens:
Em geral, a estratégia, combinada com o acompanhamento de tendências e a avaliação de reversões de valor, permite, até certo ponto, a compreensão do momento em que as reversões de preços ocorrem, com uma maior praticidade.
Embora a estratégia de reversão de tendência do SPY RSI Stochastics tenha algumas vantagens, existem os principais riscos a seguir:
A estratégia pode ser otimizada e aperfeiçoada para os riscos acima mencionados em alguns aspectos:
A estratégia de reversão de tendência do valor cruzado do SPY RSI Stochastics pode ser otimizada principalmente em:
Essas otimizações podem tornar os parâmetros da estratégia mais inteligentes e os sinais mais confiáveis, além de ajustar as regras da estratégia de acordo com as mudanças do mercado, aumentando significativamente a lucratividade estável da estratégia.
A estratégia de reversão de tendência de valor cruzado SPY RSI Stochastics, através da determinação do cruzamento da linha RSI, projetou uma estratégia de negociação quantitativa relativamente simples e clara. Combina as características de acompanhamento de tendência e negociação de reversão, permitindo, até certo ponto, o tempo de reversão do preço. Mas a estratégia também possui algumas falhas inerentes, que necessitam de controle de risco e otimização de sinais de qualidade por meio de parâmetros, características e 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)