Estratégia de reversão de retração de Fibonacci

Autora:ChaoZhang, Data: 2023-12-07 15:15:26
Tags:

img

Resumo

A estratégia de reversão de retracamento de Fibonacci é uma estratégia quantitativa de negociação baseada em níveis de retracamento de Fibonacci e no indicador de força relativa (RSI).

Estratégia lógica

A estratégia calcula primeiro duas zonas de preços importantes com base nos níveis de Fibonacci de 0,618 - o ponto mais alto de 0,618 vezes e o ponto mais baixo de 0,618 vezes.

Além disso, a estratégia também usa o indicador RSI para determinar condições de sobrecompra/supervenda. RSI abaixo de 30 indica estado de sobrevenda, enquanto RSI acima de 70 sugere condição de supercompra. Estes também implicam reversões potenciais de preços.

Combinando as duas condições, o sinal de compra é acionado quando: o close breaks acima do ponto baixo de 0,618 vezes E o RSI está abaixo de 30; o sinal de venda é acionado quando: o close breaks abaixo do ponto alto de 0,618 vezes E o RSI ultrapassa 70.

Após o sinal de compra, a estratégia vai longo no preço de mercado. Após o sinal de venda, ele vai curto no preço de mercado. Além disso, os níveis de take profit e stop loss são definidos de modo que a posição será fechada quando o preço se move favoravelmente por uma certa porcentagem (take profit) ou se move negativamente por uma certa porcentagem (stop loss).

Vantagens

A estratégia combina cenários de tendência e de reversão, tendo em conta as tendências principais, beneficiando simultaneamente de uma retração a curto prazo.

  1. Os níveis de Fibonacci têm atributos inerentes de suporte/resistência, servindo como indicador eficaz da zona de preços.
  2. O estado de sobrecompra/supervenda do RSI sugere potenciais pontos de virada.
  3. Os sinais longo/curto são claros, captando chances de reversão.
  4. O risco de controlo do lucro/stop loss.

Riscos

Existem alguns riscos que devem ser conhecidos:

  1. As perdas podem ocorrer se não ocorrer uma grande inversão da tendência apesar de rebotes de curto prazo.
  2. Uma zona de stop loss mais ampla pode ajudar.
  3. As reversões podem durar muito tempo, exigindo um apoio de capital suficiente.

Optimização

A estratégia pode ser melhorada através de:

  1. Coletar mais dados históricos para testar e ajustar parâmetros-chave como a faixa da zona de Fibonacci e as linhas de sobrecompra / sobrevenda do RSI para melhor se adequar ao mercado real.

  2. Incorporar mais indicadores para gerar sinais mais fortes, como padrões de velas, mudanças de volume, etc.

  3. Ajustar parâmetros ou regras de acordo com diferentes características dos instrumentos de negociação.

  4. Adicionar um mecanismo dinâmico de stop loss ao preço de rastreamento em tempo real.

Conclusão

A estratégia de reversão de retracamento de Fibonacci equilibra cenários de tendência e reversão para obter lucro a curto prazo, controlando os riscos.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FBS Trade", overlay=true)

// Fibonacci seviyeleri
fibonacciLevels = input(0.618, title="Fibonacci Düzeltme Seviyesi")

// RSI ayarları
rsiLength = input(14, title="RSI Periyodu")
overboughtLevel = input(70, title="RSI Satış Sinyali Seviyesi")
oversoldLevel = input(30, title="RSI Alış Sinyali Seviyesi")

// Take Profit ve Stop Loss yüzdesi
takeProfitPercent = input(1, title="Take Profit Yüzdesi") / 100
stopLossPercent = input(1, title="Stop Loss Yüzdesi") / 100

// Fibonacci seviyelerini hesapla
highFibo = high * (1 + fibonacciLevels)
lowFibo = low * (1 - fibonacciLevels)

// RSI hesaplama
rsiValue = ta.rsi(close, rsiLength)

// Alış ve satış koşulları
buyCondition = close > lowFibo and rsiValue < 30
sellCondition = close < highFibo and rsiValue > overboughtLevel

// Take Profit ve Stop Loss seviyeleri
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent)

takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent)

// Alış ve satış işlemleri
if (buyCondition)
    strategy.entry("Buy", strategy.long)
if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Take Profit ve Stop Loss seviyeleri
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Close Buy", from_entry="Buy", limit=takeProfitLong, stop=stopLossLong)
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Close Sell", from_entry="Sell", limit=takeProfitShort, stop=stopLossShort)

// Sadece mumları ve buy/sell işlemlerini göster
plot(close, color=color.black, title="Close")

// Destek ve direnç bölgeleri
supportLevel = input(27, title="Fibonacci Destek Seviyesi")
resistanceLevel = input(200, title="Direnç Seviyesi")

hline(supportLevel, "Fibonacci Destek Seviyesi", color=color.green)
hline(resistanceLevel, "Direnç Seviyesi", color=color.red)

// Trend çizgileri
var line trendLine = na
if (ta.crossover(close, highFibo))
    trendLine := line.new(bar_index[1], highFibo[1], bar_index, highFibo, color=color.green, width=2)
if (ta.crossunder(close, lowFibo))
    trendLine := line.new(bar_index[1], lowFibo[1], bar_index, lowFibo, color=color.red, width=2)

// RSI ve Fibo'yu grafiğe çizme
hline(overboughtLevel, "RSI Satış Sinyali", color=color.red, linestyle=hline.style_dashed)
hline(oversoldLevel, "RSI Alış Sinyali", color=color.green, linestyle=hline.style_dashed)
plot(rsiValue, color=color.purple, title="RSI")

// 15 dakikalıkta 3 mumda bir alarm
is15MinBar = ta.change(time('15'), 1)
if (is15MinBar % 3 == 0)
    alert("15 dakikalıkta 3 mum geçti.")


Mais.