Estratégia de avanço RSI de dupla via

Autora:ChaoZhang, Data: 2024-01-08 10:28:26
Tags:

img

Resumo

A estratégia é chamada de RSI Dual-track Breakthrough Strategy. Utiliza as duas faixas do indicador RSI para julgamento para alcançar o objetivo de comprar baixo e vender alto. Quando o indicador RSI cai abaixo da faixa inferior definida (padrão 40), ele é considerado um sinal de compra. Neste momento, se o RSI10 for menor que o RSI14, ele confirma ainda mais a compra; Quando o indicador RSI sobe acima da faixa superior definida (padrão 70), ele é considerado um sinal de venda. Neste momento, se o RSI10 for maior que o RSI14, ele confirma ainda mais a venda. A estratégia também define os mecanismos de movimentação de stop loss e take profit.

Princípio da estratégia

A lógica central desta estratégia é usar as duas faixas do indicador RSI para julgamento. O indicador RSI é geralmente definido em 14 períodos, representando a força e fraqueza do estoque nos últimos 14 dias. Esta estratégia adiciona RSI10 como um indicador de julgamento auxiliar.

Quando o RSI14 quebra abaixo da faixa 40, acredita-se que o preço da ação tenha quebrado o lado fraco e possa haver uma chance de rebote de suporte. Neste momento, se o RSI10 for menor que o RSI14, isso significa que a tendência de curto prazo ainda é descendente, o que pode confirmar ainda mais o sinal de venda.

Quando o RSI14 rompe acima da faixa de 70, acredita-se que o preço da ação entrou em uma área forte de curto prazo e pode haver uma chance de um ajuste de retração. Neste momento, se o RSI10 for maior que o RSI14, isso significa que a tendência de curto prazo continua para cima, o que pode confirmar ainda mais o sinal de compra.

A Comissão concluiu que o auxílio não é seletivo e que, por conseguinte, não é seletivo.

Vantagens da estratégia

  1. O julgamento combinado de indicadores RSI duplos pode capturar sinais de negociação com mais precisão
  2. A adoção de um mecanismo de stop loss móvel pode cortar a perda em tempo hábil e controlar a retirada máxima
  3. A definição do mecanismo de saída de lucro permite a saída quando se atinge o lucro alvo, evitando o retracement de lucro

Riscos da Estratégia

  1. O indicador RSI é propenso a gerar sinais falsos e as perdas não podem ser completamente evitadas
  2. Se o ponto de stop loss for demasiado próximo, poderá ser retirado em breve, se for demasiado elevado, é difícil controlar os riscos.
  3. Em condições anormais de mercado, como o gap, também pode levar a perdas.

Para utilizar plenamente esta estratégia, os parâmetros do RSI podem ser ajustados adequadamente, a posição de stop loss deve ser estritamente controlada, evitar operações excessivamente frequentes e buscar uma rentabilidade constante.

Direcções de otimização da estratégia

  1. Considerar a incorporação de outros indicadores para validação de combinações, como KDJ, MACD, etc.
  2. Defina os parâmetros do RSI, respectivamente, com base nas características dos diferentes produtos
  3. Configure perda de parada dinâmica com base em indicadores como ATR para ajustar a posição de parada em tempo hábil
  4. Otimizar os parâmetros RSI automaticamente através de técnicas de aprendizagem de máquina

Resumo

Esta estratégia faz julgamento com base na idéia de dupla pista do RSI e filtra alguns sinais barulhentos até certo ponto. Mas nenhuma estratégia de indicador individual pode ser perfeita, o indicador do RSI é propenso a enganar e deve ser visto com cautela. Esta estratégia incorpora mecanismos de stop loss e take profit para controlar riscos, o que é essencial. As otimizações futuras podem ser continuadas para tornar os parâmetros da estratégia e os métodos de stop loss mais inteligentes e dinâmicos.


/*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


Mais.