Bollinger Breakout Stop-Loss Strategi

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

img

Ringkasan

Strategi ini menjana isyarat perdagangan berdasarkan penunjuk Bollinger Bands dan menguruskan kedudukan menggunakan stop-loss / take-profit. Ia memantau pecahnya band atas dan bawah Bollinger Bands, pergi lama apabila harga memecahkan band atas, pergi pendek apabila harga memecahkan band bawah, dan keluar apabila harga memecahkan band ke belakang menggunakan pesanan stop-loss.

Logika Strategi

Strategi ini menggunakan band tengah, atas dan bawah dari penunjuk Bollinger Bands. Band tengah adalah purata bergerak, band atas adalah band tengah ditambah 2 penyimpangan standard, dan band bawah adalah band tengah dikurangkan 2 penyimpangan standard.

Pertama ia mengira Bollinger Bands tengah, atas dan bawah band. Kemudian ia memeriksa sama ada harga pecah di atas band atas atau di bawah band bawah. Jika harga pecah di atas band atas, ia pergi panjang. Jika harga pecah di bawah band bawah, ia pergi pendek. Juga jika harga memecahkan band terbalik, ia keluar kedudukan menggunakan perintah stop-loss.

Secara khusus, logik strategi adalah:

  1. Mengira Bollinger Bands tengah, atas dan bawah band
  2. Jika harga pecah di atas barisan atas, pergi panjang
  3. Jika harga pecah di bawah barisan bawah, pergi pendek
  4. Jika sudah lama, tutup lama apabila harga pecah di bawah band bawah
  5. Jika sudah pendek, tutup pendek apabila harga melanggar band atas

Ini membolehkan menangkap trend apabila harga membuat pergerakan besar, sambil mengehadkan kerugian menggunakan stop-loss.

Kelebihan

  • Menggunakan Bollinger Bands untuk isyarat kemasukan menangkap trend selepas pecah
  • Isyarat panjang/pendek yang jelas, peraturan mudah
  • Strategi stop-loss mengehadkan kerugian maksimum setiap dagangan
  • Kemudahan parameter untuk mengoptimumkan strategi

Risiko

  • Perdagangan stop-loss kecil yang kerap boleh menjejaskan keseluruhan P/L
  • Penyesuaian parameter yang buruk boleh menyebabkan terlalu banyak isyarat atau perdagangan yang terlepas
  • Hanya mempertimbangkan harga, tiada penunjuk lain untuk pengesahan
  • Tidak ada penyesuaian stop-loss berhampiran penembusan boleh meningkatkan kerugian

Boleh mengoptimumkan melalui menggabungkan penunjuk, menyesuaikan unit stop-loss dan lain-lain.

Peluang Peningkatan

  • Gabungkan penunjuk lain seperti jumlah, purata bergerak untuk mengesahkan isyarat
  • Mengoptimumkan parameter Bollinger untuk pasaran yang berbeza
  • Sesuaikan jarak stop-loss berhampiran pecah untuk mengelakkan sensitiviti berlebihan
  • Perdagangan hanya selepas trend berkembang, seperti peraturan Turtle Trading
  • Mengoptimumkan parameter secara automatik melalui algoritma pembelajaran mesin

Kesimpulan

Ini adalah trend yang agak mudah mengikuti strategi berdasarkan Bollinger Bands. Ia boleh mengambil kedudukan dengan cepat apabila harga pecah dan menggunakan stop-loss untuk mengawal risiko. Tetapi bergantung hanya pada harga boleh menyebabkan salah menilai, sementara stop-loss sensitif boleh meningkatkan kekerapan perdagangan. Kita boleh meningkatkannya melalui penyesuaian parameter, menggabungkan penunjuk, menyesuaikan berhenti dll. Secara keseluruhan ia menyediakan kerangka perdagangan kuant yang mudah dan boleh dipercayai.


/*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 lanjut