Strategi Trend Breakout Berdasarkan Bollinger Bands

Penulis:ChaoZhang, Tanggal: 2023-11-16 16:24:12
Tag:

img

Gambaran umum

Ini adalah strategi trend following berdasarkan Bollinger Bands. Ini menggunakan Bollinger Bands untuk menghitung saluran harga dan menggabungkan pola lilin untuk menentukan arah tren. Posisi panjang / pendek akan dibuka ketika harga keluar dari Bollinger Bands. Strategi ini bekerja dengan baik untuk saham dengan tren yang jelas dan bertujuan untuk menangkap keuntungan tren jangka menengah.

Logika Strategi

Strategi ini menggunakan band atas, band tengah dan band bawah Bollinger Bands untuk menentukan rentang harga. Band atas dan bawah menyelipkan pergerakan harga sementara band tengah adalah moving average. Lebar band berubah berdasarkan volatilitas harga. Ketika harga pecah di atas band atas, itu menandakan terobosan ke atas dan entri panjang. Ketika harga pecah di bawah band bawah, itu menandakan terobosan ke bawah dan entri pendek.

Setelah menentukan arah tren dengan breakout Bollinger Bands, strategi juga mengkonfirmasi dengan pola lilin. Jika tubuh lilin sejajar dengan tren, seperti lilin bullish dalam tren naik, posisi akan dibuka. Jika tubuh lilin menunjukkan pola terbalik, seperti lilin bearish dalam tren naik, sinyal akan diabaikan. Desain ini bertujuan untuk menghindari risiko breakout palsu.

Peraturan perdagangan sinyal yang terperinci adalah:

  1. Menghitung band atas, band tengah dan band bawah Bollinger Bands untuk menentukan kisaran harga

  2. Ketika harga menembus band atas, itu menandakan tren naik / panjang

  3. Jika candlestick bullish, konfirmasi tren dan pergi panjang

  4. Ketika harga pecah di bawah band bawah, itu menandakan tren menurun/pendek

  5. Jika candlestick bearish, konfirmasi tren dan pergi pendek

  6. Setel stop loss dan ambil keuntungan berdasarkan persentase

Dengan masuk ke Bollinger Bands breakouts dan mengkonfirmasi dengan candlesticks, strategi ini dapat secara efektif mengidentifikasi arah tren dan mendapatkan entri yang baik selama tahap awal tren.

Analisis Keuntungan

Ini adalah tren khas yang mengikuti strategi dengan kekuatan berikut:

  1. Bollinger Bands bersifat adaptif dan dapat menyesuaikan rentang untuk saham dengan volatilitas yang berbeda

  2. Konfirmasi candlestick menyaring keluar breakout palsu

  3. Holding jangka menengah mengurangi frekuensi perdagangan dan mengurangi biaya/slip

  4. Menangkap tren jangka menengah menghindari kebisingan jangka pendek dan memberikan risiko-balasan yang baik

  5. Hasil backtest kuat dan perdagangan nyata stabil karena sistemisasi

  6. Logika strategi jelas dan mudah dimengerti, dengan ruang untuk peningkatan

Dengan menentukan tren dengan Bollinger Bands dan masuk pada konfirmasi candlestick, strategi ini secara efektif menangkap momentum jangka menengah yang didorong oleh volume.

Analisis Risiko

Ada juga beberapa risiko yang harus diperhatikan untuk strategi ini:

  1. Risiko gagal breakout. Breaking Bollinger Bands memiliki sifat probabilistik dan breakout palsu terjadi

  2. Risiko pembalikan. Tren jangka menengah juga dapat berbalik, halte yang wajar harus ditetapkan

  3. Risiko optimasi parameter. parameter Bollinger Bands dan stop perlu disetel untuk saham yang berbeda

  4. Risiko overfitting. optimasi parameter yang berlebihan menyebabkan kurva fitting

  5. Risiko pelaksanaan: Perbedaan antara backtest dan perdagangan nyata

Untuk mengatasi risiko ini, perbaikan berikut dapat dilakukan:

  1. Mengoptimalkan Bollinger Bands parameter dan lebar untuk lebih cocok

  2. Tambahkan lebih banyak faktor seperti volume untuk mengkonfirmasi tren

  3. Menggunakan berhenti dinamis untuk mencegah kerugian besar pada pembalikan

  4. Menerapkan analisis berjalan ke depan untuk menghindari overfitting

  5. Meningkatkan pelaksanaan order untuk meningkatkan efisiensi perdagangan nyata

Arahan Optimasi

Strategi ini dapat ditingkatkan lebih lanjut dalam aspek berikut:

  1. Tambahkan lebih banyak indikator seperti KDJ, MACD untuk mengkonfirmasi sinyal dan meningkatkan akurasi

  2. Gunakan pembelajaran mesin untuk mengoptimalkan parameter secara dinamis daripada nilai tetap

  3. Tetapkan zona harga di sekitar titik pecah untuk menghasilkan sinyal yang lebih tepat

  4. Mengoptimalkan keluar dengan trailing berhenti atau mengambil keuntungan parsial

  5. Memperkenalkan ukuran posisi untuk manajemen risiko yang lebih baik

  6. Menggunakan jenis perintah lanjutan untuk meningkatkan hasil eksekusi

  7. Tambahkan filter rezim pasar untuk mematikan strategi di lingkungan tertentu

Dengan memperkenalkan lebih banyak teknik dan optimasi, stabilitas dan profitabilitas strategi ini dapat ditingkatkan lebih lanjut untuk hasil backtest dan perdagangan nyata yang lebih baik.

Kesimpulan

Ini adalah strategi trend berikut yang menggunakan Bollinger Bands sebagai rentang dinamis untuk menentukan arah tren. Konfirmasi candlestick memberikan sinyal masuk yang tepat. Entri dibuat pada tahap awal tren dengan tujuan mengendarai momentum jangka menengah.

Keuntungan dari strategi ini termasuk menggunakan Bollinger Bands untuk tren, lilin untuk konfirmasi masuk, frekuensi perdagangan yang rendah, dan sistemisasi yang mudah. Ini juga memiliki risiko seperti breakout palsu, kesulitan pengoptimalan stop loss, dan divergensi eksekusi. Lebih banyak indikator, parameter dinamis, dan eksekusi lanjutan dapat meningkatkan stabilitas dan kinerja perdagangan nyata.

Secara keseluruhan, sebagai tren yang khas mengikuti strategi, ia memiliki logika yang jelas dan mudah diterapkan dengan kelayakan yang kuat.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = sma(body, 100)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Lebih banyak