Fibonacci Retracement Reversal adalah strategi perdagangan kuantitatif yang didasarkan pada tingkat retracement Fibonacci dan indikator Relative Strength Index (RSI). Strategi ini menggabungkan teori saluran Fibonacci dan indikator overbought/oversold untuk melakukan perdagangan reversal terhadap tren utama untuk mendapatkan keuntungan dalam siklus jangka pendek.
Strategi ini pertama-tama menghitung dua zona harga penting berdasarkan tingkat Fibonacci 0,618 - titik tertinggi 0,618 kali dan titik terendah 0,618 kali.
Selain itu, strategi ini juga menggunakan indikator RSI untuk menentukan kondisi overbought/oversold. RSI di bawah 30 menunjukkan status oversold sementara RSI di atas 70 menunjukkan kondisi overbought. Ini juga menyiratkan potensi pembalikan harga.
Menggabungkan kedua kondisi, sinyal beli dipicu ketika: close break di atas titik rendah 0,618 kali dan RSI di bawah 30; sinyal jual dipicu ketika: close break di bawah titik tinggi 0,618 kali dan RSI di atas 70.
Setelah sinyal beli, strategi akan panjang pada harga pasar. Setelah sinyal jual, itu akan pendek pada harga pasar. Juga, mengambil keuntungan dan stop loss tingkat diatur sehingga posisi akan ditutup ketika harga bergerak menguntungkan dengan persentase tertentu (ambil keuntungan) atau bergerak merugikan dengan persentase tertentu (stop loss).
Strategi ini menggabungkan skenario tren dan pembalikan, dengan mempertimbangkan tren utama sambil mengambil keuntungan dari retracement jangka pendek.
Ada beberapa risiko yang harus diketahui:
Strategi dapat dioptimalkan lebih lanjut dengan:
Mengumpulkan lebih banyak data historis untuk menguji dan menyesuaikan parameter kunci seperti kisaran zona Fibonacci dan garis overbought / oversold RSI untuk lebih sesuai dengan pasar nyata.
Masukkan lebih banyak indikator untuk menghasilkan sinyal yang lebih kuat, seperti pola lilin, perubahan volume dll.
Sesuaikan parameter atau aturan sesuai dengan karakteristik instrumen perdagangan yang berbeda.
Tambahkan mekanisme stop loss dinamis untuk mengikuti harga secara real time.
Fibonacci Retracement Reversal strategi menyeimbangkan skenario tren dan pembalikan untuk keuntungan dalam jangka pendek sambil mengendalikan risiko. Optimasi lebih lanjut dapat menyebabkan pengembalian 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.")