Strategi pembalikan Bollinger Bands

Penulis:ChaoZhang, Tanggal: 2024-02-20 17:05:47
Tag:

img

Ringkasan

Bollinger Bands Repetitive Zona Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada Bollinger Bands. Strategi ini menggunakan kisaran harga antara band atas dan bawah Bollinger Bands untuk menentukan kisaran volatilitas pasar dan mengidentifikasi titik masuk dan keluar potensial.

Prinsip-prinsip

Strategi ini terutama didasarkan pada indikator berikut untuk penilaian:

  1. Bollinger Middle Band: SMA Moving Average sederhana, yang mewakili tren pasar secara keseluruhan.

  2. Bollinger Upper Band: Pertengahan + N kali standar deviasi.

  3. Bollinger Lower Band: Tengah - N kali standar deviasi. Band bawah mewakili batas bawah volatilitas pasar.

Ketika harga penutupan lebih tinggi dari rel bawah dan harga pembukaan lebih rendah dari rel bawah, itu dinilai sebagai potensi bawah dan titik masuk yang mungkin.

Ketika harga penutupan lebih rendah dari rel atas dan harga pembukaan lebih tinggi dari rel atas, ditentukan bahwa itu telah memasuki bagian atas Bollinger Band dan harus dipertimbangkan keluar. Ketika harga penutupan lebih tinggi dari harga pembukaan dan jarak antara rel atas dan bawah melebihi 2 kali garis tengah, dinilai bahwa volatilitas telah meningkat, dan keluar juga harus dipertimbangkan.

Analisis Keuntungan

  1. Kombinasi penilaian double rail meningkatkan akurasi sinyal. Kombinasi harga penutupan dan harga pembukaan dapat menyaring beberapa sinyal palsu.

  2. Jangkauan volatilitas dihitung berdasarkan standar deviasi, secara otomatis beradaptasi dengan perubahan pasar.

  3. Dikombinasikan dengan penilaian tren garis tengah untuk menghindari kejutan berulang di pasar tanpa tren.

  4. Gunakan terobosan rel tengah untuk menentukan titik pembalikan tren.

Analisis Risiko

  1. Strategi operasi jangka menengah tidak cocok untuk kepemilikan jangka panjang.

  2. Bollinger Band hanya berlaku dalam jangka waktu tertentu. Pengaturan parameter yang tidak benar dapat dengan mudah menghasilkan sinyal palsu.

  3. Dalam pasar yang terikat kisaran, garis tengah berfluktuasi sangat besar, dan pemicu alternatif rel atas dan bawah mungkin lebih sering.

Arahan Optimasi

  1. Mengatur parameter untuk beradaptasi dengan siklus waktu yang lebih lama. Metode seperti meningkatkan panjang siklus dan menggunakan rata-rata bergerak eksponensial dapat mengoptimalkan algoritma rel tengah.

  2. Tambahkan indikator volatilitas seperti ATR untuk lebih menghindari terobosan palsu. Nilai ATR yang sudah dibangun dapat ditetapkan sebagai kondisi penyaringan, dan sinyal perdagangan hanya dihasilkan ketika volatilitas melebihi kisaran tertentu.

  3. Menggabungkan indikator lain untuk mencapai efek filter Barry. Misalnya, tambahkan aturan penilaian volume transaksi, hanya beroperasi ketika volume transaksi berkembang.

Ringkasan

Strategi zona berulang Bollinger Bands secara otomatis mengidentifikasi ekstrem potensial di pasar untuk mendefinisikan saluran harga sebagai peluang perdagangan potensial. Ini sangat cocok untuk menangkap pembalikan harga jangka menengah dan dapat melengkapi strategi pelacakan tren. Melalui optimalisasi yang wajar, risiko dapat dikendalikan secara efektif dan profitabilitas ditingkatkan.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Strategy", shorttitle="BB", overlay=true)

length = input.int(55, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1., minval=0.001, maxval=50, title="StdDev")

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Entry conditions
enterCondition = (close > lower and open < lower and close > open) or (close > upper and open < upper and close > open)

// Exit conditions
exitCondition = (close < upper and open > upper) or (close > open and (upper - lower) > 2 * basis) or (close < lower)

strategy.entry("Long", strategy.long, when=enterCondition)
strategy.close("Long", when=exitCondition)

// Plotting
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))


Lebih banyak