Ini adalah strategi trend berikut berdasarkan Bollinger Bands. Ia menggunakan Bollinger Bands untuk mengira saluran harga dan menggabungkan corak lilin untuk menentukan arah trend. Posisi panjang / pendek akan dibuka apabila harga keluar dari Bollinger Bands. Strategi ini berfungsi dengan baik untuk saham dengan trend yang jelas dan bertujuan untuk menangkap keuntungan trend jangka menengah.
Strategi ini menggunakan band atas, band tengah dan band bawah Bollinger Bands untuk menentukan julat harga. Band atas dan bawah meliputi pergerakan harga manakala band tengah adalah purata bergerak. Lebar band berubah berdasarkan turun naik harga. Apabila harga pecah di atas band atas, ia menandakan pecah ke atas dan kemasukan panjang. Apabila harga pecah di bawah band bawah, ia menandakan pecah ke bawah dan kemasukan pendek.
Setelah menentukan arah trend dengan penembusan Bollinger Bands, strategi ini juga mengesahkannya dengan corak lilin. Jika badan lilin sejajar dengan trend, seperti lilin bullish dalam trend menaik, kedudukan akan dibuka. Jika badan lilin menunjukkan corak terbalik, seperti lilin bearish dalam trend menaik, isyarat akan diabaikan. Reka bentuk ini bertujuan untuk mengelakkan risiko penembusan palsu.
Peraturan isyarat perdagangan terperinci adalah:
Mengira band atas, pertengahan dan bawah Bollinger Bands untuk menentukan julat harga
Apabila harga pecah di atas barisan atas, ia menandakan trend menaik / panjang
Jika candlestick adalah bullish, mengesahkan trend dan pergi lama
Apabila harga pecah di bawah jalur bawah, ia menandakan trend menurun / pendek
Jika candlestick adalah bearish, mengesahkan trend dan pergi pendek
Tetapkan stop loss dan ambil keuntungan berdasarkan peratusan
Dengan masuk ke breakout Bollinger Bands dan mengesahkan dengan lilin, strategi ini dapat mengenal pasti arah trend dengan berkesan dan mendapatkan entri yang baik semasa peringkat awal trend.
Ini adalah trend tipikal mengikut strategi dengan kekuatan berikut:
Bollinger Bands adalah adaptif dan boleh menyesuaikan julat untuk stok dengan turun naik yang berbeza
Pengesahan candlestick menapis keluar breakout palsu
Penyelenggaraan jangka pertengahan mengurangkan kekerapan dagangan dan mengurangkan kos/gelinciran
Mengesan trend jangka menengah mengelakkan bunyi jangka pendek dan memberikan risiko-balasan yang baik
Hasil backtest kuat dan perdagangan sebenar stabil kerana sistemisasi
Logik strategi jelas dan mudah difahami, dengan ruang untuk penambahbaikan
Dengan menentukan trend dengan Bollinger Bands dan memasuki pengesahan lilin, strategi ini berkesan menangkap momentum jangka menengah yang didorong oleh jumlah.
Terdapat juga beberapa risiko yang perlu diperhatikan untuk strategi ini:
Risiko kegagalan. Penembusan Bollinger Bands mempunyai sifat probabilistik dan pecah palsu berlaku
Risiko pembalikan. Trend jangka menengah juga boleh berbalik, hentian yang munasabah harus ditetapkan
Risiko pengoptimuman parameter. Parameter dan hentian Bollinger Bands perlu disesuaikan untuk saham yang berbeza
Risiko overfitting. pengoptimuman parameter yang berlebihan menyebabkan pemasangan lengkung
Risiko pelaksanaan: Perbezaan wujud antara backtest dan perdagangan sebenar
Untuk menangani risiko ini, penambahbaikan berikut boleh dibuat:
Mengoptimumkan Bollinger Bands parameter dan lebar untuk lebih sesuai
Tambah lebih banyak faktor seperti jumlah untuk mengesahkan trend
Gunakan hentian dinamik untuk mengelakkan kerugian besar pada pembalikan
Mempakai analisis berjalan ke hadapan untuk mengelakkan overfitting
Meningkatkan pelaksanaan pesanan untuk meningkatkan kecekapan dagangan sebenar
Strategi ini boleh ditingkatkan lagi dalam aspek berikut:
Tambah lebih banyak penunjuk seperti KDJ, MACD untuk mengesahkan isyarat dan meningkatkan ketepatan
Gunakan pembelajaran mesin untuk mengoptimumkan parameter secara dinamik dan bukannya nilai tetap
Tetapkan zon harga di sekitar titik pecah untuk menjana isyarat yang lebih tepat
Mengoptimumkan keluar dengan berhenti belakang atau mengambil keuntungan separa
Memperkenalkan saiz kedudukan untuk pengurusan risiko yang lebih baik
Menggunakan jenis perintah lanjutan untuk meningkatkan hasil pelaksanaan
Tambah penapis rejim pasaran untuk mematikan strategi dalam persekitaran tertentu
Dengan memperkenalkan lebih banyak teknik dan pengoptimuman, kestabilan dan keuntungan strategi ini dapat ditingkatkan lagi untuk hasil backtest dan perdagangan sebenar yang lebih baik.
Ini adalah strategi trend berikut yang biasa yang menggunakan Bollinger Bands sebagai julat dinamik untuk menentukan arah trend. Pengesahan candlestick memberikan isyarat kemasukan yang tepat. Masukan dibuat pada peringkat awal trend dengan matlamat menunggang momentum jangka menengah.
Kelebihan strategi ini termasuk menggunakan Bollinger Bands untuk trend, lilin untuk pengesahan kemasukan, kekerapan perdagangan yang rendah, dan sistemisasi yang mudah. Ia juga mempunyai risiko seperti pecah palsu, kesukaran pengoptimuman stop loss, dan perbezaan pelaksanaan. Lebih banyak penunjuk, parameter dinamik, dan pelaksanaan lanjutan dapat meningkatkan kestabilan dan prestasi perdagangan sebenar.
Secara keseluruhannya, sebagai strategi trend berikut, ia mempunyai logika yang jelas dan mudah dilaksanakan dengan daya maju yang kuat. Dengan pengoptimuman berterusan dan kawalan risiko yang ketat, ia boleh menjadi modul yang berkesan dalam sistem perdagangan kuantitatif.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %") needct = input(false, defval = false, title = "Counter-trend entry") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") needbb = input(true, defval = true, title = "Show Bands") needbg = input(true, defval = true, title = "Show Background") src = close //PriceChannel 1 lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Distance dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd1 = center + distsma / 2 ld1 = center - distsma / 2 //Trend trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Body body = abs(close - open) smabody = sma(body, 100) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0 dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0 up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0 dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0 if up7 == 1 or up8 == 1 strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na) if dn7 == 1 or dn8 == 1 strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)