
Ini adalah strategi untuk berdagang menggunakan indikator Bollinger Bands. Strategi ini bertujuan untuk menggunakan indikator Bollinger Bands untuk mengenal pasti masa apabila harga turun naik dengan ketara dan membuat keputusan membeli atau menjual dengan sewajarnya.
Strategi ini menilai apakah harga semasa berada di dalam rantaian turun naik dengan mengira rantaian atas, rantaian tengah, dan rantaian bawah di Brin Belt untuk menentukan masa untuk meletakkan atau meletakkan. Apabila harga mendekati rantaian atas, strategi ini memilih untuk menjual kedudukan yang rendah; apabila harga mendekati rantaian bawah, ia dianggap sebagai rantaian kosong, strategi ini memilih untuk membeli.
Di samping itu, strategi ini juga memperkenalkan faktor pembalikan trend, yang akan mencetuskan keputusan membeli atau menjual yang sesuai jika isyarat pembalikan berlaku. Secara khusus, logik strategi adalah seperti berikut:
Ini adalah logik perdagangan asas untuk strategi ini. Dengan menggunakan ciri-ciri Brinband, menggabungkan trend dan faktor pembalikan, strategi ini cuba untuk menangkap titik pembalikan untuk berdagang apabila turun naik meningkat.
Strategi ini mempunyai beberapa kelebihan berbanding strategi purata bergerak biasa:
Secara keseluruhannya, strategi ini menggabungkan baik-baiknya kebijaksanaan entiti Brin dan harga, berdagang di titik-titik perubahan yang munasabah, memastikan tahap keuntungan tertentu dan mengawal risiko.
Walau bagaimanapun, strategi ini juga mempunyai risiko, terutama yang ditunjukkan oleh:
Oleh itu, di masa hadapan, pengoptimuman boleh dilakukan dalam beberapa aspek:
Strategi ini secara keseluruhan adalah templat strategi perdagangan Brin Belt yang tipikal. Ia mengelakkan kelemahan perdagangan yang tidak berkesan yang mudah dihasilkan hanya dengan menggunakan Brin Belt. Dengan memperkenalkan penghakiman pembalikan trend, isyarat penapisan yang berkesan, secara teori dapat memperoleh prestasi strategi yang lebih baik.
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )
//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 close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > 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)
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()