Strategi pembalikan retracement Fibonacci adalah strategi perdagangan kuantitatif berdasarkan tahap retracement Fibonacci dan penunjuk Indeks Kekuatan Relatif (RSI). Strategi ini menggabungkan teori saluran Fibonacci dan penunjuk overbought / oversold untuk membuat perdagangan pembalikan terhadap trend utama untuk mendapat keuntungan dalam kitaran jangka pendek.
Strategi ini mula-mula mengira dua zon harga penting berdasarkan tahap 0.618 Fibonacci - titik tinggi 0.618 kali dan titik rendah 0.618 kali. Apabila harga mendekati kawasan ini, kami percaya pembalikan mungkin berlaku.
Di samping itu, strategi ini juga menggunakan penunjuk RSI untuk menentukan keadaan overbought / oversold. RSI di bawah 30 menunjukkan status oversold manakala RSI di atas 70 menunjukkan keadaan overbought. Ini juga menunjukkan potensi pembalikan harga.
Menggabungkan kedua-dua keadaan ini, isyarat beli diaktifkan apabila: close break di atas titik rendah 0.618 kali dan RSI di bawah 30; isyarat jual diaktifkan apabila: close break di bawah titik tinggi 0.618 kali dan RSI melebihi 70.
Pada isyarat beli, strategi akan panjang pada harga pasaran. Pada isyarat jual, ia akan pendek pada harga pasaran. Juga, mengambil keuntungan dan stop loss tahap ditetapkan supaya kedudukan akan ditutup apabila harga bergerak menguntungkan dengan peratusan tertentu (ambil keuntungan) atau bergerak negatif dengan peratusan tertentu (henti kerugian).
Strategi ini menggabungkan kedua-dua senario trend dan pembalikan, dengan mengambil kira trend utama sambil mendapat keuntungan daripada retracement jangka pendek.
Terdapat beberapa risiko yang perlu diketahui:
Strategi ini boleh dioptimumkan lagi dengan:
Mengumpul lebih banyak data sejarah untuk menguji dan menyesuaikan parameter utama seperti julat zon Fibonacci dan garis overbought / oversold RSI untuk lebih sesuai dengan pasaran sebenar.
Masukkan lebih banyak penunjuk untuk menjana isyarat yang lebih kuat, seperti corak candlestick, perubahan jumlah dll.
Sesuaikan parameter atau peraturan mengikut ciri instrumen dagangan yang berbeza.
Tambahkan mekanisme stop loss dinamik ke harga jejak masa nyata.
Strategi Pembalikan Retracement Fibonacci menyeimbangkan senario trend dan pembalikan untuk keuntungan dalam jangka pendek sambil mengawal risiko. Pengoptimuman lanjut boleh membawa kepada pulangan yang lebih besar.
/*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.")