Bollinger Breakout Strategi Stop-Loss

Penulis:ChaoZhang, Tanggal: 2023-10-27 16:50:24
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan berdasarkan indikator Bollinger Bands dan mengelola posisi menggunakan stop-loss / take-profit. Ini memantau perpecahan band atas dan bawah Bollinger Bands, pergi panjang ketika harga melanggar band atas, pergi pendek ketika harga melanggar band bawah, dan keluar ketika harga melanggar band terbalik menggunakan perintah stop-loss.

Logika Strategi

Strategi ini menggunakan band tengah, atas dan bawah dari indikator Bollinger Bands. Band tengah adalah moving average, band atas adalah band tengah ditambah 2 standar deviasi, dan band bawah adalah band tengah dikurangi 2 standar deviasi.

Pertama-tama ia menghitung Bollinger Bands band tengah, atas dan bawah. Kemudian ia memeriksa apakah harga pecah di atas band atas atau di bawah band bawah. Jika harga pecah di atas band atas, itu pergi panjang. Jika harga pecah di bawah band bawah, itu pergi pendek. Juga jika harga memecahkan band kebalik, itu keluar posisi menggunakan perintah stop-loss.

Secara khusus, logika strategi adalah:

  1. Menghitung Bollinger Bands Band tengah, atas dan bawah
  2. Jika harga melanggar band atas, pergi panjang
  3. Jika harga pecah di bawah band bawah, pergi pendek
  4. Jika sudah panjang, tutup panjang ketika harga melanggar band bawah
  5. Jika sudah short, tutup short saat harga menembus band atas

Hal ini memungkinkan menangkap tren ketika harga bergerak besar, sementara membatasi kerugian menggunakan stop-loss.

Keuntungan

  • Menggunakan Bollinger Bands untuk sinyal masuk menangkap tren setelah breakout
  • Sinyal panjang/pendek yang jelas, aturan sederhana
  • Strategi stop-loss membatasi kerugian maksimum per perdagangan
  • Kemampuan pengaturan parameter untuk mengoptimalkan strategi

Risiko

  • Perdagangan stop loss kecil yang sering dapat merugikan P/L keseluruhan
  • Penyesuaian parameter yang buruk dapat menyebabkan terlalu banyak sinyal atau kehilangan perdagangan
  • Hanya mempertimbangkan harga, tidak ada indikator lain untuk konfirmasi
  • Tidak ada penyesuaian stop-loss di dekat breakout dapat meningkatkan kerugian

Dapat mengoptimalkan melalui penggabungan indikator, penyesuaian unit stop loss dll.

Peluang Peningkatan

  • Menggabungkan indikator lain seperti volume, moving average untuk mengkonfirmasi sinyal
  • Mengoptimalkan parameter Bollinger untuk pasar yang berbeda
  • Sesuaikan jarak stop-loss dekat breakout untuk menghindari sensitivitas yang berlebihan
  • Perdagangan hanya setelah tren berkembang, seperti aturan Turtle Trading
  • Otomatis mengoptimalkan parameter melalui algoritma pembelajaran mesin

Kesimpulan

Ini adalah tren yang relatif sederhana mengikuti strategi berdasarkan Bollinger Bands. Ini dapat dengan cepat mengambil posisi ketika harga pecah dan menggunakan stop-loss untuk mengendalikan risiko. Tetapi hanya mengandalkan harga dapat menyebabkan penilaian yang salah, sementara stop-loss sensitif dapat meningkatkan frekuensi perdagangan. Kita dapat lebih memperbaikinya melalui penyesuaian parameter, menggabungkan indikator, menyesuaikan stop dll. Secara keseluruhan, ini memberikan kerangka perdagangan kuantitatif yang sederhana dan andal.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ROBO_Trading

//@version=5
strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1)

//Settings
long = input(true)
short = input(true)
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
source = input(close)
showbb = input(true, title = "Show Bollinger Bands")
showof = input(true, title = "Show Offset")
startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1")
finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1")

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

//Show indicator
offset = showof ? 1 : 0
colorBasis = showbb ? color.gray : na
colorUpper = showbb ? color.blue : na
colorLower = showbb ? color.blue : na
colorBands = showbb ? color.blue : na
p0 = plot(basis, "Basis", color = colorBasis, offset = offset)
p1 = plot(upper, "Upper", color = colorUpper, offset = offset)
p2 = plot(lower, "Lower", color = colorLower, offset = offset)
fill(p1, p2, title = "Background", color = colorBands, transp = 90)

//Trading
truetime = true
if basis > 0 and truetime
    if long
        strategy.entry("Long", strategy.long, stop = upper, when = truetime)
    if short
        strategy.entry("Short", strategy.short, stop = lower, when = truetime)
    if long == false
        strategy.exit("Exit", "Short", stop = upper)
    if short == false
        strategy.exit("Exit", "Long", stop = lower)
if time > finalTime
    strategy.close_all()

Lebih banyak