Bollinger-Bänder-Kanal-Breakout-Mittelumkehrstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-22 10:47:45
Tags:

img

Übersicht

Dies ist eine durchschnittliche Reversion-Breakout-Strategie, die auf dem Bollinger Bands-Kanal basiert. Es geht lang, wenn der Preis unter den unteren Band der Bollinger Bands bricht. Der Stop-Loss wird auf dem Tiefpunkt der Breakout-Bar gesetzt. Das Gewinnziel ist das obere Band der Bollinger Bands.

Strategie Logik

Die Strategie verwendet einen 20-Perioden-Bollinger Bands-Kanal, der aus einem mittleren Band, einem oberen Band und einem unteren Band besteht. Das mittlere Band ist ein 20-Perioden-einfacher gleitender Durchschnitt. Das obere Band ist das mittlere Band plus 2 Standardabweichungen. Das untere Band ist das mittlere Band minus 2 Standardabweichungen.

Wenn der Preis unter das untere Band bricht, zeigt dies an, dass der Preis in einen Überverkaufszustand eingetreten ist. Die Strategie wird an diesem Punkt lang gehen. Nach dem Eintritt in die Position wird der Stop-Loss auf dem Tiefpunkt der Eintrittsleiste gesetzt, und das Gewinnziel ist das obere Band. Die Strategie zielt daher darauf ab, den Umkehrprozess vom Überverkauf zum Mittel zu erfassen, um Gewinne zu erzielen.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Verwenden Sie Bollinger-Bänder, um den Überkauf/Überverkauf zu beurteilen, der eine gewisse Aktualität aufweist
  2. Umkehrhandelsstrategie, Vermeidung von Höchstständen und Abbau von Tiefständen
  3. angemessene Stop-Loss- und Take-Profit-Einstellungen für eine bessere Risikokontrolle

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Bollinger-Bänder können Preistrends nicht perfekt bestimmen, Ausbrüche können scheitern
  2. Kontinuierlicher Marktcrash kann zum Stop-Loss führen
  3. Profit in der Nähe der oberen Band hat das Risiko der hohen Kosten

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten verbessert werden:

  1. Optimieren Sie die Parameter der Bollinger-Bänder, um die beste Kombination zu finden
  2. Hinzufügen von Filterindikatoren zur Verbesserung der Eingangsgenauigkeit
  3. Optimieren Sie Stop Loss und Gewinn für höhere Rentabilität

Schlussfolgerung

Die Strategie hat eine klare Logik und ist bis zu einem gewissen Grad handelbar. Allerdings ist ihre Wirksamkeit bei der Beurteilung von Überkauf/Überverkauf mit Bollinger Bands begrenzt, und sie kann den Trend nicht perfekt bestimmen. Außerdem muss der Stop-Loss- und Take-Profit-Mechanismus verbessert werden. In Zukunft kann er durch die Auswahl genauerer Indikatoren, die Anpassung von Parametern und die Verbesserung der Ausgangslogik zur Verbesserung der Rentabilität optimiert werden.


/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 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/
// © Ronsword
//@version=5

strategy("bb 2ND target", overlay=true)
 
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 1997"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Sept 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if the current bar falls inside the date range
inTradeWindow = true

// Bollinger Bands inputs
length = input.int(20, title="Bollinger Bands Length")
mult = input.float(2.0, title="Multiplier")
src = input(close, title="Source")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// EMA Settings
ema20 = ta.ema(close, 20)
plot(ema20, color=color.blue, title="20 EMA")

// Entry condition
longEntryCondition = ta.crossover(close, lower)

// Define stop loss level as the low of the entry bar
var float stopLossPrice = na
if longEntryCondition
    stopLossPrice := low

// Top Bollinger Band itself is set as the target
topBandTarget = upper

// Enter long position when conditions are met
if inTradeWindow and longEntryCondition
    strategy.entry("Long", strategy.long, qty=1)

// Set profit targets
strategy.exit("ProfitTarget2", from_entry="Long", limit=topBandTarget)

// Set stop loss
strategy.exit("StopLoss", stop=stopLossPrice)

// Plot Bollinger Bands with the same gray color
plot(upper, color=color.gray, title="Upper Bollinger Band")
plot(lower, color=color.gray, title="Lower Bollinger Band")



Mehr