Estratégia de negociação de RSI e retração de Fibonacci


Data de criação: 2023-12-27 16:49:52 última modificação: 2023-12-27 16:49:52
cópia: 3 Cliques: 1189
1
focar em
1623
Seguidores

Estratégia de negociação de RSI e retração de Fibonacci

Visão geral

Este artigo descreve principalmente uma estratégia de negociação que combina um índice relativamente forte (RSI) com um retorno de Fibonacci. A estratégia primeiro calcula um retorno de Fibonacci crítico com base na dinâmica histórica dos preços em um determinado período, e em seguida, em combinação com o RSI, determina se o mercado está superando o supermercado e emite um sinal de negociação perto do retorno.

Princípio da estratégia

A estratégia baseia-se principalmente nos seguintes princípios:

  1. Usando dados de preços de um determinado período (por exemplo, a linha K de 200), calcule a média de preços, o diferencial padrão e o ponto crítico de Fibonacci retorno (por exemplo, 0,764) para esse período;

  2. Quando o preço está perto de uma reviravolta para cima ou para baixo, use o indicador RSI para determinar se a região de reviravolta está sendo sobrecomprada ou sobrevendida;

  3. Se o indicador RSI mostrar um sinal de sobrecompra ou sobrevenda, emite um sinal de fazer mais ou fazer menos perto do ponto de retorno;

  4. A partir daí, o trader pode definir um nível de stop-loss e um nível de stop-loss, e cancelar a posição se for excedido o preço estabelecido ou se for acionado um stop-loss.

A estratégia é baseada no processo de determinar o momento certo para a negociação.

Análise de vantagens estratégicas

A estratégia combinada tem as seguintes vantagens em comparação com a negociação usando o RSI ou Fibonacci isoladamente:

  1. Filtragem de duplo indicador para reduzir falsos sinais e melhorar a qualidade do sinal;

  2. A inversão de preços é uma técnica de análise técnica mais clássica, que consiste em fazer uma inversão de preços perto de um ponto de inversão.

  3. A configuração de um Stop Loss Limit permite um controle efetivo do máximo de perdas em uma única transação.

  4. Pode ser otimizado por parâmetros, ajustando os parâmetros do indicador e a configuração do retorno para adaptar-se a diferentes ciclos e variedades.

Análise de risco estratégico

A estratégia também apresenta alguns riscos a serem observados:

  1. A probabilidade de um rebote após a aproximação de um ponto de retorno crítico não é de 100%, e deve ser combinada com o julgamento de uma entidade de preços;

  2. O RSI de um único ciclo pode produzir falsos sinais de um rebote mortal, podendo ser considerado uma verificação de múltiplos ciclos;

  3. O ponto de parada é muito relaxado e pode aumentar os prejuízos;

  4. Quando o preço da moeda flutua fortemente, o stop loss pode ser ultrapassado e o ponto de stop loss deve ser relaxado.

Os riscos acima podem ser controlados por meio de ajustes de parâmetros e combinações de indicadores de otimização.

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

A estratégia também pode ser melhorada em:

  1. Aumentar a verificação dos indicadores de volume de transações para evitar falsas rupturas em baixos volumes;

  2. Considerando o indicador de Brin, emitir um sinal de ruptura de uma faixa;

  3. Construir modelos de aprendizado de máquina ou redes neurais para identificar automaticamente oportunidades de negociação de alta qualidade;

  4. Utilizando métodos como algoritmos genéticos para otimizar automaticamente os parâmetros e ajustar o ponto de parada de perda.

Resumir

Este artigo detalha uma estratégia de negociação quantitativa que combina o RSI e o retorno de Fibonacci para julgar. Esta estratégia combina a análise de duplo indicador com a estratégia técnica clássica, aumentando a qualidade do sinal de negociação, sob a premissa de controlar o risco.

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

//@version=4
strategy(title="Gab Fib  + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4)

// Inputs
timeFilter = year >= 2000
    // Stop Loss 
stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
sl_long = close * (1-stop_loss)
sl_short = close * (1+stop_loss)


// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long or sl_long
closeShort = low < exit_short or sl_short


//Rounding to MinTick value
roundtargetUp = round_to_mintick(targetUp)
roundtargetDown = round_to_mintick(targetDown)
roundsllong = round_to_mintick(sl_long)
roundslshort = round_to_mintick(sl_short)

// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong))
    strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close,  alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort))

    // Exit Orders
    strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker))
    strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))