Bollinger Bands dan Strategi Perdagangan Fibonacci

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

Gambaran umum

Strategi ini menggabungkan indikator Bollinger Bands dan Fibonacci retracement untuk pendekatan multi-indikator. Ini termasuk dalam jenis strategi indikator gabungan yang khas. Bollinger Bands menentukan arah tren dan tingkat Fibonacci mengidentifikasi zona pendukung dan resistensi utama untuk menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini didasarkan pada dua indikator utama:

  1. Bollinger Bands

    Menghitung band atas, tengah dan bawah. harga yang melanggar di atas band bawah adalah sinyal panjang, dan melanggar di bawah band atas adalah sinyal pendek.

  2. Fibonacci Retracements

    Menghitung tingkat retracement 0% dan 100% berdasarkan puncak dan terendah historis.

Logika perdagangan khusus adalah:

Sinyal panjang: Harga melanggar band atas, dan berada di atas 0% dukungan Fibonacci.

Sinyal pendek: Harga pecah di bawah band bawah, dan berada di bawah 100% resistensi Fibonacci.

Keluar adalah di sekitar band tengah untuk mengambil keuntungan atau stop loss.

Keuntungan

  • Menggabungkan Bollinger Bands dan indikator Fibonacci
  • Band menilai tren, Fibonacci mengidentifikasi tingkat kunci
  • Kemungkinan gabungan sinyal palsu lebih rendah
  • Band tengah keluar kontrol drawdowns
  • Aturan masuk dan keluar yang jelas, mudah diterapkan

Risiko

  • Indikator berbasis MA dapat tertinggal, kehilangan tingkat terbaik
  • Hanya didorong oleh indikator, reaksi lambat terhadap peristiwa besar
  • Filter ganda membatasi frekuensi perdagangan
  • Parameter yang tidak tepat mempengaruhi band dan retracement secara negatif
  • Parameter perlu dioptimalkan untuk produk yang berbeda

Risiko dapat dikurangi dengan:

  • Mengoptimalkan untuk kombinasi parameter terbaik
  • Meredakan kriteria masuk seperti menambahkan pola candlestick
  • Memperbaiki pintu keluar dengan berhenti di belakang
  • Pengujian parameter terpisah per produk
  • Sistem pengukuran posisi

Arah Peningkatan

Strategi dapat ditingkatkan dengan:

  1. Mengoptimalkan parameter Bollinger Bands

    Menemukan rasio optimal untuk band atas/bawah

  2. Mengoptimalkan periode retracement Fibonacci

    Pengujian periode lookback yang berbeda untuk retracements

  3. Kondisi masuk yang meredakan

    Mengamati pola candlestick pada istirahat band

  4. Meningkatkan pintu keluar

    Mempertimbangkan mekanisme trailing stop

  5. Pengujian parameter spesifik produk

    Parameter perlu disetel untuk produk yang berbeda

Ringkasan

Strategi ini menggabungkan kekuatan Bollinger Bands dan Fibonacci Retracements untuk sinyal berkualitas tinggi. Namun tantangan seperti optimasi parameter yang sulit ada. Perbaikan dapat dilakukan melalui penyesuaian parameter, meringankan kriteria masuk, meningkatkan keluar dll untuk memperbaiki strategi sambil mempertahankan keunggulan. Penyesuaian terus-menerus 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 banyak