Strategi Fitting Bollinger Band

Penulis:ChaoZhang, Tanggal: 2023-10-24 16:52:52
Tag:

img

Gambaran umum

Strategi ini menggunakan indikator Bollinger Bands untuk penilaian tren, dikombinasikan dengan indikator RSI untuk menghindari overbuy, serta filter tubuh lilin dan filter warna untuk lebih memvalidasi sinyal perdagangan.

Prinsip-prinsip

Strategi ini pertama-tama menggunakan band bawah indikator Bollinger Bands. Ketika harga berada di bawah band bawah, itu dianggap sebagai kesempatan untuk membuka posisi. Untuk menghindari overbuy, strategi ini juga memperkenalkan indikator RSI, yang mengharuskan RSI kurang dari 30 untuk menghasilkan sinyal beli. Selain itu, strategi menetapkan filter tubuh lilin yang mengharuskan tubuh lilin saat ini lebih besar dari setengah dari tubuh rata-rata lilin selama 10 periode terakhir untuk memicu pembelian. Akhirnya, filter warna mengharuskan lilin menjadi hijau (menutup lebih tinggi) untuk lebih memvalidasi waktu pembelian.

Ketika harga menembus band bawah Bollinger Bands, RSI kurang dari 30, tubuh cukup besar, dan lilin hijau, sinyal beli dihasilkan. Ketika harga penutupan lebih tinggi dari harga pembukaan dan tubuh lebih besar dari setengah dari tubuh rata-rata, itu adalah sinyal pembalikan tren yang menunjukkan penutupan posisi.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa ia dapat berhasil menentukan awal tren dan memasuki pasar, dan keluar sebelum pembalikan tren, sehingga potensi keuntungan yang besar.

  1. Indikator Bollinger Bands secara akurat menilai arah tren. Ini menggunakan rentang fluktuasi harga untuk menentukan pergerakan harga, sehingga menggunakan indikator ini dapat secara efektif menentukan awal dan akhir tren.

  2. Indikator RSI dapat mengukur kondisi overbought dan oversold. Menggunakannya menghindari pembelian yang salah selama koreksi harga sementara.

  3. Entity filtering meningkatkan keandalan sinyal. Badan lilin yang lebih besar mewakili terobosan yang lebih kuat. Entity filtering memastikan pembelian terobosan yang kuat.

  4. Penyaringan warna mengkonfirmasi waktu. Hanya membeli lilin hijau lebih lanjut memvalidasi waktu yang tepat.

  5. Candle berubah menjadi hijau menunjukkan pembalikan tren setelah membeli. Pedagang mengatakan trends take turns, dan candle berubah menjadi hijau dapat menilai waktu pembalikan.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko yang perlu dicatat:

  1. Kemungkinan sinyal palsu dari Bollinger Bands. Hal ini juga dapat menghasilkan sinyal pecah palsu ketika pasar berosilasi.

  2. Kerugian meningkat tanpa stop loss. Kurangnya stop loss dapat menyebabkan kerugian yang lebih besar jika penilaian salah.

  3. Kondisi penyaringan yang terlalu ketat melewatkan peluang pembelian.

  4. Bergantung pada hasil backtesting yang dioptimalkan. Parameter dan pengaturan filter perlu dioptimalkan dan diverifikasi, hasil perdagangan nyata juga perlu diverifikasi.

  5. Lilin berwarna hijau tidak dapat diandalkan untuk menentukan pembalikan.

Untuk risiko, stop loss dapat mengendalikan kerugian, mengoptimalkan filter mengurangi pembelian yang terlewatkan, menggunakan beberapa indikator memverifikasi sinyal, dan memverifikasi hasil dalam perdagangan langsung.

Arah Peningkatan

Strategi dapat dioptimalkan dalam beberapa aspek:

  1. Mengoptimalkan parameter Bollinger Band untuk pengaturan terbaik. Uji periode yang berbeda, kelipatan standar deviasi, dll.

  2. Uji osilator yang berbeda daripada RSI. misalnya KDJ, Williams %R, dll.

  3. Tambahkan stop loss untuk mengontrol risiko, atur stop yang wajar berdasarkan data backtest.

  4. Mengoptimalkan parameter kondisi filter, menguji ukuran dan periode filter tubuh yang berbeda.

  5. Masukkan indikator lain untuk mengkonfirmasi sinyal. misalnya indikator konfirmasi volume-harga.

  6. Uji sinyal pembalikan yang berbeda. misalnya, penyeberangan rata-rata bergerak untuk menentukan pembalikan tren.

  7. Uji pada produk dan kerangka waktu yang berbeda.

Kesimpulan

Secara keseluruhan, strategi ini memiliki tren yang relatif kuat mengikuti kemampuan dan kemampuan beradaptasi. Kekuatan inti adalah menggunakan Bollinger Bands untuk menentukan arah tren dan menggunakan RSI dan filter untuk memastikan waktu. Tapi ada juga risiko tertentu yang membutuhkan optimasi dan pengujian yang ditargetkan. Jika parameter dan aturan dapat diverifikasi, itu dapat mencapai hasil yang baik dalam perdagangan langsung. Kesimpulannya, strategi ini memiliki nilai praktis yang layak dieksplorasi.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//Donate: 3BMEXvKkuJLobJrcpMm12bKTZoCnojZTjh

//@version=2
strategy(title = "Noro's Wizard Strategy v1.1", shorttitle = "Wizard str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(40, defval = 40, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
usersi = input(true, defval = true, title = "Use RSI-Filter")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Fast RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
rsif = rsi < 30 or usersi == false

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body and rsif
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Lebih banyak