Estratégia de negociação avançada de indicadores de RSI

Autora:ChaoZhang, Data: 2024-02-06 11:47:59
Tags:

img

Resumo

A estratégia de negociação do indicador avançado do RSI do S&P500 é uma estratégia de médio a longo prazo de tendência para a negociação do índice S&P500. Esta estratégia combina vários filtros com sinais de sobrecompra e sobrevenda do RSI para controlar o risco e reduzir os falsos sinais.

Estratégia lógica

O indicador central desta estratégia é o RSI, usando o RSI de 2 períodos para determinar os níveis de sobrecompra e sobrevenda de preços.

  1. Filtro semanal do RSI: Requer que o RSI semanal esteja abaixo de um limiar para evitar compras longas excessivamente agressivas em um mercado de alta.

  2. Filtro MA: Requer que o preço esteja acima de um determinado período MA para garantir a entrada após o início de uma tendência de alta.

  3. Filtro RSI secundário: Requer que o indicador RSI secundário também caia abaixo da linha de sobrevenda para evitar falsos breakouts.

  4. ATR Breakout Filter: Evita ir muito tempo após uma queda acentuada do preço para controlar o risco.

A combinação destes múltiplos filtros pode identificar eficazmente pontos de reversão de preços a médio e longo prazo, controlar a frequência das trocas e reduzir o risco.

Análise das vantagens

A estratégia de negociação do indicador S&P500 Advanced RSI tem as seguintes vantagens:

  1. A combinação de múltiplos indicadores auxiliares reduz os falsos sinais e melhora a fiabilidade.

  2. O filtro de fuga ATR controla o risco evitando comprar após uma queda de preços.

  3. O filtro semanal do RSI evita compras longas agressivas em um mercado de alta.

  4. O filtro MA garante a entrada após o início de uma tendência de alta.

  5. O filtro secundário de RSI evita falhas de RSI.

  6. Adequado para a detenção a médio e longo prazos e evita o excesso de negociação.

Análise de riscos

Os principais riscos desta estratégia são os seguintes:

  1. RSI como o principal indicador tem algum atraso.

  2. As condições de filtragem podem ser demasiado rigorosas e perder oportunidades.

  3. O stop loss pode ser retirado durante falhas de flash.

  4. Os RSI simples e os filtros têm capacidades limitadas em condições de mercado complexas.

Mitigações correspondentes:

  1. Ajustar parâmetros para evitar trocas perdidas.

  2. Aumentar o tamanho das posições para explicar alguns negócios perdidos.

  3. Relaxar moderadamente as condições do filtro para aumentar a frequência de troca.

  4. Considere a combinação de mais indicadores para uma análise complexa do mercado.

Orientações de otimização

A estratégia pode ser melhorada nas seguintes direcções:

  1. Teste ajustando os parâmetros do RSI para encontrar linhas de sobrecompra/supervenda ideais.

  2. Ensaiar os parâmetros do período de MA para determinar os valores ideais.

  3. Teste ajustando os parâmetros ATR para otimizar os filtros de desvio de preços.

  4. Tente combinar outros indicadores para uma melhor análise de mercados complexos.

  5. Otimizar parâmetros semanais do RSI para encontrar configurações ideais.

  6. Otimizar os parâmetros secundários do RSI, incluindo o período e as linhas sobrecompradas/supervendidas.

Conclusão

O S&P500 Advanced RSI Indicator Trading Strategy identifica pontos de reversão de tendência de médio a longo prazo usando o RSI e várias condições de filtro para controlar o risco. Utiliza os pontos fortes do RSI de forma eficaz para bloquear tendências de médio / longo prazo e evitar overtrading. À medida que os parâmetros continuam a ser otimizados, o desempenho da estratégia pode continuar a melhorar.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Lets connect on LinkedIn (https://www.linkedin.com/in/lets-grow-with-quality/)
// Optimized for S&P500 Daily. Use it as a buy confirmation on certain levels (Springs, Pullbacks, ...) or let it run 
// without "Weekly RSI Filter" and pyramiding for 4 x more trades.
// This strategy is optimized for minimum drawdowns and has several filters on board for use on different securities

strategy("S&P500 RSI2 Studio", overlay=true)

baseLength = input(2, title="Base RSI Length")
overSold = input(10, title="Overbought Level")
overBought = input(90, title="Oversold Level")
overBoughtExit = input(70, title="Overbought Level Exit")
enableWeeklyRsiFilter = input(true, title="Enable Weekly RSI Filter")
weeklyOverSold = input(30, title="Weekly Oversold Level")
weeklyOverBought = input(70, title="Weekly OverOverbought Level")
weeklyRsiLength = input(2, title="weeklyRsiLength")

enableWmaFilter = input(false, title="Enable MA Filter")
wmaLength = input(100, title="WMA Length")

exitRsiLength = input(4, title="Exit RSI Length")
dailyRsiLength = input(4, title="Daily RSI Length")

enable2ndRSIFilter = input(false, title="Enable 2nd RSI Filter")
SecRSIFilterLengh = input(14, title="2nd RSI Filter Length")
SecRSIFilterOverSold = input(20, title="2nd RSI Filter Oversold Level")

enableAtrFilter = input(true, title="Enable ATR Filter")
numAtrDays = input(14, title="Number of Days ATR Average")
atrFilterFactor = input(2, title="ATR Filter Factor")

weeklyRsi = request.security(syminfo.tickerid, "W", ta.wma(ta.rsi(close, weeklyRsiLength), 1))
exitRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, exitRsiLength), 2))
dailyRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, dailyRsiLength), 2))
price = close

priceDropCondition = ta.atr(1) >= ta.atr(numAtrDays) * atrFilterFactor
preventEarlyEntry = not priceDropCondition

vrsi = ta.wma(ta.rsi(price, baseLength), 2)
wma = ta.wma(price, wmaLength)


buyCond1 = ta.crossunder(vrsi, overSold)
buyCond2 = enableWeeklyRsiFilter ? weeklyRsi < weeklyOverSold : true
buyCond3 = enable2ndRSIFilter ? ta.wma(ta.rsi(close, SecRSIFilterLengh),2) < SecRSIFilterOverSold : true
buyCond4 = enableWmaFilter ? price > ta.wma(close, wmaLength) : true
buyCond5 = enableAtrFilter ? preventEarlyEntry : true
 
buy = buyCond1 and buyCond2 and buyCond3 and buyCond4 and buyCond5

if (not na(vrsi))
    if buy 
        strategy.entry("RSI2 Studio", strategy.long, comment="Long")

if (exitRsi > overBoughtExit)
    strategy.close("RSI2 Studio", comment="Close Long")

Mais.