Strategi Bollinger Breakout

Penulis:ChaoZhang, Tanggal: 2023-11-13 10:19:43
Tag:

img

Gambaran umum

Ini adalah strategi breakout berdasarkan indikator Bollinger Bands. Ini memanfaatkan band atas dan bawah Bollinger Bands untuk menghasilkan sinyal breakout untuk masuk dan keluar. Strategi ini juga menggabungkan trailing stop loss dan mekanisme piramida untuk mencapai pengembalian yang lebih tinggi di pasar tren.

Logika Strategi

Strategi ini pertama-tama menghitung band tengah, band atas dan band bawah Bollinger Bands. Band tengah adalah rata-rata pergerakan harga, sedangkan band atas dan bawah adalah band tengah +/- satu standar deviasi.

Ketika harga pecah di atas band bawah, sinyal panjang dihasilkan. Ketika harga pecah di bawah band atas, sinyal pendek dihasilkan. Ini menunjukkan harga sedang keluar dari kisaran Bollinger Bands dan dapat memasuki pergerakan tren.

Selain itu, strategi memeriksa untuk penembusan tubuh. Jika penutupan lebih tinggi dari terbuka dan tubuh menembus pita tengah dengan persentase tertentu, itu akan meratakan posisi. Jika dekat lebih rendah dari terbuka dan tubuh menembus pita tengah dengan persentase tertentu, itu juga akan meratakan posisi. Ini menghindari kerugian dari penembusan palsu.

Setelah memasuki posisi, strategi dapat mengikuti stop loss dan piramida. Jika harga terus bergerak ke arah yang menguntungkan, ukuran posisi dapat ditingkatkan untuk meningkatkan potensi keuntungan. Jika harga terbalik, stop loss digunakan untuk mengendalikan risiko.

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Menggunakan Bollinger Bands untuk menentukan arah tren dan menangkap breakout. indikator ini sederhana dan efektif.

  2. Periksa tubuh dan band tengah untuk menentukan validitas breakout, menghindari kerugian dari breakout palsu.

  3. Gunakan stop loss untuk mengunci keuntungan dan mengontrol risiko.

  4. Gunakan piramida untuk mencapai pengembalian yang lebih tinggi dalam gerakan tren.

  5. Logika yang jelas dan mudah dimengerti.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Breakout Bollinger Bands tidak dapat sepenuhnya menghindari breakout palsu, beberapa kerugian mungkin terjadi.

  2. Penempatan stop loss yang tidak tepat dapat menyebabkan stop out prematur atau gagal membatasi kerugian.

  3. Waktu dan ukuran piramida yang berlebihan dapat menyebabkan kerugian yang diperkuat.

  4. Kegagalan untuk berhenti tepat waktu ketika tren berbalik dapat menyebabkan penarikan besar.

  5. Optimasi parameter yang tidak cukup dapat menyebabkan kinerja yang kurang baik.

  6. Risiko overfitting membutuhkan validasi di pasar yang berbeda.

Arahan Optimasi

Strategi dapat ditingkatkan dari aspek berikut:

  1. Uji dan optimalkan parameter Bollinger Bands untuk menemukan kombinasi yang lebih baik.

  2. Uji strategi stop loss yang berbeda dan optimalkan penempatan stop loss.

  3. Uji dan temukan waktu dan ukuran piramida yang optimal.

  4. Tambahkan filter tren untuk menghindari piramida melawan tren.

  5. Mengoptimalkan logika tubuh untuk mengurangi kebocoran palsu.

  6. Tambahkan perintah bersyarat untuk memanfaatkan set parameter yang berbeda berdasarkan kondisi pasar.

  7. Melakukan lebih banyak tes backtest di berbagai produk dan kerangka waktu untuk meningkatkan ketahanan.

  8. Menggunakan pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.

Kesimpulan

Singkatnya, strategi ini menggunakan Bollinger Bands untuk menentukan arah tren dan menangkap breakout, dengan stop loss tambahan, piramida dan fungsi lain untuk mencapai hasil yang baik.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Bollinger Strategy v1.1", shorttitle = "Bollinger str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

showbands = input(true, defval = true, title = "Show Bollinger Bands")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
up = close <= lower
dn = close >= upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

Lebih banyak