Bollinger-Bänder und Intraday Strength Index Mean Reversion-Strategie


Erstellungsdatum: 2024-02-20 15:07:59 zuletzt geändert: 2024-02-20 15:07:59
Kopie: 0 Klicks: 825
1
konzentrieren Sie sich auf
1617
Anhänger

Bollinger-Bänder und Intraday Strength Index Mean Reversion-Strategie

Überblick

Die Strategie basiert auf dem Brin-Band und dem Intraday-Strength-Index. Sie nutzt die Brin-Band-Präsentation, um den Zeitpunkt des Eintritts zu bestimmen.

Strategieprinzip

Die Strategie beginnt mit der Berechnung der mittleren, oberen und unteren Bahnen des Brin-Bands. Die mittlere Bahn ist der einfache Moving Average oder der Index Moving Average des Schlusskurses. Die obere Bahn wird durch die Berechnung der Standarddifferenz aufgebaut, die auf der mittleren Bahn doppelt so hoch ist wie die abnehmende Standarddifferenz.

Als Hilfsindikator wurde ein Tagesstärkeindex eingeführt. Dieser Index kombiniert Preis- und Umsatzinformationen. Wenn der Index positiv ist, wird eine Steigerung der Kaufkraft als Mehrpositionssignal angegeben.

Bei der Positionsaufnahme benötigt die Strategie gleichzeitig eine Preis-Breakout-Bulling-Band-Abwärtsbewegung und eine Urteilsanzeige für den intraday-Strength-Index. Bei der Stop-Loss-Strategie nimmt die Strategie eine zeitliche Stop-Loss-Version vor und wählt den Stop-Loss-Exit, wenn nach einer bestimmten Periode kein Gewinn erzielt wird.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass sie die Eigenschaften der durchschnittlichen Rückkehr des Preises nutzt, um zu profitieren. Wenn die Preise nach einer großen Abweichung statistisch gesehen eine größere Wahrscheinlichkeit haben, dass der Preis zur mittleren Achse zurückkehrt, bietet dies die theoretische Grundlage für die Funktionsweise der Strategie.

Ein weiterer Vorteil besteht darin, dass die Strategie die Tagesintensität des Handelsvolumens-Index hinzufügt, um die Preissignale zu filtern. Die Handelsmenge belegt die Wirksamkeit der Preissignale. Dies vermeidet falsche Signale in Fällen, in denen die Handelsmenge bei einigen starken Preisschwankungen unzureichend ist.

Risikoanalyse

Obwohl die Strategie auf die Wahrscheinlichkeit eines Preisrückgangs zum Durchschnittswert angewiesen ist, um einen Gewinn zu erzielen, kann ein zufälliger Wandel des Marktpreises auch dazu führen, dass ein Stop-Loss ausgelöst wird, was zu Verlusten führt. Dies ist ein allgemeines Risiko für die Mean Return-Strategie.

Ein weiteres Hauptrisiko besteht darin, dass die Rückkehr des Preises zum Durchschnittswert selbst ein langwieriger Prozess ist. Für den Anleger kann das Geld für eine gewisse Zeit eingesperrt werden. Dieses Zeitrisiko kann dazu führen, dass der Anleger andere bessere Anlagemöglichkeiten verpasst.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Brin-Band-Parameter, der Anpassungszyklen und der Standarddeviation-Indikatoren für die schwankenden Bedingungen in verschiedenen Märkten

  2. Versuchen Sie mit anderen Arten von Moving Averages, wie Linear-Weighted Moving Averages, um eine bessere Geschwindigkeit zu erzielen.

  3. Versuchen Sie mit anderen Arten von Transaktionsvolumenindikatoren, um bessere Signalen für die Bestätigung von Preisen zu finden

  4. Einschluss einer Stop-Loss-Strategie, um den maximalen Verlust für eine einzelne Bestellung zu kontrollieren

Zusammenfassen

Die Strategie als Ganzes ist eine typische Mittelwert-Rückkehr-Strategie. Sie ist auf ein Wahrscheinlichkeitsereignis angewiesen, um zu profitieren, aber die Risiken sind ebenso offensichtlich. Durch die Anpassung der Parameter und die Optimierung der Indikatoren können bessere Ergebnisse erzielt werden. Für die Anleger ist es jedoch auch entscheidend, die Eigenschaften dieser Strategie richtig zu verstehen.

Strategiequellcode
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// Bollinger Bands Strategy with Intraday Intensity Index
// by SparkyFlary

//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true)

BBlength = input(20, title="Bollinger Bands length")
BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"])
BBprice = input(close, title="source")
timeStop = input(10, title="Time-based stop length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
withIII = input(true, title="with Intraday Intensity Index?")
IIIlength = input(21, title="Intraday Intensity Index length")

//function for choosing moving averages
f_ma(type, src, len) =>
    float result = 0
    if type == "SMA"
        result := sma(src, len)
    if type == "EMA"
        result := ema(src, len)
    result

//Intraday Intensity Index
k1 = (2 * close - high - low) * volume
k2 = high != low ? high - low : 1
i = k1 / k2
iSum = sum(i, IIIlength)

//Bollinger Bands
BBbasis = f_ma(BBmaType, BBprice, BBlength)
BBdev = BBmult * stdev(BBprice, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

plot(BBupper, title="Bollinger Bands Upper Line")
plot(BBlower, title="Bollinger Bands Lower Line")
plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon)

//Strategy
buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1)
sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0)
short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1)
cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0)

strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)