
Die Strategie kombiniert Bollinger Bands und Moving Averages und entwirft ein Handelssystem, das Trends verfolgt. Es handelt sich dabei um ein Handelssystem, das bei einem Bollinger Bandbruch einen Plus macht, wenn der Kurs über den SMA200 sinkt, bei einem Bollinger Bandbruch einen Teilabschluss macht und bei einem SMA200 einen vollständigen Abschluss macht. Die Strategie verfolgt Trends und stoppt Verluste, wenn sich der Trend ändert.
Die Strategie setzt die Existenz eines Trends voraus, dass die Bollinger Band vollständig über dem SMA 200 liegen muss und nur bei einem eindeutigen Aufwärtstrend einen Mehrkopf-Eintritt wählt. Wenn ein Abwärtstrend eintritt, wird das Risiko durch einen Schlüsselpunkt-Anteilsstillstand und einen Vollpositionsstillstand kontrolliert.
Diese Risiken können durch die sorgfältige Prüfung der Brin-Band-Parameter, die Optimierung der partiellen Stop-Loss-Strategie, die Anpassung der SMA-Zyklus-Parameter und die Einführung einer wissenschaftlicheren Risikomanagementmethode verringert werden.
Die Strategie integriert die Brin-Band-Kanal, SMA-Gewinnspanne, um eine vollständige Trend-Tracking-Strategie zu entwerfen. Es ist zuverlässiger, wenn ein Trend vorhanden ist, und hat eine starke Trend-Tracking-Fähigkeit. Durch die kontinuierliche Optimierung der Stop-Loss-Strategie, die Verringerung der Signalfehlerrate und die Einführung wissenschaftlicher Risikomanagement-Methoden kann die Strategie zu einer Trend-Strategie werden, die es wert ist, auf lange Sicht in der Praxis zu verfolgen.
/*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