Estratégia de avanço de duas vias com base no indicador RSI


Data de criação: 2024-01-08 10:28:26 última modificação: 2024-01-08 10:28:26
cópia: 1 Cliques: 634
1
focar em
1617
Seguidores

Estratégia de avanço de duas vias com base no indicador RSI

Visão geral

Esta estratégia é conhecida como estratégia de ruptura de dupla trajetória baseada no indicador RSI. Esta estratégia usa a combinação de duas trajetórias do indicador RSI para julgar e alcançar o objetivo de compra e venda baixas. Quando o indicador RSI está abaixo da trajetória baixa definida (default 40), é considerado um sinal de compra, quando o RSI10 é menor que o RSI14, a compra é confirmada ainda mais. Quando o indicador RSI está acima da trajetória alta definida (default 70), é considerado um sinal de venda, quando o RSI10 é maior que o RSI14, a venda é confirmada ainda mais.

Princípio da estratégia

A lógica central desta estratégia é usar o binário do indicador RSI para julgar. O indicador RSI geralmente é configurado para 14 ciclos, representando a forte e fraca situação das ações nos últimos 14 dias. Esta estratégia adiciona o RSI10 como um indicador de julgamento auxiliar.

Quando o RSI 14 quebra a faixa de 40, acredita-se que o preço da ação caiu para o lado fraco, possivelmente formando uma oportunidade de rebote de suporte. Neste momento, se o RSI 10 for menor que o RSI 14, o que indica que a tendência de curto prazo ainda é para baixo, pode confirmar ainda mais o sinal de baixa. Portanto, quando o RSI 14 <= 40 e o RSI 10 < RSI 14 são atendidos, um sinal de compra é gerado.

Quando o RSI14 ultrapassa a faixa de 70, acredita-se que o preço da ação entra em uma área de força de curto prazo, e pode haver uma oportunidade de ajuste de retorno. Neste momento, se o RSI10 for maior que o RSI14, o que indica que a tendência de curto prazo continua a subir, o sinal de bullish pode ser confirmado ainda mais.

Assim, o julgamento de combinação entre RSI14 e RSI10 constitui a lógica central da estratégia de duas vias.

Vantagens estratégicas

  1. Usando uma combinação de dois indicadores RSI, é possível capturar pontos de venda e compra com mais precisão.
  2. Módulo de Stop Loss móvel, que permite a parada no tempo e controle de perdas máximas
  3. Configuração de um mecanismo de retirada de parada, que pode ser retirado após atingir o objetivo de lucro, evitando a devolução de lucro

Risco estratégico

  1. Os indicadores RSI são propensos a produzir falsos sinais e não conseguem evitar completamente perdas
  2. Se o ponto de parada for definido muito perto, ele pode ser desacelerado, e se o risco for definido muito alto e difícil de controlar.
  3. Se houver uma anomalia, como saltos rápidos, também haverá danos correspondentes.

Para aproveitar ao máximo esta estratégia, é possível ajustar adequadamente os parâmetros do RSI, controlar rigorosamente as posições de stop loss, evitar operações excessivamente densas e buscar uma rentabilidade estável e duradoura.

Direção de otimização da estratégia

  1. Pode ser considerada a combinação com outros indicadores, como KDJ, MACD, etc., para a realização de verificação de vários indicadores
  2. Os parâmetros do RSI podem ser definidos para diferentes variedades, de modo que os parâmetros estejam mais próximos das características da variedade
  3. Pode-se definir um stop-loss dinâmico, ajustando o stop-loss em tempo real de acordo com indicadores como o ATR
  4. Os parâmetros do RSI podem ser otimizados automaticamente por meio de tecnologia de aprendizado de máquina

Resumir

Esta estratégia baseia-se no pensamento de duas vias do RSI, filtrando alguns sinais de ruído até certo ponto. Mas nenhuma estratégia de indicador individual pode ser perfeita, o indicador RSI é fácil de enganar e deve ser visto com cautela. Esta estratégia inclui um mecanismo móvel de parada e parada para controlar o risco, o que é muito necessário.

Código-fonte da estratégia
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji

//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)

backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry 
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
    trail_profit_line_color := color.black
    stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)

if true// and time <= backtest_timeframe_end
    buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
    exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
    //ENTRY:
    if strategy.position_size == 0 and buy_condition
        entry_price := close
        trailing_SL_buffer := ATR_buffer
        stop_loss_price := close - ATR_buffer
        strategy.entry("Long",strategy.long, comment="buy")
        bar_count := 0
    else if strategy.position_size > 0
        bar_count := bar_count + 1

    //EXIT: 
    // Case (A) hits trailing stop
    if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
        if close > entry_price
            strategy.close("Long", comment="take profit [trailing]")
            stop_loss_price := 0
        else if close <= entry_price and bar_count
            strategy.close("Long", comment="stop loss")
            stop_loss_price := 0
        bar_count := 0
    // Case (B) take targeted profit relative to risk 
    if strategy.position_size > 0 and TARGET_PROFIT_MODE
        if take_profit_long
            strategy.close("Long", comment="take profits [risk:reward]")
            stop_loss_price := 0
        bar_count := 0
    // Case (C)
    if strategy.position_size > 0 and exit_condition
        if take_profit_long
            strategy.close("Long", comment="exit[rsi]")
            stop_loss_price := 0
        bar_count := 0