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.
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.
Die Vorteile dieser Strategie sind:
Zu den Risiken dieser Strategie gehören:
Die Strategie kann in folgenden Aspekten verbessert werden:
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")