
Strategi ini adalah strategi pengesanan pergerakan dinamik yang berasaskan Brin-Band. Ia menggabungkan indikator Brin-Band untuk menilai trend pasaran dan titik-titik perubahan, dan mengesan pergerakan pasaran dengan menetapkan kedudukan kosong.
Tanda utama strategi ini ialah Brin Belt. Brin Belt terdiri daripada mid-trail, up-trail, dan down-trail. Mid-trail adalah purata bergerak n hari, dan up-trail adalah penyimpangan standard antara mid-trail dan down-trail. Apabila harga mendekati mid-trail, ia dianggap sebagai isyarat overbought dan oversold.
Strategi ini menggabungkan kedudukan tren dan kedudukan reversal, masing-masing sesuai dengan peluang perdagangan yang berbeza. Kedudukan tren memerlukan rel tengah sebagai rujukan rintangan sokongan, membentuk kesan penyimpangan terobosan.
Strategi ini menggabungkan ciri-ciri overbought dan oversold Brinbelt, ditambah dengan pertimbangan titik balik. Ini membolehkan ia digunakan untuk pasaran yang sedang tren dan pasaran yang bergolak, menangkap pelbagai jenis peluang perdagangan. Tetapan Exit Stop-Loss strategi ini menghalang kerugian daripada berkembang.
Berbanding dengan strategi Brin yang mudah, penghakiman logik trend yang dimasukkan dalam strategi ini menjadikan kedudukan lebih stabil, tetapi juga menangkap peluang untuk berbalik. Ini meningkatkan nisbah haba. Kedua, perdagangan dua hala yang lebih banyak juga memanfaatkan peluang perdagangan di pasaran yang berbeza secara lebih komprehensif.
Strategi ini bergantung kepada ciri-ciri overbought dan oversold dalam Brin Belt. Oleh itu, apabila harga bergelombang dengan kuat, jarak Brin Belt akan terus meningkat, yang boleh menyebabkan kerugian berganda dalam penempatan. Ini adalah titik risiko yang berpotensi.
Untuk kes-kes kegagalan tali pinggang Brin, parameter n hari boleh dipersingkat, menjadikan tali pinggang Brin lebih sensitif. Atau mengurangkan julat amplitudnya, mengurangkan kemungkinan kerugian. Untuk penghakiman kurva pembalikan, anda boleh mengurangkan kesilapan dengan mengoptimumkan parameter yang pecah.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini memperluaskan dan mengoptimumkan strategi standard Brin Belt secara berkesan. Penghakiman penyimpangan trend yang dimasukkan meningkatkan kestabilan dan memanfaatkan peluang untuk berbalik. Pengaturan perdagangan dua hala dan henti kerugian juga menjadikan 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()