Strategi Tindakan Harga berasaskan Bollinger Band

Penulis:ChaoZhang, Tarikh: 2023-12-20 14:03:52
Tag:

img

Ringkasan

Nama strategi ini adalah Bollinger Band-based Price Action Strategy. Ia mengintegrasikan analisis tindakan harga dan Bollinger Bands untuk menjana isyarat perdagangan berdasarkan penghakiman keadaan kompaun.

Prinsip Strategi

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.

Analisis Kelebihan

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.

Analisis Risiko

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.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter Bollinger Band untuk menangkap trend dan turun naik dengan lebih berkesan.

  2. Tambah pergerakan stop loss untuk mengunci keuntungan dan menguruskan risiko.

  3. Masukkan penunjuk lain seperti MACD, RSI untuk pengesahan untuk menapis isyarat palsu.

  4. Tambah algoritma pembelajaran mesin, melatih model dengan data besar, dan secara dinamik mengoptimumkan parameter strategi dan berat indikator.

Kesimpulan

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)



Lebih lanjut