A estratégia de negociação de ruptura do Alpha RSI é uma estratégia de negociação de ruptura baseada no indicador RSI. Esta estratégia usa o indicador RSI para identificar condições de sobrecompra e sobrevenda e combina-se com médias móveis para determinar a direção da tendência.
A estratégia baseia-se principalmente na seguinte lógica:
Quando o RSI excede o limiar de sobrecompra (default 70), o ativo é considerado sobrecomprado e é aberta uma transação curta.
Quando o RSI cruza abaixo do limiar de sobrevenda (default 30), o ativo é considerado sobrevendo e é aberta uma negociação longa.
A média móvel da SMA é usada para determinar a tendência principal.
Em especial, a estratégia inclui:
As entradas para o período SMA (default 200), período RSI (default 14), nível de entrada do RSI (default 34), nível de stop loss (default 30), nível de take profit (default 50).
Cálculo dos valores da SMA e do RSI.
Uma posição longa é inserida quando o RSI cruza acima do nível de entrada e o close está acima da SMA.
Após a abertura longa, o stop loss é atualizado para o menor do fechamento anterior.
A posição longa é fechada quando: a) o RSI cai abaixo do stop loss; b) o RSI atinge o take profit; c) o close cai abaixo do stop loss.
Só negociações longas, não curtas.
Esta estratégia identifica pontos de reversão pelos níveis de sobrecompra/supervenda do RSI e entra em momentos oportunos de contra-tendência após a confirmação da direcção da tendência principal.
Em comparação com as estratégias simples de média móvel, esta estratégia tem as seguintes vantagens:
O RSI é melhor para identificar pontos de reversão através de níveis de sobrecompra/supervenda.
Os negócios são realizados apenas quando a tendência concorda com os sinais RSI, reduzindo os falsos sinais.
Os mecanismos de stop loss e take profit gerem ativamente os riscos e os retornos.
A paragem final traz mais lucros à medida que o preço se move favoravelmente.
Regras simples e claras, fáceis de entender para os iniciantes.
A estratégia tem também alguns riscos a ter em conta:
O RSI ainda pode dar sinais falsos. Outros filtros como volume podem ser adicionados.
Os parâmetros de entrada fixa, stop loss e take profit podem não se adequar a todos os ativos e condições de mercado.
Os custos de negociação não são considerados, o spread e a comissão afetam os lucros.
Perder oportunidades de curto-circuito.
Considere regras adequadas de gestão de capital, por exemplo, o risco máximo por transacção.
Algumas formas de melhorar a estratégia:
Adicione outros filtros como anomalias de volume.
Otimizar dinamicamente parâmetros através de métodos de aprendizagem de máquina.
Adicionar regras de curto prazo para detectar tendências de baixa.
Considerem os custos de negociação, otimizem os parâmetros por especificações de ativos.
Adicionar módulo de gestão de capital, por exemplo, limites de risco por transação.
Optimização dos testes de retorno para combinações de parâmetros para uma melhor eficiência.
A estratégia de ruptura do RSI combina estratégias de tendência e reversão. Identifica reversões enquanto controla riscos. Embora melhorável para mercados complexos, fornece um modelo de referência simples para aprendizado de estratégia quântica. Com otimizações adequadas, pode ser uma estratégia mecânica lucrativa.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 1d basePeriod: 1h 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/ // © abdllhatn //@version=5 // strategy("Alpha RSI Breakout Strategy", overlay=true, initial_capital=10000, default_qty_value=100) // Inputs sma_length = input(200, title="SMA Length") rsi_length = input(14, title="RSI Length") rsi_entry = input(34, title="RSI Entry Level") rsi_stop_loss = input(30, title="RSI Stop Loss Level") rsi_take_profit = input(50, title="RSI Take Profit Level") // Indicators sma_value = ta.sma(close, sma_length) rsi_value = ta.rsi(close, rsi_length) var bool trailing_stop_activate = false var float trailingStop = na var float lastClose = na // Conditions longCondition = ta.crossover(rsi_value, rsi_entry) and close > sma_value if (longCondition) strategy.entry("Buy", strategy.long) trailingStop := na lastClose := na trailing_stop_activate := false if (strategy.position_size > 0) if (na(lastClose) or close < lastClose) lastClose := close trailingStop := close if (rsi_value >= rsi_take_profit) trailing_stop_activate := true if (trailing_stop_activate and not na(trailingStop) and close < trailingStop) strategy.close("Buy") if (rsi_value <= rsi_stop_loss) strategy.close("Buy") if (not trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") if (trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") // Plot plot(sma_value, color=color.red, linewidth=2) plot(rsi_value, color=color.blue, linewidth=2)