Bollinger Bands Fibonacci Retracement Strategi Dagangan

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

Ringkasan

Strategi ini mengenal pasti saluran harga menggunakan Bollinger Bands dan menentukan tahap sokongan / rintangan berdasarkan nisbah retracement Fibonacci untuk perdagangan algoritma.

Logika Strategi

  1. Pengiraan jalur tengah, atas dan bawah Bollinger Bands

    • Band tengah adalah SMA, band atas/bawah adalah SMA +/- kelipatan ATR

    • Bollinger Bands berkembang dan mengecil berdasarkan turun naik pasaran

  2. Mengira tahap retracement Fibonacci berdasarkan nisbah

    • Nisbah retracement adalah kelipatan ATR * nisbah Fibonacci

    • Tahap Fib berganda dikira berdasarkan jalur tengah

  3. Pemantauan harga keluar dari Bollinger Bands

    • Pertimbangkan untuk pergi lama apabila harga pecah di atas barisan atas

    • Pertimbangkan untuk pergi pendek apabila harga pecah di bawah band bawah

  4. Memasuki perdagangan dan menetapkan SL/TP di sekitar zon retracement Fib

    • Masukkan perdagangan apabila harga menarik kembali ke zon Fib

    • Tetapkan stop loss dan mengambil keuntungan di sisi lain zon

Analisis Kelebihan

  • Bollinger Bands dengan jelas mengenal pasti julat dan trend turun naik pasaran

  • Nisbah Fibonacci memahami tahap sokongan dan rintangan utama

  • Menggabungkan penunjuk membolehkan perdagangan algoritma

  • Pullback entri meningkatkan kebarangkalian kejayaan dan mengelakkan mengejar

  • Parameter yang boleh diselaraskan menyesuaikan diri dengan tempoh dan produk yang berbeza

Analisis Risiko

  • Penembusan Bollinger Bands mungkin isyarat palsu

  • Sukar untuk meramalkan dengan tepat apabila harga akan kembali ke tahap Fib

  • Penempatan stop loss yang tidak betul boleh meningkatkan kerugian

  • Kepelbagaian penurunan yang tidak mencukupi atau berlebihan mempengaruhi strategi

  • Parameter yang tidak berkesan atau pasaran trend berterusan boleh membatalkan strategi

  • Meningkatkan logik Bollinger Bands, mempertimbangkan jumlah, pelarasan zon dinamik, dll.

Arahan pengoptimuman

  • Mengoptimumkan parameter Bollinger Bands untuk penilaian trend dan S / R yang lebih baik

  • Tambah penunjuk kelantangan untuk mengesahkan isyarat pecah

  • Menggunakan pembelajaran mesin untuk ramalan kebarangkalian pulback

  • Memasukkan lebih banyak penunjuk teknikal untuk pengesahan isyarat

  • Pilih parameter yang munasabah berdasarkan ciri produk dan sesi dagangan

  • Sesuaikan kekuatan zon pulback tepat pada masanya untuk perubahan turun naik

Kesimpulan

Strategi ini menggabungkan kekuatan Bollinger Bands dan retracement Fibonacci untuk mengenal pasti trend dan memasuki tahap pullback kemungkinan tinggi. Risiko dapat dikurangkan dan hasil dapat ditingkatkan dengan pengoptimuman parameter, pengesahan isyarat tambahan, pelarasan zon dinamik, dll. Terdapat ruang untuk pengembangan dengan menggabungkan model jumlah, pembelajaran mesin, dll. Strategi ini boleh disempurnakan melalui pengoptimuman berterusan.


/*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 lanjut