Strategi Bollinger Breakout

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

Gambaran umum

Strategi ini didasarkan pada indikator Bollinger Bands, mengambil posisi panjang atau pendek ketika harga keluar dari garis atas atau bawah Bollinger Bands.

Logika Strategi

  1. Menghitung garis tengah Bollinger, garis atas dan bawah
  2. Pergi panjang pada garis bawah breakout; pergi pendek pada garis atas breakout
  3. Atur waktu awal dan akhir untuk menentukan jam perdagangan
  4. Atur waktu tunggu, default untuk keluar intraday

Secara khusus, pertama-tama menghitung SMA garis tengah dari panjang panjang, dan garis atas/bawah dari banyak kali standar deviasi. Ketika close pecah ke atas dari garis bawah, pergi panjang. Ketika close pecah dari garis atas, pergi pendek. Juga atur waktu awal dan akhir untuk membatasi jam perdagangan. Keluar sebelum buka setiap hari.

Strategi ini mencoba untuk menangkap pergerakan ekspansi setelah harga keluar dari band. Mematahkan band bawah menunjukkan penguatan kekuatan bullish, sementara mematahkan band atas berarti memperkuat kekuatan bearish, sehingga perdagangan sesuai dengan breakout menguntungkan.

Analisis Keuntungan

  1. Sederhana dan intuitif, mudah dimengerti dan diterapkan
  2. Menggunakan Bollinger Bands untuk menilai trend breakouts, memiliki beberapa tren berikut kapasitas
  3. Penyesuaian parameter yang fleksibel untuk siklus dan produk yang berbeda
  4. Kontrol keluar intraday risiko overnight
  5. Dapat memungkinkan hanya perdagangan panjang atau pendek

Analisis Risiko

  1. Risiko kebohongan, harga mungkin akan naik kembali setelah kebocoran awal.
  2. Parameter perlu disesuaikan untuk siklus yang berbeda.
  3. Risiko potensi kerugian perluasan. rentang breakout yang lebih besar dapat memperluas kerugian.
  4. Biaya transaksi meningkat. Perdagangan yang sering dapat meningkatkan biaya transaksi.

Risiko dapat dikurangi dengan mengoptimalkan aturan masuk, menambahkan stop loss, memperkenalkan filter tren dll.

Arahan Optimasi

  1. Mengoptimalkan parameter untuk siklus yang berbeda
  2. Tambahkan re-entry dan aturan piramida untuk mengikuti tren
  3. Memperkenalkan stop loss untuk mengendalikan risiko
  4. Atur jam perdagangan untuk menghindari peristiwa berita penting
  5. Uji filter tren untuk menghindari aksi harga bergolak
  6. Mengevaluasi periode penahanan yang berbeda dan membandingkan hasil

Ringkasan

Ini adalah strategi breakout berdasarkan Bollinger Bands. Ini mendapat keuntungan dari gerakan breakout. Pro adalah logika sederhana dan penerapan yang mudah; Kontra adalah kerentanan terhadap breakout palsu. Risiko dapat dikelola melalui optimasi parameter, stop loss, kontrol jam perdagangan dll. Ini memungkinkan pedagang untuk memahami dasar-dasar menggunakan indikator dan breakout perdagangan.


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