Bollinger-Bänder-Oszillations-Breakthrough-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-01 16.45:54
Tags:

img

Übersicht

Diese Strategie kombiniert Bollinger Bands und Aroon Indikator, um von Schwingungen und Durchbrüchen in volatilen Märkten zu profitieren.

Strategie Logik

Die Strategie verwendet hauptsächlich zwei Indikatoren, um Handelsmöglichkeiten und Ausgangspunkte zu identifizieren.

Erstens die Bollinger Bands. Sie bestehen aus einem mittleren Band, einem oberen Band und einem unteren Band. Das mittlere Band ist ein einfacher gleitender Durchschnitt des Schlusskurses über n Perioden. Das obere Band ist das mittlere Band + k Standardabweichungen. Das untere Band ist das mittlere Band - k Standardabweichungen. Ein Aufbruch des mittleren Bands vom unteren Band signalisiert einen langen Einstieg. Ein Abbruch des mittleren Bands vom oberen Band signalisiert einen kurzen Einstieg.

Zweitens, der Aroon-Indikator. Er spiegelt die relative Stärke des höchsten und niedrigsten Preises über n Perioden wider. Aroon kann Trends und Chancen bestimmen. Wenn die Aroon-Up-Linie über einer Schwelle liegt, zeigt sie einen Aufwärtstrend an. Wenn die Aroon-Down-Linie über einer Schwelle liegt, zeigt sie einen Abwärtstrend an. Die Strategie verwendet Aroon Up, um einen Aufwärtstrend zu bestätigen, und Aroon Down, um einen Stop-Loss zu bestimmen.

Die Kombination der beiden Indikatoren führt dazu, dass die Strategie lang geht, wenn ein Bollinger-Breakthrough eintritt und Aroon Up über einer Schwelle liegt.

Vorteile

  1. Die Kombination von mehreren Indikatoren verbessert die Genauigkeit. Ein einzelner Indikator ist anfällig für Marktlärm. Die Kombination von Bollinger Bands und Aroon kann falsche Signale filtern.

  2. Bollinger Bands haben eine starke Trenderkennungsfähigkeit und können kurzfristige Durchbruchsmöglichkeiten erkennen.

  3. Eine angemessene Risikokontrolle. Stop-Loss und Aroon Down kontrollieren das Abwärtsrisiko. Die Positionsgröße legt auch Grenzen pro Handelsverlust.

  4. Im Vergleich zu Trendfolgestrategien ist diese Strategie besser auf schwankenden Märkten.

Risiken

  1. Bollinger-Bänder können ungenau sein, plötzliche Marktereignisse können Bollinger-Bänder ungültig machen.

  2. Aroon-Parameter müssen optimiert werden, unterschiedliche Märkte müssen Aroon-Parameter anpassen, um optimale Ergebnisse zu erzielen.

  3. Der Stop-Loss-Bereich sollte angemessen entspannt sein, um wiederholte Berührungen zu vermeiden.

  4. Vermeiden Sie starke Trendmärkte. Die Strategie eignet sich für schwankende Märkte. Sie ist schlecht in starken Trendmärkten.

Optimierungen

  1. Bollinger-Parameter optimieren, adaptive Bollinger-Bänder verwenden, dynamische Anpassung von Parametern für eine bessere Flexibilität ermöglichen.

  2. Optimieren Sie dynamische Aroon-Parameter. Verschiedene Assets und Zeitrahmen benötigen unterschiedliche Aroon-Parameter. Erforschung dynamischer Optimierung.

  3. Fügen Sie Filter wie RSI hinzu, um Überkauf/Überverkauf zu vermeiden.

  4. Algorithmus-Training kann bessere Stop-Loss-Methoden finden, um wiederholte Auslöser zu minimieren.

  5. Vergleichen Sie das mit einem Volumen wie OBV, um falsche Ausbrüche zu vermeiden.

Schlussfolgerung

Insgesamt handelt es sich um eine typische Schwingungshandelsstrategie. Sie identifiziert Handelsmöglichkeiten, indem sie Bollinger-Bänder und Aroon kombiniert, die in der Lage sind, kurzfristige Marktschwingungen zu nutzen. Mit einem ordnungsgemäßen Stop-Loss, Risikomanagement und Parameteroptimierung eignet sie sich für unterschiedliche Märkte. Aber Optimierung und Risikokontrolle sind erforderlich, um sie nicht in Trendmärkten anzuwenden. Mit weiteren Verbesserungen kann sie zu einer sehr praktischen Quant-Strategie werden.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 21:00:00
period: 1m
basePeriod: 1m
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/
// © relevantLeader16058

//@version=4
// strategy(shorttitle='Bollinger bands And Aroon Scalping',title='Bollinger bands And Aroon Scalping (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


// BB inputs and calculations
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)


lengthAr = input(288, minval=1)
AroonUP = 100 * (highestbars(high, lengthAr+1) + lengthAr)/lengthAr
AroonDown = 100 * (lowestbars(low, lengthAr+1) + lengthAr)/lengthAr


Confirmation = input(90, "Aroon Confirmation")
Stop = input(70, "Aroon Stop")

Bullish = crossunder (close, basis)
Bearish = crossunder (close, upper)

//Entry 

strategy.entry(id="long", long = true, when = Bullish and AroonUP > Confirmation and window())

//Exit

strategy.close("long", when = Bearish or AroonUP < Stop and window())




Mehr