
Strategi ini membangun Brinks dengan memasukkan berbagai jenis Moving Average untuk mengeksplorasi lebih banyak peluang trading. Ini menawarkan 12 jenis Moving Average yang dapat dikombinasikan secara fleksibel untuk mendapatkan parameter terbaik.
Inti dari strategi ini adalah memanfaatkan 12 jenis rata-rata bergerak yang dimasukkan oleh pengguna, termasuk SMA, EMA, WMA, DEMA, TMA, VAR, WWMA, ZLEMA, TSF, HULL, TILL, dan lain-lain, untuk membentuk sinyal perdagangan. Rata-rata bergerak yang dipilih oleh garis tengah Brin Belt, masing-masing di atas dan di bawah garis tengah adalah negatif satu selisih standar.
Kode ini terdiri dari:
Keuntungan terbesar dari strategi ini adalah menyediakan berbagai jenis rata-rata bergerak. Dalam berbagai kondisi pasar, rata-rata bergerak bereaksi dengan kecepatan yang berbeda. Penggunaan berbagai jenis rata-rata bergerak dapat secara signifikan meningkatkan kemampuan strategi untuk beradaptasi. Selain itu, strategi ini dapat mengoptimalkan parameter panjang rata-rata bergerak untuk mencari kombinasi terbaik, sehingga mendapatkan sinyal perdagangan yang lebih akurat.
Risiko utama dari strategi ini adalah bahwa pergerakan rata-rata itu sendiri bercampur dengan sinyal yang bercampur dengan kemungkinan adanya beberapa false breakout. Selain itu, indikator Bollinger Bands juga sangat sensitif terhadap perubahan harga yang drastis, dan garis tengah tidak dapat secara efektif melacak harga. Ini memerlukan jenis pergerakan rata-rata yang lebih stabil dan menyesuaikan parameter dengan tepat.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini sangat inovatif secara keseluruhan, memberikan aplikasi yang lebih kaya untuk segmen indikator Brin-band. Dengan menyesuaikan portofolio moving average, sinyal yang lebih akurat dan stabil dapat diperoleh. Ini juga memberikan ide-ide baru untuk optimasi strategi Brin-band. Dengan penyesuaian dan pengoptimalan parameter, strategi ini dapat menjadi alat perdagangan yang sangat praktis.
/*backtest
start: 2023-01-30 00:00:00
end: 2023-10-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger Bands Strategy (MA type)", overlay=true)
src = input(close, title="Source")
length = input(20,step=10, minval=1)
mult = input(1,type=input.float, minval=0.001, maxval=50, title="StdDev")
length1=input(26, "Long Moving Average Length", minval=1)
length2=input(9, "Trigger Length", minval=1)
T3a1 = input(0.7, "TILLSON T3 Volume Factor", step=0.1)
////////////
mav = input(title="Moving Average Type", defval="VAR", options=["SMA", "EMA", "WMA", "DEMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF", "HULL", "TILL"])
Var_Func(src,length)=>
valpha=2/(length+1)
vud1=src>src[1] ? src-src[1] : 0
vdd1=src<src[1] ? src[1]-src : 0
vUD=sum(vud1,9)
vDD=sum(vdd1,9)
vCMO=nz((vUD-vDD)/(vUD+vDD))
VAR=0.0
VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1])
VAR=Var_Func(src,length)
DEMA = ( 2 * ema(src,length)) - (ema(ema(src,length),length) )
Wwma_Func(src,length)=>
wwalpha = 1/ length
WWMA = 0.0
WWMA := wwalpha*src + (1-wwalpha)*nz(WWMA[1])
WWMA=Wwma_Func(src,length)
Zlema_Func(src,length)=>
zxLag = length/2==round(length/2) ? length/2 : (length - 1) / 2
zxEMAData = (src + (src - src[zxLag]))
ZLEMA = ema(zxEMAData, length)
ZLEMA=Zlema_Func(src,length)
Tsf_Func(src,length)=>
lrc = linreg(src, length, 0)
lrc1 = linreg(src,length,1)
lrs = (lrc-lrc1)
TSF = linreg(src, length, 0)+lrs
TSF=Tsf_Func(src,length)
HMA = wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length)))
T3e1=ema(src, length)
T3e2=ema(T3e1,length)
T3e3=ema(T3e2,length)
T3e4=ema(T3e3,length)
T3e5=ema(T3e4,length)
T3e6=ema(T3e5,length)
T3c1=-T3a1*T3a1*T3a1
T3c2=3*T3a1*T3a1+3*T3a1*T3a1*T3a1
T3c3=-6*T3a1*T3a1-3*T3a1-3*T3a1*T3a1*T3a1
T3c4=1+3*T3a1+T3a1*T3a1*T3a1+3*T3a1*T3a1
T3=T3c1*T3e6+T3c2*T3e5+T3c3*T3e4+T3c4*T3e3
getMA(src, length) =>
ma = 0.0
if mav == "SMA"
ma := sma(src, length)
ma
if mav == "EMA"
ma := ema(src, length)
ma
if mav == "WMA"
ma := wma(src, length)
ma
if mav == "DEMA"
ma := DEMA
ma
if mav == "TMA"
ma := sma(sma(src, ceil(length / 2)), floor(length / 2) + 1)
ma
if mav == "VAR"
ma := VAR
ma
if mav == "WWMA"
ma := WWMA
ma
if mav == "ZLEMA"
ma := ZLEMA
ma
if mav == "TSF"
ma := TSF
ma
if mav == "HULL"
ma := HMA
ma
if mav == "TILL"
ma := T3
ma
ma
//////////
basis = getMA(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset",minval = -500, maxval = 500)
plot(basis, "Basis",color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
/////////
buyEntry = crossover(src, lower)
sellEntry = crossunder(src, upper)
if (crossover(src, lower))
strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if (crossunder(src, upper))
strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)