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).
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).
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.
Existem alguns riscos que devem ser conhecidos:
A estratégia pode ser melhorada através de:
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.
Incorporar mais indicadores para gerar sinais mais fortes, como padrões de velas, mudanças de volume, etc.
Ajustar parâmetros ou regras de acordo com diferentes características dos instrumentos de negociação.
Adicionar um mecanismo dinâmico de stop loss ao preço de rastreamento em tempo real.
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.")