Bollinger Bands dan Strategi Dagangan Fibonacci

Penulis:ChaoZhang, Tarikh: 2023-09-21 21:04:38
Tag:

Ringkasan

Strategi ini menggabungkan Bollinger Bands dan indikator retracement Fibonacci untuk pendekatan pelbagai penunjuk. Ia tergolong dalam jenis strategi indikator gabungan biasa. Bollinger Bands menentukan arah trend dan tahap Fibonacci mengenal pasti zon sokongan dan rintangan utama untuk menjana isyarat perdagangan.

Logika Strategi

Strategi ini berdasarkan dua penunjuk utama:

  1. Bollinger Bands

    Mengira band atas, tengah dan bawah. harga pecah di atas band bawah adalah isyarat panjang, dan pecah di bawah band atas adalah isyarat pendek.

  2. Pengulangan Fibonacci

    Mengira tahap retracement 0% dan 100% berdasarkan paras tertinggi dan terendah dalam sejarah.

Logik perdagangan khusus adalah:

Isyarat panjang: Harga pecah di atas jalur atas, dan di atas sokongan Fibonacci 0%.

Isyarat pendek: Harga pecah di bawah jalur bawah, dan di bawah 100% rintangan Fibonacci.

Keluar berada di sekitar jalur tengah untuk mengambil keuntungan atau hentikan kerugian.

Kelebihan

  • Menggabungkan Bollinger Bands dan penunjuk Fibonacci
  • Band menilai trend, Fibonacci mengenal pasti tahap utama
  • Kemungkinan gabungan isyarat palsu adalah lebih rendah
  • Pengeluaran kawalan jalur tengah
  • Peraturan kemasukan dan keluar yang jelas, mudah dilaksanakan

Risiko

  • Penunjuk berasaskan MA boleh ketinggalan, kehilangan tahap terbaik
  • Hanya didorong oleh penunjuk, tindak balas perlahan terhadap peristiwa utama
  • Penapis berganda mengehadkan kekerapan dagangan
  • Parameter yang tidak betul memberi kesan negatif pada jalur dan retracement
  • Parameter memerlukan pengoptimuman untuk produk yang berbeza

Risiko boleh dikurangkan dengan:

  • Mengoptimumkan untuk kombinasi parameter terbaik
  • Melepaskan kriteria kemasukan seperti menambah corak candlestick
  • Meningkatkan pintu keluar dengan hentian belakang
  • Ujian parameter berasingan mengikut produk
  • Sistem penyesuaian saiz kedudukan

Arahan Peningkatan

Strategi ini boleh ditingkatkan dengan:

  1. Mengoptimumkan parameter Bollinger Bands

    Mencari nisbah optimum untuk jalur atas/bawah

  2. Mengoptimumkan tempoh retracement Fibonacci

    Ujian tempoh belakang yang berbeza untuk retracements

  3. Syarat kemasukan yang meringankan

    Memerhatikan corak candlestick pada rehat band

  4. Meningkatkan pintu keluar

    Mempertimbangkan mekanisme hentian

  5. Ujian parameter khusus produk

    Parameter perlu disesuaikan untuk produk yang berbeza

Ringkasan

Strategi ini menggabungkan kekuatan Bollinger Bands dan Fibonacci Retracements untuk isyarat berkualiti tinggi. Tetapi cabaran seperti pengoptimuman parameter yang sukar wujud. Penambahbaikan boleh dibuat melalui penyesuaian parameter, mengurangkan kriteria kemasukan, meningkatkan keluar dan lain-lain untuk memperbaiki strategi sambil mengekalkan keunggulan. Penyesuaian berterusan berdasarkan hasil backtest juga merupakan kunci untuk ketahanan.


/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)

// Initialize position variables
var bool long_position = false
var bool short_position = false

// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

upper_band = basis + dev
lower_band = basis - dev

// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100

// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")

// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100

// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")

// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high

// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Entry and exit logic
if long_condition and not short_position
    strategy.entry("Long", strategy.long)
    long_position := true
    short_position := false

if short_condition and not long_position
    strategy.entry("Short", strategy.short)
    short_position := true
    long_position := false

// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)

if long_exit_condition
    strategy.close("Long")
    long_position := false

if short_exit_condition
    strategy.close("Short")
    short_position := false



Lebih lanjut