A estratégia é chamada de
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.
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.
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