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.
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.
Keuntungan dari strategi ini adalah:
Menggunakan Bollinger Bands untuk menentukan arah tren dan menangkap breakout. indikator ini sederhana dan efektif.
Periksa tubuh dan band tengah untuk menentukan validitas breakout, menghindari kerugian dari breakout palsu.
Gunakan stop loss untuk mengunci keuntungan dan mengontrol risiko.
Gunakan piramida untuk mencapai pengembalian yang lebih tinggi dalam gerakan tren.
Logika yang jelas dan mudah dimengerti.
Risiko dari strategi ini meliputi:
Breakout Bollinger Bands tidak dapat sepenuhnya menghindari breakout palsu, beberapa kerugian mungkin terjadi.
Penempatan stop loss yang tidak tepat dapat menyebabkan stop out prematur atau gagal membatasi kerugian.
Waktu dan ukuran piramida yang berlebihan dapat menyebabkan kerugian yang diperkuat.
Kegagalan untuk berhenti tepat waktu ketika tren berbalik dapat menyebabkan penarikan besar.
Optimasi parameter yang tidak cukup dapat menyebabkan kinerja yang kurang baik.
Risiko overfitting membutuhkan validasi di pasar yang berbeda.
Strategi dapat ditingkatkan dari aspek berikut:
Uji dan optimalkan parameter Bollinger Bands untuk menemukan kombinasi yang lebih baik.
Uji strategi stop loss yang berbeda dan optimalkan penempatan stop loss.
Uji dan temukan waktu dan ukuran piramida yang optimal.
Tambahkan filter tren untuk menghindari piramida melawan tren.
Mengoptimalkan logika tubuh untuk mengurangi kebocoran palsu.
Tambahkan perintah bersyarat untuk memanfaatkan set parameter yang berbeda berdasarkan kondisi pasar.
Melakukan lebih banyak tes backtest di berbagai produk dan kerangka waktu untuk meningkatkan ketahanan.
Menggunakan pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.
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()