Bollinger Bands Backtesting-Strategie basierend auf dem gleitenden Durchschnitt für Trendhändler


Erstellungsdatum: 2023-12-11 13:12:44 zuletzt geändert: 2023-12-11 13:12:44
Kopie: 0 Klicks: 593
1
konzentrieren Sie sich auf
1621
Anhänger

Bollinger Bands Backtesting-Strategie basierend auf dem gleitenden Durchschnitt für Trendhändler

Überblick

Die Hauptidee dieser Strategie ist es, die Moving Average und die Bollinger Bands zu nutzen, um die Preisentwicklung zu beurteilen und ein Handelssignal zu erzeugen. Insbesondere wird zuerst der durchschnittliche tatsächliche Schwankungsbereich ATR für einen bestimmten Zeitraum berechnet, und dann wird der Grenzkanal kombiniert mit dem Höchst- und dem Tiefstpreis.

Strategieprinzip

Die Strategie berechnet zuerst die ATR-Spanne und kombiniert diese dann mit dem Höchst- und dem Tiefstpreis, um den Restriktionskanal zu erhalten. Der Close-Preis wird nur dann auf den Channel-Preis beschränkt, wenn der Preis den Kanal durchbricht. Der Moving Average für den nach dem Restriktions-Close-Preis wird als Trend-Trader-Average (Trend Trade AVR) bezeichnet. Der Moving Average spiegelt die mittelfristige Trendrichtung des Preises wider.

Der Kern der Strategie ist der Trend-Händler-Durchschnitt, der die mittelfristige Trendrichtung anzeigt. Die Rolle des Brin-Bands ist es, einige falsche Durchbrüche zu filtern, um das Handelssignal zuverlässiger zu machen. Die gesamte Strategie kombiniert Trend-Tracking und Durchbruch-Urteile zu einem stärkeren Trendsystem.

Strategische Vorteile

  1. Mit dem ATR können Sie die Höchst- und Tiefstpreise kombinieren, um einen Kanal zu bilden, der die Marktschwankungen effektiv verfolgt.
  2. Trendhändler-Durchschnittswerte, die den mittleren langfristigen Trend eindeutig bestimmen
  3. Brin hat einen falschen Durchbruch gemacht, um die Signalqualität zu verbessern.
  4. Das System als Ganzes zeigt eine starke Tendenz, langfristige Haltungen können gute Gewinne erzielen

Strategisches Risiko

  1. Bei mittlerer oder langfristiger Haltbarkeit kann es zu größeren Verlusten bei Ereignissen kommen.
  2. Unkorrekt eingestellte Parameter können zu häufigen Transaktionen, erhöhten Transaktionsgebühren und Verlusten an Slippoints führen
  3. Effekte sind stark von Parameter-Einstellungen abhängig und müssen optimiert werden, um die besten Parameter zu finden.

Gegenmaßnahmen:

  1. angemessene Verkürzung der Haltungsdauer und zeitnahe Verlustbehebung
  2. Optimierung der Parameter, so dass das Signal eine bestimmte Buffer hat
  3. Nutzung von historischen Daten und Optimierungsparametern für die Festplatte

Richtung der Strategieoptimierung

  1. Eine detailliertere Untersuchung der verschiedenen Periodensatzparameter in verschiedenen Märkten
  2. Tests, um weitere Kennzahlen zu filtern
  3. Versuchen Sie, einzelne Verluste mit Stop-Loss-Strategien zu kontrollieren

Zusammenfassen

Die Strategie insgesamt ist ein starkes Trend-Tracking-System. Es kann die Markttrends in der mittleren und langen Linie beurteilen und in Verbindung mit den Brin-Bändern Handelssignale erzeugen. Durch Parameteroptimierung können stabile Übergewinne erzielt werden.

Strategiequellcode
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")