
Strategi ini menggabungkan Bollinger Bands dan Moving Averages untuk merancang sistem perdagangan yang mengikuti trend. Buat lebih banyak apabila harga menembusi Bollinger Bands dan lebih rendah daripada SMA200, pasang separuh apabila harga menembusi Bollinger Bands, dan pasang sepenuhnya apabila harga menembusi SMA200. Strategi ini mengikuti trend dan berhenti tepat pada masanya apabila trend berubah.
Strategi ini menilai kewujudan trend dengan mengandaikan bahawa Brin Belt perlu berada sepenuhnya di atas SMA200, dan hanya akan memilih masuk ke arah yang lebih banyak jika terdapat kecenderungan kenaikan yang jelas. Apabila kecenderungan menurun datang, mengawal risiko dengan berhenti saham dan berhenti posisi penuh pada titik kritikal.
Risiko ini dapat dikurangkan dengan menguji parameter Brin dengan teliti, mengoptimumkan strategi penutupan sebahagian, menyesuaikan parameter kitaran SMA, dan memperkenalkan kaedah pengurusan risiko yang lebih saintifik.
Strategi ini menggabungkan saluran Brin dan SMA untuk merancang strategi pemantauan trend yang lebih lengkap. Ia lebih dipercayai untuk menilai kewujudan trend dan mempunyai keupayaan pemantauan trend yang lebih kuat. Dengan terus-menerus mengoptimumkan strategi stop-loss, mengurangkan kadar kesalahan isyarat, dan memperkenalkan kaedah pengurusan risiko saintifik, strategi ini boleh menjadi strategi trend yang bernilai untuk dijejaki dalam jangka masa panjang.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
var stopLossVal=0.00
//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")
bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
riskCapital = input(title="Risk % of capital == Based on this trade size is claculated numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)
sma200=ema(close,smaLength)
plot(sma200, title="SMA 200", color=color.orange)
//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)
strategy.initial_capital = 50000
//Entry---
strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true, when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) ) // // aroonOsc<0 //(strategy.initial_capital * 0.10)/close
barcolor(color=strategy.position_size>=1? color.blue: na)
//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"), qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55
//close All on stop loss
//stoploss
stopLossVal:= strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00
strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89//
strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and crossunder(basis, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89