Bollinger Bands Fibonacci Retracement Strategi Perdagangan

Penulis:ChaoZhang, Tanggal: 2023-09-27 16:52:05
Tag:

Gambaran umum

Strategi ini mengidentifikasi saluran harga menggunakan Bollinger Bands dan menentukan level support/resistance berdasarkan rasio retracement Fibonacci untuk trading algoritmik.

Logika Strategi

  1. 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

  2. Menghitung tingkat retracement Fibonacci berdasarkan rasio

    • Rasio retracement adalah kelipatan dari rasio ATR * Fibonacci

    • Tingkat Fib ganda dihitung berdasarkan pita tengah

  3. 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

  4. 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

Analisis Keuntungan

  • 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

Analisis Risiko

  • 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.

Arahan Optimasi

  • 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

Kesimpulan

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)


Lebih banyak