Nama strategi ini adalah
Strategi ini mula-mula mengira rel atas dan bawah Bollinger Bands, dan kemudian menilai sama ada K-line terakhir memecahkan rel atas atau bawah. Pada masa yang sama, ia juga menilai sama ada entiti K-line terakhir hanya separuh daripada entiti K-line sebelumnya. Apabila kedua-dua syarat dipenuhi, isyarat perdagangan dikeluarkan.
Khususnya, strategi ini menggunakan situasi di mana entiti K-line merah menjadi lebih kecil, hanya mencapai separuh daripada entiti K-line sebelumnya semasa trend menurun, bersama dengan harga penutupan K-line terakhir yang menembusi rel bawah Bollinger Band sebagai isyarat beli. Sebaliknya, ia menggunakan situasi di mana entiti K-line hijau menjadi lebih kecil, hanya mencapai separuh daripada entiti K-line sebelumnya semasa trend menaik, bersama dengan harga penutupan K-line terakhir yang menembusi rel atas Bollinger Band sebagai isyarat jual.
Strategi ini menggabungkan penunjuk teknikal dan analisis tingkah laku harga, yang dapat menapis secara berkesan pecah palsu. Pada masa yang sama, ia hanya mengeluarkan isyarat pada titik perubahan, mengelakkan perdagangan berulang semasa trend. Di samping itu, strategi ini menggunakan ciri-ciri penyusutan entiti K-line untuk mengunci titik perubahan selepas penyesuaian kecil. Kelebihan ini dapat meningkatkan kestabilan dan keuntungan strategi.
Risiko utama strategi ini terletak pada tetapan parameter Bollinger Bands yang tidak betul dan kegagalan pecah. Jika parameter Bollinger Bands ditetapkan terlalu besar atau terlalu kecil, penilaian yang salah akan berlaku. Di samping itu, walaupun harga memecahkan rel atas atau bawah Bollinger Bands, ia mungkin pecah palsu dan gagal membentuk pembalikan trend sebenar. Semua risiko ini boleh menyebabkan kerugian perdagangan strategi. Untuk mengurangkan risiko ini, parameter Bollinger Bands boleh diselaraskan dengan sewajarnya, atau penunjuk lain boleh ditambah untuk pengesahan gabungan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Mengoptimumkan parameter Bollinger Band untuk menangkap trend dan turun naik dengan lebih berkesan.
Tambah pergerakan stop loss untuk mengunci keuntungan dan menguruskan risiko.
Masukkan penunjuk lain seperti MACD, RSI untuk pengesahan untuk menapis isyarat palsu.
Tambah algoritma pembelajaran mesin, melatih model dengan data besar, dan secara dinamik mengoptimumkan parameter strategi dan berat indikator.
Strategi ini berjaya menggabungkan tindakan harga dan Bollinger Bands, memperoleh keuntungan yang agak tinggi dengan risiko yang rendah. Ia hanya mengeluarkan isyarat di titik-titik utama, mengelakkan gangguan dari bunyi bising. Melalui pengoptimuman berterusan parameter dan kriteria penapisan, strategi ini dijangka mendapatkan alpha yang lebih stabil. Ia menyediakan templat yang boleh dipercayai untuk amalan perdagangan kuantitatif.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // main codebody taken from Trader Noro - Noro's Crypto Pattern for H1 // Intraday strategy- Exit at EOD at all cost strategy(title = "Price Action + Bollinger Strategy ",overlay=true) bar = close > open ? 1 : close < open ? -1 : 0 body = abs(close - open) avgbody = sma(body, 100) //calculate simple moving average bollinger bands b_sma = input(21,minval=1,title=" SMA candle") b_sma_no_of_deviations = 2.1 b_sma_signal = sma(close, b_sma) b_sma_deviation = b_sma_no_of_deviations * stdev(close, b_sma) b_sma_upper= b_sma_signal + b_sma_deviation b_sma_lower= b_sma_signal - b_sma_deviation up1 = body < body[1] / 2 and bar[1]==1 and bar == -1 and close[1] > b_sma_upper dn1 = body < body[1] / 2 and bar[1]==-1 and bar == 1 and close[1] < b_sma_lower up2 = false dn2 = false up2 := (up1[1] or up2[1]) and close < close[1] dn2 := (dn1[1] or dn2[1]) and close > close[1] plotarrow(up1 or up2 ? 1 : na, colorup = color.black, colordown = color.black, transp = 0) plotarrow(dn1 or dn2 ? -1 : na, colorup = color.black, colordown = color.black, transp = 0) strategy.entry("Buy", true, when = dn1) strategy.exit("exit", "Buy", profit = 3, loss = 1.5) strategy.entry("Short", false, when = up1) strategy.exit("exit", "Short", profit = 3, loss = 1.5)