Strategi ini mengidentifikasi saluran harga menggunakan Bollinger Bands dan menentukan level support/resistance berdasarkan rasio retracement Fibonacci untuk trading algoritmik.
Perhitungan band tengah, atas dan bawah Bollinger Bands
Band tengah adalah SMA, band atas/bawah adalah SMA +/- kelipatan ATR
Bollinger Bands memperluas dan menyusut berdasarkan volatilitas pasar
Menghitung tingkat retracement Fibonacci berdasarkan rasio
Rasio retracement adalah kelipatan dari rasio ATR * Fibonacci
Tingkat Fib ganda dihitung berdasarkan pita tengah
Pemantauan harga keluar dari Bollinger Bands
Pertimbangkan untuk pergi panjang ketika harga melanggar band atas
Pertimbangkan untuk pergi pendek ketika harga pecah di bawah band bawah
Memasuki perdagangan dan mengatur SL/TP di sekitar zona retracement Fib
Masukkan perdagangan ketika harga menarik kembali ke zona Fib
Set stop loss dan mengambil keuntungan di sisi lain dari zona
Bollinger Bands dengan jelas mengidentifikasi rentang dan tren volatilitas pasar
Rasio Fibonacci memahami level support dan resistance utama
Menggabungkan indikator memungkinkan perdagangan algoritmik
Pullback entri meningkatkan kemungkinan keberhasilan dan menghindari mengejar
Parameter yang dapat disesuaikan dengan periode dan produk yang berbeda
Bollinger Bands breakout mungkin sinyal palsu
Sulit untuk memprediksi dengan tepat kapan harga akan kembali ke tingkat Fib
Penempatan stop loss yang tidak tepat dapat meningkatkan kerugian
Ukuran penarikan yang tidak cukup atau berlebihan mempengaruhi strategi
Parameter yang tidak efektif atau tren pasar yang terus-menerus dapat membatalkan strategi
Meningkatkan logika Bollinger Bands, mempertimbangkan volume, penyesuaian zona dinamis, dll.
Mengoptimalkan parameter Bollinger Bands untuk penilaian tren dan S/R yang lebih baik
Tambahkan indikator volume untuk memvalidasi sinyal pecah
Menggunakan pembelajaran mesin untuk prediksi kemungkinan mundur
Masukkan lebih banyak indikator teknis untuk validasi sinyal
Pilih parameter yang wajar berdasarkan karakteristik produk dan sesi perdagangan
Sesuai waktu menyesuaikan kekuatan zona pullback untuk perubahan volatilitas
Strategi ini menggabungkan kekuatan Bollinger Bands dan retracement Fibonacci untuk mengidentifikasi tren dan masuk pada tingkat pullback kemungkinan tinggi. Risiko dapat dikurangi dan hasil ditingkatkan dengan optimasi parameter, validasi sinyal tambahan, penyesuaian zona dinamis, dll. Ada ruang untuk ekspansi dengan menggabungkan volume, model pembelajaran mesin, dll. Strategi dapat disempurnakan lebih lanjut melalui optimasi berkelanjutan.
/*backtest start: 2023-08-27 00:00:00 end: 2023-09-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BBands Fibo", title="Bollinger Bands Fibonacci Ratios", overlay=true) length = input(20, minval=1, type=input.integer, title="Length") src = input(close, title="Source") offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) fibo1 = input(defval=1.618, title="Fibonacci Ratio 1") fibo2 = input(defval=2.618, title="Fibonacci Ratio 2") fibo3 = input(defval=4.236, title="Fibonacci Ratio 3") fiboBuyReverse = input(false, title = "Use Reverse Buy?") fiboBuy = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Buy") fiboSellReverse = input(false, title = "Use Reverse Sell?") fiboSell = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Sell") sma = sma(src, length) atr = atr(length) ratio1 = atr * fibo1 ratio2 = atr * fibo2 ratio3 = atr * fibo3 upper3 = sma + ratio3 upper2 = sma + ratio2 upper1 = sma + ratio1 lower1 = sma - ratio1 lower2 = sma - ratio2 lower3 = sma - ratio3 plot(sma, style=0, title="Basis", color=color.orange, linewidth=2, offset = offset) upp3 = plot(upper3, transp=90, title="Upper 3", color=color.teal, offset = offset) upp2 = plot(upper2, transp=60, title="Upper 2", color=color.teal, offset = offset) upp1 = plot(upper1, transp=30, title="Upper 1", color=color.teal, offset = offset) low1 = plot(lower1, transp=30, title="Lower 1", color=color.teal, offset = offset) low2 = plot(lower2, transp=60, title="Lower 2", color=color.teal, offset = offset) low3 = plot(lower3, transp=90, title="Lower 3", color=color.teal, offset = offset) fill(upp3, low3, title = "Background", color=color.new(color.teal, 95)) targetBuy = fiboBuy == "Fibo 1" ? upper1 : fiboBuy == "Fibo 2" ? upper2 : upper3 targetBuy := fiboBuyReverse == false ? targetBuy : fiboBuy == "Fibo 1" ? lower1 : fiboBuy == "Fibo 2" ? lower2 : lower3 buy = low < targetBuy and high > targetBuy targetSell = fiboSell == "Fibo 1" ? lower1 : fiboSell == "Fibo 2" ? lower2 : lower3 targetSell := fiboSellReverse == false ? targetSell : fiboSell == "Fibo 1" ? upper1 : fiboSell == "Fibo 2" ? upper2 : upper3 sell = low < targetSell and high > targetSell strategy.entry("Buy", true, when = buy) strategy.entry("Sell", false, when = sell)