Ini adalah strategi trend following berdasarkan Bollinger Bands. Ini menggunakan Bollinger Bands untuk menghitung saluran harga dan menggabungkan pola lilin untuk menentukan arah tren. Posisi panjang / pendek akan dibuka ketika harga keluar dari Bollinger Bands. Strategi ini bekerja dengan baik untuk saham dengan tren yang jelas dan bertujuan untuk menangkap keuntungan tren jangka menengah.
Strategi ini menggunakan band atas, band tengah dan band bawah Bollinger Bands untuk menentukan rentang harga. Band atas dan bawah menyelipkan pergerakan harga sementara band tengah adalah moving average. Lebar band berubah berdasarkan volatilitas harga. Ketika harga pecah di atas band atas, itu menandakan terobosan ke atas dan entri panjang. Ketika harga pecah di bawah band bawah, itu menandakan terobosan ke bawah dan entri pendek.
Setelah menentukan arah tren dengan breakout Bollinger Bands, strategi juga mengkonfirmasi dengan pola lilin. Jika tubuh lilin sejajar dengan tren, seperti lilin bullish dalam tren naik, posisi akan dibuka. Jika tubuh lilin menunjukkan pola terbalik, seperti lilin bearish dalam tren naik, sinyal akan diabaikan. Desain ini bertujuan untuk menghindari risiko breakout palsu.
Peraturan perdagangan sinyal yang terperinci adalah:
Menghitung band atas, band tengah dan band bawah Bollinger Bands untuk menentukan kisaran harga
Ketika harga menembus band atas, itu menandakan tren naik / panjang
Jika candlestick bullish, konfirmasi tren dan pergi panjang
Ketika harga pecah di bawah band bawah, itu menandakan tren menurun/pendek
Jika candlestick bearish, konfirmasi tren dan pergi pendek
Setel stop loss dan ambil keuntungan berdasarkan persentase
Dengan masuk ke Bollinger Bands breakouts dan mengkonfirmasi dengan candlesticks, strategi ini dapat secara efektif mengidentifikasi arah tren dan mendapatkan entri yang baik selama tahap awal tren.
Ini adalah tren khas yang mengikuti strategi dengan kekuatan berikut:
Bollinger Bands bersifat adaptif dan dapat menyesuaikan rentang untuk saham dengan volatilitas yang berbeda
Konfirmasi candlestick menyaring keluar breakout palsu
Holding jangka menengah mengurangi frekuensi perdagangan dan mengurangi biaya/slip
Menangkap tren jangka menengah menghindari kebisingan jangka pendek dan memberikan risiko-balasan yang baik
Hasil backtest kuat dan perdagangan nyata stabil karena sistemisasi
Logika strategi jelas dan mudah dimengerti, dengan ruang untuk peningkatan
Dengan menentukan tren dengan Bollinger Bands dan masuk pada konfirmasi candlestick, strategi ini secara efektif menangkap momentum jangka menengah yang didorong oleh volume.
Ada juga beberapa risiko yang harus diperhatikan untuk strategi ini:
Risiko gagal breakout. Breaking Bollinger Bands memiliki sifat probabilistik dan breakout palsu terjadi
Risiko pembalikan. Tren jangka menengah juga dapat berbalik, halte yang wajar harus ditetapkan
Risiko optimasi parameter. parameter Bollinger Bands dan stop perlu disetel untuk saham yang berbeda
Risiko overfitting. optimasi parameter yang berlebihan menyebabkan kurva fitting
Risiko pelaksanaan: Perbedaan antara backtest dan perdagangan nyata
Untuk mengatasi risiko ini, perbaikan berikut dapat dilakukan:
Mengoptimalkan Bollinger Bands parameter dan lebar untuk lebih cocok
Tambahkan lebih banyak faktor seperti volume untuk mengkonfirmasi tren
Menggunakan berhenti dinamis untuk mencegah kerugian besar pada pembalikan
Menerapkan analisis berjalan ke depan untuk menghindari overfitting
Meningkatkan pelaksanaan order untuk meningkatkan efisiensi perdagangan nyata
Strategi ini dapat ditingkatkan lebih lanjut dalam aspek berikut:
Tambahkan lebih banyak indikator seperti KDJ, MACD untuk mengkonfirmasi sinyal dan meningkatkan akurasi
Gunakan pembelajaran mesin untuk mengoptimalkan parameter secara dinamis daripada nilai tetap
Tetapkan zona harga di sekitar titik pecah untuk menghasilkan sinyal yang lebih tepat
Mengoptimalkan keluar dengan trailing berhenti atau mengambil keuntungan parsial
Memperkenalkan ukuran posisi untuk manajemen risiko yang lebih baik
Menggunakan jenis perintah lanjutan untuk meningkatkan hasil eksekusi
Tambahkan filter rezim pasar untuk mematikan strategi di lingkungan tertentu
Dengan memperkenalkan lebih banyak teknik dan optimasi, stabilitas dan profitabilitas strategi ini dapat ditingkatkan lebih lanjut untuk hasil backtest dan perdagangan nyata yang lebih baik.
Ini adalah strategi trend berikut yang menggunakan Bollinger Bands sebagai rentang dinamis untuk menentukan arah tren. Konfirmasi candlestick memberikan sinyal masuk yang tepat. Entri dibuat pada tahap awal tren dengan tujuan mengendarai momentum jangka menengah.
Keuntungan dari strategi ini termasuk menggunakan Bollinger Bands untuk tren, lilin untuk konfirmasi masuk, frekuensi perdagangan yang rendah, dan sistemisasi yang mudah. Ini juga memiliki risiko seperti breakout palsu, kesulitan pengoptimalan stop loss, dan divergensi eksekusi. Lebih banyak indikator, parameter dinamis, dan eksekusi lanjutan dapat meningkatkan stabilitas dan kinerja perdagangan nyata.
Secara keseluruhan, sebagai tren yang khas mengikuti strategi, ia memiliki logika yang jelas dan mudah diterapkan dengan kelayakan yang kuat.
/*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)