
Strategi ini adalah strategi pelacakan pergerakan dinamika yang didasarkan pada Brin-Band. Ini menggabungkan indikator Brin-Band untuk menilai tren pasar dan titik balik, dan melacak pergerakan pasar dengan mengatur posisi kosong.
Strategi ini terdiri dari rel tengah, rel atas, dan rel bawah. Rel tengah adalah rata-rata bergerak selama n hari, dan rel atas dan bawah masing-masing adalah penyimpangan dari standar deviasi rel tengah. Ketika harga mendekati rel atas dan bawah dianggap sebagai sinyal overbought. Strategi ini menambahkan penyimpangan tren sebagai dasar untuk membangun posisi.
Strategi ini menambahkan posisi tren dan posisi reversal, yang masing-masing sesuai dengan peluang perdagangan yang berbeda. Posisi tren membutuhkan rel tengah sebagai referensi resistensi pendukung, yang membentuk efek penyimpangan terobosan. Posisi reversal terbalik terbentuk secara langsung di dekat rel bawah di atas Brin.
Strategi ini menggabungkan karakteristik overbought dan oversold dari Brin Belt, dengan penambahan penilaian titik balik. Hal ini memungkinkan untuk menerapkannya pada pasar tren dan pasar bergolak secara bersamaan, menangkap berbagai jenis peluang perdagangan. Pengaturan Exit Stop Loss dari strategi ini mencegah perluasan kerugian.
Dibandingkan dengan strategi Brin Belt sederhana, strategi ini menambahkan penilaian logis tren yang membuat posisi lebih stabil, sekaligus menangkap peluang untuk berbalik. Hal ini meningkatkan rasio sinyal-kebisingan. Kedua, perdagangan dua arah yang lebih luas juga memanfaatkan peluang perdagangan di berbagai pasar secara lebih komprehensif.
Strategi ini terutama bergantung pada karakteristik overbought dan oversold di Bollinger Bands. Oleh karena itu, ketika harga mengalami fluktuasi tajam, interval Bollinger Bands akan terus meningkat, yang dapat menyebabkan banyak kerugian. Ini adalah titik risiko potensial. Selain itu, penilaian terbalik masih memiliki beberapa ketidakpastian dan kesalahan, yang dapat menyebabkan kegagalan posisi dan kerugian.
Untuk kasus kegagalan pita Brin, parameter n hari dapat dipersingkat, membuat pita Brin lebih sensitif. Atau mengurangi rentang amplitudo, mengurangi kemungkinan kerugian. Untuk penilaian kurva pembalikan, dapat mengurangi kesalahan dengan mengoptimalkan parameter untuk terobosan.
Strategi ini dapat dioptimalkan dengan beberapa cara:
Strategi ini secara efektif memperluas dan mengoptimalkan strategi standar Brin. Penambahan penilaian bias tren meningkatkan stabilitas dan memanfaatkan peluang untuk membalikkan. Pengaturan perdagangan dua arah dan stop loss yang lebih banyak juga membuat strategi lebih kuat.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
fromyear = input(2018, defval = 2018, 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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body
body = abs(close - open)
abody = ema(body, 30)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2
//Trading
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, 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()