
Die Bollinger Bands Strategy ist eine klassische Strategie, die Bollinger Bands nutzt, um Trends zu verfolgen und Überkauf-Überverkauf-Signale zu übernehmen. Diese Version der Bollinger Bands Strategie enthält eine Stop-Loss-Strategie, um das Risiko zu kontrollieren.
Die Strategie beurteilt den Überkauf und Überverkauf des Marktes anhand der Gold- und Silberschnecken der oberen und unteren Bahn des Brin-Bandes. Die Trendverfolgung erfolgt durch die Verfolgung des Brin-Bandes. Die Region zwischen der oberen und unteren Bahn des Brin-Bandes spiegelt die Bandbreite der aktuellen Marktfluktuation wider.
Der Brin-Band ist ein technischer Indikator für die Volatilität und Schwankungen des Marktes. Wenn der Preis gerade in der Nähe der Brin-Band-Absenkung ist, ist der Markt überverkauft, und es ist wahrscheinlich, dass die Schwachstellen, die in Folge auftreten, ausgeschöpft werden.
Die Strategie kombiniert die Brin-Band-Over-Buy-Over-Sell-Signal-Einführung mit der Einrichtung von Trend-Tracking-Positionen und dem Hinzufügen von Stop-Loss-Mechanismen zur Risikokontrolle.
Wenn der Preis über die Bollinger Band nach unten geht, bedeutet dies, dass der Markt aus der Überverkaufszone in die vernünftige Zone gelangt ist, und es können Mehrheitspositionen eingerichtet werden. Wenn der Preis unter die Bollinger Band nach unten geht, bedeutet dies, dass der Markt in die Überkaufszone gelangt ist, und es können leere Positionen eingerichtet werden.
Nach dem Aufbau der Position, Setzen Sie einen festen Prozentsatz Stop-Loss-Bereich, um das Risiko zu kontrollieren. Wenn der Verlust über die gesetzte Stop-Loss-Marge Stop-Loss aus der aktuellen Position, um zu große Verluste zu vermeiden.
Die Strategie kombiniert die Bollinger Bands Indicator, um überkaufte und überverkaufte Bereiche zu beurteilen, und erlaubt die Beurteilung von Überkauf und Überverkauf durch die Beurteilung von Preiskreuzungen.
Trend-Tracking-Trading mit Hilfe der Volatilität der Brin-Band
Erhöhung der Stop-Loss-Mechanismen, um den maximalen Verlust für einzelne Transaktionen effektiv zu kontrollieren
Eine Kombination aus Trend-Tracking und Stop-Loss ermöglicht stabile Erträge
Die Parameter-Einstellungen für die Brin-Band beeinflussen die Qualität des Handelssignals. Die Länge der mittleren Bahn n und die Standarddifferenzmenge k müssen für verschiedene Märkte angemessen eingestellt werden, sonst beeinflussen sie die Genauigkeit des Handelssignals.
Eine zu hohe oder zu niedrige Stop-Loss-Einstellung beeinträchtigt die Ertragsstabilität. Eine zu hohe Stop-Loss-Einstellung erhöht das Risiko für ein einzelnes Verlust. Eine zu niedrige Stop-Loss-Einstellung erhöht die Wahrscheinlichkeit, dass die Stop-Loss-Einstellung ausgelöst wird.
Eine Signalfilterung in Verbindung mit anderen Indikatoren kann in Betracht gezogen werden, um die Genauigkeit der Handelssignale zu verbessern.
Verschiedene Positionszeit-Einstellungen können getestet werden, z. B. in Kombination mit Stunden- oder kürzeren Phasen, um eine höhere Häufigkeit des Handels zu erzielen und die Effizienz der Kapitalnutzung zu verbessern.
Diese Strategie kombiniert die Brin-Band-Bewertung überkaufende und überverkaufte Zone, um eine Position zu erstellen und die Stop-Loss-Risiken zu kontrollieren. Es handelt sich um eine häufige Trend-Tracking-Strategie. Durch optimierte Parameter-Einstellungen, kombiniert mit einem genaueren Handelssignal und einer Einstellung der Stop-Loss-Ebene, kann ein stabiler Gewinn erzielt werden.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, step=0.001)
stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
var float lastTradePrice = na
var float stopLossLow = na
var float stopLossHigh = na
var bool currentIsLong = na
var bool nextExpectedIsLong = true
var bool existedLong = false
var bool existedShort = false
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (buyEntry and nextExpectedIsLong == true)
strategy.entry("BBandLE", strategy.long, comment="BBandLE")
nextExpectedIsLong := false
if(nz(strategy.position_size[1], 0) < 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandLE")
if (sellEntry and nextExpectedIsLong == false)
strategy.entry("BBandSE", strategy.short, comment="BBandSE")
nextExpectedIsLong := true
if(nz(strategy.position_size[1], 0) > 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandSE")
strategy.close("BBandLE", close < stopLossLow)
strategy.close("BBandSE", close > stopLossHigh)
// if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh)
// strategy.entry("BBandLE", strategy.long, comment="BBandLE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
// if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow)
// strategy.exit("BBandSE", strategy.short, comment="BBandSE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
plot(source, "close", color.blue)
plot(lower, "lower", color.red)
plot(upper, "upper", color.red)
plot(stopLossLow, "StopLossLow", color.black)
plot(stopLossHigh, "StopLossHigh", color.black)
plot(lastTradePrice, "lastTradePrice", color.green)
plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green)
plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)