Strategi breakout berbasis Bollinger Bands


Tanggal Pembuatan: 2023-11-13 10:19:43 Akhirnya memodifikasi: 2023-11-13 10:19:43
menyalin: 2 Jumlah klik: 626
1
fokus pada
1617
Pengikut

Strategi breakout berbasis Bollinger Bands

Ringkasan

Strategi ini adalah strategi penembusan yang didasarkan pada indikator Bollinger Bands, menggunakan sinyal penembusan Provide yang berada di bawah Bollinger Bands untuk melakukan operasi beli dan jual. Strategi ini memiliki mekanisme stop loss dan kenaikan posisi yang dapat menghasilkan keuntungan yang lebih tinggi dalam situasi tren.

Prinsip Strategi

Strategi ini pertama-tama menghitung rel tengah, rel atas, dan rel bawah di Brin Belt. rel tengah adalah rata-rata pergerakan harga, dengan rel atas dan bawah masing-masing satu standar perbedaan di atas dan di bawah rel tengah.

Ketika harga di atas melewati rel bawah, menghasilkan sinyal beli; Ketika harga di bawah melewati rel, menghasilkan sinyal jual. Ini berarti harga menembus batas Brin dan mungkin masuk ke dalam tren.

Selain itu, strategi ini juga menilai entitas yang melanggar, jika harga penutupan lebih tinggi dari harga bukaan, dan entitas yang menembus relung dalam proporsi tertentu, maka posisi yang aman; jika harga penutupan lebih rendah dari harga bukaan, dan entitas yang menembus relung dalam proporsi tertentu, maka posisi yang aman. Ini dapat menghindari kerugian yang disebabkan oleh pelanggaran palsu.

Setelah membuka posisi, strategi ini dapat melakukan operasi stop loss dan kenaikan posisi. Jika harga terus berjalan ke arah yang menguntungkan, posisi dapat ditingkatkan, meningkatkan potensi keuntungan. Jika harga berbalik, kontrol risiko dengan stop loss.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Indikator teknik ini sederhana dan efektif, menggunakan indikator Brin Belt untuk menentukan arah tren dan terobosan.

  2. Pengertian reliabilitas penembusan yang digabungkan dengan entitas dan orbit tengah, dapat menghindari kerugian akibat penembusan palsu.

  3. Menggunakan tracking stop loss untuk mengontrol risiko, dapat mengunci keuntungan.

  4. Dengan menggunakan metode penambahan saham, Anda bisa mendapatkan keuntungan yang lebih tinggi dalam situasi yang sedang tren.

  5. Logika kebijakan jelas dan mudah dipahami, pengaturan parameter sederhana dan mudah diterapkan.

Analisis risiko

Strategi ini juga memiliki risiko sebagai berikut:

  1. Penembusan Brin Belt tidak dapat sepenuhnya menghindari penembusan palsu, dan masih ada risiko kerugian tertentu.

  2. Stop loss yang tidak tepat dapat menyebabkan stop loss prematur atau tidak efektif.

  3. Penetapan yang tidak tepat pada jumlah dan rasio penambahan saham dapat menyebabkan kerugian yang lebih besar.

  4. Jika tidak bisa menghentikan kerugian dalam waktu yang tepat, kemungkinan besar akan menyebabkan kerugian yang lebih besar.

  5. Optimasi parameter yang tidak memadai dapat menyebabkan strategi yang tidak efektif.

  6. Ada risiko penyesuaian yang perlu diverifikasi di pasar yang berbeda.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Untuk menguji dan mengoptimalkan parameter Brin untuk menemukan kombinasi parameter yang lebih sesuai.

  2. Uji strategi stop loss yang berbeda untuk menetapkan titik stop loss yang lebih tepat.

  3. Tes jumlah dan rasio penambahan untuk menemukan parameter optimal.

  4. Meningkatkan indikator penilaian tren, menghindari kenaikan posisi yang berlawanan.

  5. Optimalkan logika penilaian penembusan entitas, mengurangi probabilitas penembusan palsu.

  6. Menambahkan fungsi tunggal kondisi, menggunakan kombinasi parameter yang berbeda sesuai dengan situasi pasar yang berbeda.

  7. Dengan melakukan pengujian ulang pada lebih banyak varietas dan periode waktu yang berbeda, stabilitas meningkat.

  8. Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.

Meringkaskan

Secara keseluruhan, strategi ini menggunakan indikator Brin untuk menentukan arah tren dan sinyal terobosan, dan dilengkapi dengan fitur seperti stop loss, penambahan posisi, dan lain-lain, dapat mendapatkan hasil yang lebih baik. Namun, ada juga risiko tertentu, perlu dilakukan perbaikan dengan cara mengoptimalkan parameter, menambahkan penilaian kondisional, dan lain-lain, untuk membuat strategi lebih stabil dan dapat diandalkan.

Kode Sumber Strategi
/*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()