
Strategi Bollinger Bands adalah sistem perdagangan komprehensif berdasarkan indikator Bollinger Bands, yang menggabungkan ciri-ciri trend dan perdagangan reversal untuk menangkap peluang pasaran melalui interaksi harga dengan Bollinger Bands. Sistem ini direka bentuk dengan tiga lapisan mekanisme keluar, termasuk zon, penilaian garis rata dan berhenti bergerak, yang membolehkan strategi untuk menangkap keuntungan maksimum dan mengawal risiko dengan berkesan.
Prinsip utama strategi ini adalah menggunakan Burin sebagai kawasan rujukan dinamik untuk turun naik harga, dan menggabungkan peraturan masuk dan keluar bertingkat yang dirancang dengan baik.
Logik masuk terdiri daripada dua bahagian:
Logik keluar direka bentuk dengan tiga lapisan perlindungan:
Parameter Brinband boleh disesuaikan secara fleksibel, termasuk kitaran garis rata-rata (default 20) dan perkalian perbezaan piawai (standard) (default 2.0) [2]. Tetapan keluar juga boleh disesuaikan mengikut ciri-ciri pasaran, termasuk X (default 3), Y (default 10) dan peratusan pengunduran henti bergerak Z (default 30%) [2].
Menangkap pelbagai peluang pasaran: Strategi ini merangkumi logik perdagangan trend dan pembalikan sekaligus, yang dapat mencari peluang perdagangan dalam keadaan pasaran yang berbeza. Apabila pasaran berada dalam keadaan goyah, rebound / penurunan yang berlaku selepas harga menyentuh pinggir Burin boleh digunakan. Apabila pasaran mula bergerak dalam trend, ia boleh diikuti oleh isyarat harga yang menembusi pinggir Burin.
Kawalan risiko bertingkat: Dengan merancang tiga lapisan dengan mekanisme yang berbeza, strategi dapat melindungi dana dalam keadaan yang berbeza. Penghakiman serantau peringkat pertama dapat dengan cepat mengenal pasti arah perdagangan yang salah; Lapisan kedua melintasi garis rata yang sesuai untuk perubahan trend jangka menengah; Lapisan ketiga bergerak berhenti untuk melindungi keuntungan yang diperoleh selepas keuntungan besar.
Fleksibiliti parameter: Strategi menyediakan pelbagai parameter yang boleh disesuaikan, yang membolehkan peniaga mengoptimumkan sistem mengikut ciri-ciri pasaran dan kitaran masa yang berbeza. Panjang dan kelipatan Brin boleh disesuaikan untuk menyesuaikan diri dengan turun naik pasaran, parameter masa dalam keadaan keluar ((X dan Y) dan nisbah penghentian bergerak ((Z) boleh disesuaikan dengan keutamaan risiko peniaga.
Kelebihan visual: Bering dan garis rujukan tengah yang baru digambarkan secara langsung pada carta, memudahkan peniaga untuk menganalisis kedudukan harga dan kawasan sokongan / rintangan yang berpotensi, meningkatkan kecekapan keputusan.
Struktur kod yang jelas: Kod strategi tersusun dengan teratur, spesifikasi penamaan pembolehubah, ulasan terperinci, mudah difahami dan dikekalkan. Logik masuk dan keluar dipisahkan dengan jelas, mudah untuk pengembangan dan pengoptimuman selanjutnya.
Kurangnya mekanisme berhenti yang jelas: Strategi semasa tidak mengandungi syarat berhenti dalam erti kata tradisional, yang boleh menyebabkan kerugian yang lebih besar dalam keadaan pasaran yang melampau. Pedagang disarankan untuk menambah berhenti tetap secara manual atau logik berhenti dinamik berdasarkan ATR berdasarkan toleransi risiko individu.
Terlalu bergantung pada pita Brin: Dalam pasaran yang bergelombang tinggi atau kurang kecairan, pita Brin mungkin terlalu lebar atau terlalu sempit, menyebabkan penurunan kualiti isyarat. Adalah disyorkan untuk menguji tetapan parameter pita Brin yang berbeza dalam keadaan pasaran yang berbeza.
Sensitiviti parameter: prestasi strategi mungkin sensitif kepada tetapan parameter, seperti panjang Brin, kali ganda perbezaan piawai, dan parameter masa untuk keadaan permainan. Pilihan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau kehilangan peluang penting.
Syarat pemicu penghentian bergerak tetap: Dalam kod semasa, syarat pemicu penghentian bergerak ditetapkan untuk jarak risiko 2x yang tetap, yang mungkin tidak berlaku untuk semua keadaan pasaran. Dalam pasaran yang terlalu bergolak, ia mungkin menyebabkan penghentian terlalu jauh dan tidak dapat melindungi keuntungan dengan berkesan.
Risiko simetrisan syarat pelbagai ruang: strategi menggunakan logik masuk dan keluar yang simetrik untuk arah pelbagai ruang, tetapi dalam pasaran sebenar, pergerakan turun dan turun sering tidak simetrik (seperti pasaran saham biasanya turun lebih cepat daripada naik). Ia disyorkan untuk mempertimbangkan menetapkan parameter yang berbeza untuk arah pelbagai ruang.
Menambah mekanisme berhenti pintar: boleh memperkenalkan berhenti dinamik berdasarkan ATR (rata-rata gelombang sebenar) atau jarak berhenti berdasarkan lebar jalur Brin, supaya berhenti lebih sesuai dengan pergerakan pasaran yang sebenarnya. Cara untuk mewujudkan ia boleh dilakukan dengan menambah parameter berhenti dalam fungsi strategi. entri, atau menggunakan parameter stop_loss dalam fungsi strategi. keluar.
Mengoptimumkan syarat penapisan masuk: Anda boleh mempertimbangkan untuk menambah penunjuk pengesahan trend, seperti penunjuk pergerakan arah ((DMI) atau indeks kekuatan relatif ((RSI), untuk menapis isyarat berkualiti rendah. Sebagai contoh, terima isyarat trend track hanya apabila ADX> 25, atau terima isyarat pembalikan hanya di kawasan RSI overbought / oversold.
Tetapan parameter penyesuaian diri: Brinband parameter dan parameter keadaan keluar direka bentuk untuk penyesuaian diri, menyesuaikan diri secara automatik mengikut turun naik pasaran. Sebagai contoh, anda boleh mengira kadar turun naik N kitaran lalu, dan dengan ini secara dinamik menyesuaikan ganda standard deviasi Brinband.
Peningkatan mekanisme penangguhan bergerak: membolehkan keadaan pemicu dan jarak pengesanan penangguhan bergerak boleh disesuaikan, dan bukannya ditetapkan sebagai jarak risiko 2 kali ganda. Pertimbangkan untuk menyesuaikan peratusan pengunduran penangguhan bergerak mengikut ciri-ciri turun naik dalam tempoh masa yang berbeza.
Menambah penapis masa: memperkenalkan penapis masa dagangan, mengelakkan masa turun naik yang tinggi sebelum bukaan dan penutupan pasaran, atau menambah penapis masa dagangan terbaik untuk pasaran tertentu.
Analisis pelbagai kitaran: Mengintegrasikan kerangka analisis pelbagai kitaran, yang memerlukan arah trend yang lebih tinggi kitaran selaras dengan arah perdagangan semasa, untuk meningkatkan kualiti isyarat. Sebagai contoh, terima isyarat pelbagai pada carta 4 jam hanya apabila garisan matahari bergerak ke atas.
Pengurusan wang yang dioptimumkan: masukkan logik pengiraan kedudukan berdasarkan turun naik, menambah kedudukan dalam keadaan turun naik rendah, dan mengurangkan kedudukan dalam keadaan turun naik tinggi, untuk mengimbangi risiko dan keuntungan.
Strategi perdagangan trend binari bertingkat dan berbalik adalah sistem perdagangan komprehensif yang direka dengan ciri-ciri dinamik indikator binari, digabungkan dengan peraturan bertingkat, untuk menguruskan risiko dengan berkesan sambil menangkap peluang pasaran. Kelebihan terbesar strategi ini adalah fleksibiliti dan kemampuan untuk mencari peluang perdagangan dalam persekitaran pasaran yang berbeza dan menyesuaikan diri dengan parameter untuk menyesuaikan diri dengan jenis perdagangan dan tempoh masa yang berbeza.
Walaupun terdapat beberapa risiko dalam strategi, seperti kekurangan mekanisme penghentian kerugian yang jelas dan sensitiviti parameter, arah pengoptimuman yang dibentangkan dalam artikel ini, seperti menambah penghentian pintar, mengoptimumkan syarat penapisan masuk, dan menetapkan parameter penyesuaian, dapat meningkatkan kestabilan dan keuntungan strategi.
Bagi peniaga, disarankan untuk melakukan pengulangan yang mencukupi sebelum penggunaan sebenar dan menyesuaikan parameter mengikut ciri-ciri pasaran tertentu. Pada masa yang sama, strategi ini digunakan sebagai sebahagian daripada sistem perdagangan yang lengkap, digabungkan dengan analisis teknikal dan asas lain, untuk membuat keputusan perdagangan yang menyeluruh.
/*backtest
start: 2024-04-01 00:00:00
end: 2025-03-31 00:00:00
period: 6d
basePeriod: 6d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Bollinger Bands Strategy", overlay=true)
// 輸入參數
length = input.int(20, "BB Length", minval=1, group="布林帶設定")
mult = input.float(2.0, "BB Multiplier", minval=0.001, maxval=50, group="布林帶設定")
X = input.int(3, "Exit Condition 1 Bars (X)", minval=1, group="出場設定")
Y = input.int(10, "Exit Condition 2 Bars (Y)", minval=1, group="出場設定")
Z = input.float(30.0, "Trail Profit Retreat Z%", minval=1.0, maxval=100.0, step=1.0, group="出場設定")
// 計算布林帶
source = close
basis = ta.sma(source, length) // 20 期均線
dev = mult * ta.stdev(source, length) // 標準差
upper = basis + dev // 上緣
lower = basis - dev // 下緣
mid1 = upper - (upper - basis)/3
mid2 = lower + (basis - lower)/3
// 繪製布林帶
plot(basis, "Basis", color=color.gray)
plot(upper, "Upper", color=color.blue)
plot(lower, "Lower", color=color.blue)
plot(mid1,"mid1",color = color.yellow)
plot(mid2,"mid2",color = color.yellow)
//fill(upper, lower, color=color.new(color.blue, 90), title="BB Fill")
// 進場條件
longEntry = ta.crossover(source, lower) or (low < lower and close > lower)
shortEntry = ta.crossunder(source, upper) or (high > upper and close < upper)
// 進場執行
if (longEntry)
strategy.entry("Long", strategy.long)
if (shortEntry)
strategy.entry("Short", strategy.short)
// 出場條件變數
var float longEntryPrice = na
var float shortEntryPrice = na
var int longBarsSinceEntry = 0
var int shortBarsSinceEntry = 0
// 更新持倉狀態
if (strategy.position_size > 0) // 做多持倉
if (na(longEntryPrice)) // 記錄進場價格和起始計數
longEntryPrice := strategy.position_avg_price
longBarsSinceEntry := 0
longBarsSinceEntry := longBarsSinceEntry + 1
if (strategy.position_size < 0) // 做空持倉
if (na(shortEntryPrice))
shortEntryPrice := strategy.position_avg_price
shortBarsSinceEntry := 0
shortBarsSinceEntry := shortBarsSinceEntry + 1
// 做多出場條件
if (strategy.position_size > 0)
// 條件 1:第 X 根 K 線後,收盤價 < lower + (basis - lower) / 3
longExitLevel1 = lower + (basis - lower) / 3
if (longBarsSinceEntry >= X and close < longExitLevel1)
strategy.close("Long", comment="Long Exit Condition 1")
// 條件 2:第 Y 根 K 線後,收盤價 < basis
if (longBarsSinceEntry >= Y and close < basis)
strategy.close("Long", comment="Long Exit Condition 2")
// 條件 3:移動停利(收盤價 > upper 觸發)
distanceLong = longEntryPrice - lower
trailPriceLong = longEntryPrice + (distanceLong * 2) // 假設 2 倍風險距離作為觸發點,可調整
trailOffsetLong = distanceLong * (1 - Z / 100)
strategy.exit("Long Trail", "Long", trail_price=trailPriceLong, trail_offset=trailOffsetLong)
// 做空出場條件
if (strategy.position_size < 0)
// 條件 1:第 X 根 K 線後,收盤價 > upper - (upper - basis) / 3
shortExitLevel1 = upper - (upper - basis) / 3
if (shortBarsSinceEntry >= X and close > shortExitLevel1)
strategy.close("Short", comment="Short Exit Condition 1")
// 條件 2:第 Y 根 K 線後,收盤價 > basis
if (shortBarsSinceEntry >= Y and close > basis)
strategy.close("Short", comment="Short Exit Condition 2")
// 條件 3:移動停利(收盤價 < lower 觸發)
distanceShort = upper - shortEntryPrice
trailPriceShort = shortEntryPrice - (distanceShort * 2) // 假設 2 倍風險距離作為觸發點,可調整
trailOffsetShort = distanceShort * (1 - Z / 100)
strategy.exit("Short Trail", "Short", trail_price=trailPriceShort, trail_offset=trailOffsetShort)
// 清除變數(當持倉結束時)
if (strategy.position_size == 0)
longEntryPrice := na
shortEntryPrice := na
longBarsSinceEntry := 0
shortBarsSinceEntry := 0