Indicador RSI Estratégia de lucro e stop loss cruzado

Autora:ChaoZhang, Data: 2024-02-06 11:43:11
Tags:

img

Resumo

Esta estratégia usa o indicador RSI para determinar o tempo de entrada através de julgamentos de ciclo cruzado e adota o mecanismo de lucro e parada ATR para estratégias de rastreamento de tendências. Determina o ponto de virada da tendência do mercado através do cruzamento do indicador RSI de diferentes ciclos e combina o preço de fechamento para filtrar o tempo de posições longas e curtas.

Princípio da estratégia

A estratégia usa primeiro a tecnologia de suavização da SMA para calcular a média móvel de 26 semanas como referência para julgar o mercado de alta. Em seguida, calcule o valor do indicador RSI de 4 semanas, quando cruza abaixo de 30 na área de sobrevenda, considera-se que o mercado pode se recuperar. Neste momento, julgue se a nova alta do parâmetro de dias curtos pode romper a nova alta recente do parâmetro de dias longos, indicando que a tendência de curto prazo está se fortalecendo. Se as condições acima forem atendidas ao mesmo tempo, um sinal longo é emitido.

Após a entrada no mercado, utilizar os múltiplos do indicador ATR como faixa de lucro, e parar a perda em uma certa percentagem do ponto alto do preço de fechamento.

Vantagens da estratégia

A estratégia apresenta as seguintes vantagens:

  1. Use o indicador RSI para determinar pontos de reversão com boa capacidade de sincronização.

  2. Aplicar o novo mecanismo de altas e baixas para evitar falsos sinais.

  3. Utilize o ATR para obter lucro e stop loss para rastrear automaticamente o ponto de saída ideal.

  4. As definições dos parâmetros flexíveis podem ser ajustadas para níveis ideais.

  5. A ideia estratégica é clara e fácil de compreender, com uma forte estabilidade.

Riscos da Estratégia

A estratégia apresenta igualmente os seguintes riscos:

  1. O indicador RSI pode emitir um sinal errado, resultando em sincronização inadequada.

  2. O intervalo de lucro ATR pode ser definido como muito grande ou muito pequeno para bloquear o lucro máximo.

  3. O ponto de stop loss está muito perto e pode ser quebrado.

  4. Os dados insuficientes de backtest podem sobreestimar a taxa de retorno da estratégia.

Optimização da Estratégia

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Teste e otimize os parâmetros do RSI e os múltiplos de lucro e perda para encontrar a melhor combinação de parâmetros.

  2. Aumentar outros indicadores para melhorar a precisão da estratégia, como MACD, KD, etc.

  3. Otimizar o mecanismo de stop loss e ajustá-lo dinamicamente de acordo com o intervalo de flutuação do ATR.

  4. Teste o efeito do desempenho em diferentes variedades de negociação.

  5. Comparar o desempenho de diferentes tipos de stop loss, tais como stop loss proporcional, stop loss móvel, etc.

Resumo

O funcionamento geral desta estratégia é claro e suave, a seleção de indicadores e configurações de parâmetros são razoáveis, e tem uma forte praticidade. Ainda há espaço para melhorias adicionais através da otimização de parâmetros e melhoria do mecanismo.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-01-18 05:20:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/
strategy("Swing Trading System RSI", overlay=true)
source = close[1]

longperiod = input(26,"long week",minval=2,maxval=500,step=1)
s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day
plot(s)

shortdays = input(21,"short days high period",minval=2,maxval=500,step=1)
longdays = input(50,"long days high period",minval=2,maxval=500,step=1)
rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1)
rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1)

highcheck = highest(source,shortdays) == highest(source,longdays)
rsicheck = crossunder(rsi(source,rsiperiod),rsithresh)

longCondition = (highcheck) and (rsicheck) and source > s
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

profittarget = input(3,"profit target",minval=2,maxval=500,step=1)
stoploss = input(2,"stop target",minval=2,maxval=500,step=1)

exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget)
exitCondition2 = source <  strategy.position_avg_price - (atr(50) * stoploss)

if (exitCondition1)
    strategy.close_all()
if (exitCondition2)
    strategy.close_all()


Mais.