Algoritmo RSI estratégia de ruptura de intervalo


Data de criação: 2023-10-17 17:14:09 última modificação: 2023-10-17 17:14:09
cópia: 0 Cliques: 759
1
focar em
1617
Seguidores

Algoritmo RSI estratégia de ruptura de intervalo

Visão geral

Esta estratégia tem o objetivo de comprar ou vender quando o RSI está em baixa e vender quando o RSI está em alta, de modo a fazer uma operação de reversão quando o RSI está em alta.

Princípio da estratégia

  1. Configurar o RSI para 14 ciclos

  2. Configure o intervalo de RSI do sinal de compra:

    • Intervalo 1: RSI <= 27
    • Intervalo 2: RSI <= 18
  3. Configure o intervalo RSI para o sinal de venda:

    • Intervalo 1: RSI >= 68
    • Intervalo 2: RSI >= 80
  4. Quando o RSI entra no intervalo de compra, faça uma entrada adicional:

    • Se o RSI entrar no intervalo 1 (abaixo de 27), faça mais 1 mão
    • Se o RSI entrar no intervalo 2 (< 18), faça mais 1 mão
  5. Quando o RSI entra na faixa de venda, a entrada de curto prazo:

    • Se o RSI entrar no intervalo 1 (mais de 68)
    • Se o RSI entrar na faixa 2 (80 ou mais), faça 1 mão extra
  6. Cada posição aberta tem um stop-loss fixo de 2500 e um stop-loss de 5000

  7. RSI sai do intervalo de sinais e compensa as posições relevantes

Análise de vantagens

  1. A configuração de duplo intervalo permite que a estratégia seja mais clara sobre o excesso de compra e venda, evitando perder oportunidades de reversão

  2. A fixação do ponto de parada fixa o ponto de parada de perda, não é demasiado para travar a queda

  3. O RSI é um indicador de overbought e oversold mais avançado do que outros

  4. Os parâmetros desta estratégia, quando configurados de forma razoável, são capazes de capturar efetivamente os pontos de reversão da tendência e obter ganhos extras

Análise de Riscos

  1. O RSI pode apresentar uma falha de mercado, o que pode levar a uma perda de mercado contínua.

  2. A configuração do ponto de parada de parada fixa pode não coincidir com a amplitude de flutuação do mercado, impossibilitando a obtenção de lucro ou a parada prematura

  3. A configuração irracional do intervalo pode levar a oportunidades de negociação perdidas ou a perdas de negociação frequentes.

  4. Esta estratégia é mais dependente de otimização de parâmetros, com atenção ao ciclo de teste e controle de ponto de deslizamento

Direção de otimização

  1. Pode testar o efeito do indicador RSI em diferentes períodos de comprimento

  2. Os valores podem ser otimizados para os intervalos de compra e venda, de modo a serem mais adequados às características de diferentes variedades

  3. A pesquisa pode ser feita em métodos dinâmicos de parada de perda para tornar a parada mais eficaz e racional.

  4. Pode considerar-se a negociação de portfólios em combinação com outros indicadores para melhorar a estabilidade do sistema

  5. Explorar maneiras de aprendizagem de máquina para otimizar automaticamente os parâmetros de intervalos e tornar as estratégias mais robustas

Resumir

Esta estratégia baseia-se no princípio de julgamento de sobrevenda e sobrevenda do indicador RSI. Ao definir um intervalo de compra e venda, exercendo a eficácia do indicador RSI, e mantendo uma certa estabilidade, pode efetivamente capturar o fenômeno de sobrevenda e sobrevenda do mercado. Mas a estratégia também existe uma certa dependência de parâmetros, que requer testes de otimização para diferentes variedades.

Código-fonte da estratégia
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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/
// © Rawadabdo

// Ramy's Algorithm

//@version=5
strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000)

// User input
length = input(title = "Length", defval=14, tooltip="RSI period")

first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers")
second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers")

first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers")
second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers")

takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance")
stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance")

lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size")

// Get RSI
vrsi = ta.rsi(close, length)

// Entry Conditions
long1 = (vrsi <= first_buy_level and vrsi>second_buy_level)
long2 = (vrsi <= second_buy_level)

short1= (vrsi >= first_sell_level and vrsi<second_sell_level)
short2= (vrsi >= second_sell_level)


// Entry Orders
// Buy Orders
if (long1 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long, qty=lot, comment="Buy")
    if (long2 and  strategy.position_size == 0)
        strategy.entry("Long", strategy.long, qty=lot, comment="Buy")

// Short Orders
if (short1 and strategy.position_size == 0)
    strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    if (short2 and strategy.position_size == 0)
        strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    
// Exit our trade if our stop loss or take profit is hit
strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss)
strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss)

// plot data to the chart
hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
plot (vrsi, title = "RSI", color = color.blue, linewidth=2)