Bollinger Bands Breakout Reentry Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2024-03-08 14:08:53
Tag:

img

Ringkasan

Strategi ini adalah berdasarkan kepada penunjuk Bollinger Bands. Idea utama adalah untuk menunggu harga untuk memasuki semula Bollinger Bands selepas pecah dari band atas atau bawah, dan kemudian menubuhkan kedudukan dalam arah yang sama dengan pecah di titik kemasukan semula. Strategi ini mengambil kesempatan daripada ciri bahawa harga sering berbalik apabila mereka berada di kawasan yang melampau. Dengan menggabungkan keadaan pecah Bollinger Band dan kemasukan semula, ia bertujuan untuk menangkap titik perubahan pasaran dan mencapai kadar kemenangan yang lebih tinggi.

Prinsip Strategi

  1. Hitung jalur tengah, atas, dan bawah Bollinger Bands. jalur tengah adalah purata bergerak, dan jalur atas dan bawah adalah jalur tengah ditambah atau dikurangkan bilangan penyimpangan piawai tertentu.
  2. Tentukan sama ada harga keluar dari Bollinger Band atas atau bawah. Jika harga penutupan melebihi band atas, ia dianggap pecah ke atas; jika harga penutupan jatuh di bawah band bawah, ia dianggap pecah ke bawah.
  3. Jika penembusan ke atas berlaku, catat harga tertinggi lilin penembusan itu sebagai puncak. Jika penembusan ke bawah berlaku, catat harga terendah lilin penembusan itu sebagai puncak. Puncak digunakan untuk menentukan sama ada harga telah memasuki semula kemudian.
  4. Selepas pecah berlaku, tunggu harga memasuki semula dalam Bollinger Bands. Jika harga penutupan adalah antara band atas dan bawah pada masa ini, harga dianggap telah memasuki semula.
  5. Apabila harga memasuki semula, jika lilin sebelumnya adalah pecah ke atas (break_up [1] dan ke dalam), pergi panjang; jika lilin sebelumnya adalah pecah ke bawah (break_down [1] dan ke dalam), pergi pendek.
  6. Pengurusan kedudukan: Jika dalam kedudukan panjang dan harga penutupan melintasi di atas jalur tengah, tutup kedudukan panjang; jika dalam kedudukan pendek dan harga penutupan melintasi di bawah jalur tengah, tutup kedudukan pendek.

Analisis Kelebihan

  1. Bollinger Bands mempunyai daya adaptasi yang kuat dan boleh menyesuaikan secara dinamik mengikut turun naik harga, yang membantu untuk menangkap trend dan turun naik.
  2. Berbanding dengan strategi breakout Bollinger Band yang mudah, menambah syarat kemasukan semula dapat mengelakkan mengejar paras tertinggi dan menjual paras terendah hingga tahap tertentu dan meningkatkan kualiti kemasukan.
  3. Keadaan keluar menggunakan jalur tengah sebagai rujukan, yang mudah dan mudah digunakan, dan boleh melindungi keuntungan dengan agak baik.
  4. Parameter Bollinger Bands, seperti panjang dan pengganda penyimpangan, boleh disesuaikan, memberikan fleksibiliti yang tinggi.

Analisis Risiko

  1. Pemilihan yang tidak betul parameter Bollinger Band boleh menyebabkan entri awal atau lewat, mempengaruhi prestasi strategi. Ini boleh dikurangkan dengan mengoptimumkan parameter.
  2. Apabila harga berayun berhampiran Bollinger Bands, pembukaan dan penutupan kedudukan yang kerap boleh berlaku, mengakibatkan peningkatan kos transaksi.
  3. Jika trend sangat kuat dan harga tidak memasuki semula Bollinger Bands untuk masa yang lama, keuntungan trend mungkin terlepas.
  4. Menggunakan penunjuk Bollinger Band sahaja mungkin tidak berkesan untuk beberapa instrumen atau keadaan pasaran, dan mungkin perlu digunakan bersama-sama dengan isyarat lain.

Arahan pengoptimuman

  1. Pertimbangkan untuk memperkenalkan lebih banyak syarat penapisan. Sebagai contoh, penembusan mungkin lebih boleh dipercayai jika harga telah berjalan di atas Bollinger Bands untuk tempoh masa, atau menggunakan penunjuk penentuan trend seperti sudut MA dan ADX untuk bantuan.
  2. Untuk pasaran berayun, pesanan had dan pemasa boleh ditambah untuk mengelakkan kemasukan buta.
  3. Untuk keluar, ATR atau purata bergerak boleh digabungkan lagi untuk mengawal masa keluar.
  4. Melakukan pengoptimuman parameter dan analisis ciri untuk aset asas dan jangka masa yang berbeza untuk memilih sasaran perdagangan dan jangka masa yang sesuai.
  5. Pertimbangkan untuk menambah pengurusan kedudukan, seperti meningkatkan saiz kedudukan apabila turun naik berkurangan dan mengurangkan saiz kedudukan apabila turun naik berkembang.

Ringkasan

Bollinger Bands Breakout Reentry Trading Strategy adalah strategi perdagangan kuantitatif yang mudah dan praktikal. Ia menggunakan tindak balas harga terhadap situasi yang melampau dan membina keadaan kemasukan dan keluar melalui alat Bollinger Bands, yang dapat menangkap titik permulaan dan akhir trend ke tahap tertentu dan mengawal perdagangan yang kerap. Pada masa yang sama, strategi ini juga mempunyai masalah seperti pemilihan parameter, prestasi yang buruk di pasaran berayun, dan penangkapan trend yang tidak mencukupi. Melalui pengoptimuman butiran dan kombinasi dengan isyarat lain, diharapkan untuk meningkatkan lagi daya adaptasi dan ketahanan strategi ini.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-27 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true)
length = input.int(20, 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.7, 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
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))

break_up = close > upper
break_down = close < lower
inside = close > lower and close < upper

sell_condition = break_up[1] and inside
buy_condition = break_down[1] and inside

// Conditions to close trades
close_sell_condition = close > basis
close_buy_condition = close < basis

trade_condition = sell_condition or buy_condition

// Tracking the high of the breakout candle
var float peak = na

if (not trade_condition)
    peak := close
if (break_up and peak < high)
    peak := high
if (break_down and peak > low)
    peak := low

// Entering positions
if (buy_condition)
    strategy.entry("Buy", strategy.long)
if (sell_condition)
    strategy.entry("Sell", strategy.short)

// Exiting positions when close crosses the basis
if (strategy.position_size > 0 and close_sell_condition) // If in a long position and close crosses above basis
    strategy.close("Buy")
if (strategy.position_size < 0 and close_buy_condition) // If in a short position and close crosses below basis
    strategy.close("Sell")

Lebih lanjut