Bollinger Breakout Strategi

Penulis:ChaoZhang, Tarikh: 2023-09-21 10:38:13
Tag:

Ringkasan

Strategi ini adalah berdasarkan penunjuk Bollinger Bands, mengambil kedudukan panjang atau pendek apabila harga keluar dari garis atas atau bawah Bollinger Bands.

Logika Strategi

  1. Mengira garis tengah Bollinger, garis atas dan bawah
  2. Pergi panjang pada garis bawah; pergi pendek pada garis atas
  3. Tetapkan waktu permulaan dan akhir untuk menentukan waktu dagangan
  4. Tetapkan masa tunggu, lalai untuk keluar dalam hari

Secara khusus, ia mula-mula mengira garis tengah SMA panjang panjang, dan garis atas/bawah berganda kali penyimpangan standard. Apabila menutup pecah ke atas dari garis bawah, pergi panjang. Apabila menutup pecah dari garis atas, pergi pendek. Juga tetapkan waktu permulaan dan akhir untuk mengehadkan waktu perdagangan. Keluar sebelum dibuka setiap hari.

Strategi ini cuba menangkap pergerakan yang berkembang selepas harga keluar dari band. Mencacah band bawah menunjukkan menguatkan kekuatan bullish, sementara memecahkan band atas bermaksud menguatkan kekuatan bearish, jadi perdagangan selaras dengan pecah adalah menguntungkan.

Analisis Kelebihan

  1. Mudah dan intuitif, mudah difahami dan dilaksanakan
  2. Menggunakan Bollinger Bands untuk menilai trend breakouts, mempunyai beberapa trend berikut keupayaan
  3. Penyesuaian parameter yang fleksibel untuk kitaran dan produk yang berbeza
  4. Pengendalian keluar dalam hari risiko semalam
  5. Boleh membolehkan hanya perdagangan panjang atau pendek

Analisis Risiko

  1. Risiko pecah palsu. harga mungkin kembali selepas pecah awal.
  2. Parameter perlu disesuaikan untuk kitaran yang berbeza.
  3. Risiko peningkatan potensi kerugian. Julat pecah yang lebih besar boleh meningkatkan kerugian.
  4. Peningkatan kos transaksi. Perdagangan yang kerap boleh meningkatkan kos transaksi.

Risiko boleh dikurangkan dengan mengoptimumkan peraturan kemasukan, menambah stop loss, memperkenalkan penapis trend dll.

Arahan pengoptimuman

  1. Mengoptimumkan parameter untuk kitaran yang berbeza
  2. Tambahkan peraturan kemasukan semula dan piramid untuk mengikuti trend
  3. Memperkenalkan stop loss untuk mengawal risiko
  4. Tetapkan waktu dagangan untuk mengelakkan peristiwa berita penting
  5. Uji penapis trend untuk mengelakkan tindakan harga yang bergolak
  6. Menilai tempoh penahan yang berbeza dan membandingkan hasil

Ringkasan

Ini adalah strategi breakout berdasarkan Bollinger Bands. Ia mendapat keuntungan daripada pergerakan breakout. Kelebihan adalah logik yang mudah dan pelaksanaan yang mudah; Kelemahan adalah kerentanan terhadap breakout palsu. Risiko boleh dikendalikan melalui pengoptimuman parameter, stop loss, kawalan jam dagangan dll. Ia membolehkan peniaga memahami asas penggunaan penunjuk dan breakout dagangan.


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

//Noro
//2018

//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", 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, minval=1)
mult = input(1.0, minval=0.001, maxval=50)

fromyear = input(1900, defval = 1900, 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")

source = close
basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)

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

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

Lebih lanjut