Anpassungsfähige Volatilitäts-Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-08 14:38:31
Tags:

img

Übersicht

Die Adaptive Volatility Breakout Strategie ist eine Trend-folgende Strategie, die Breakout-Signale identifiziert, wenn die Preise stark über ein bestimmtes Niveau steigen, Long-Positionen aufstellt und den Aufwärtstrend bis zum Gewinn am nächsten Tag weiter verfolgt.

Die Strategie wurde von Larry R. Williams, einem berühmten Futures- und Aktienhändler, vorgeschlagen. Sie versucht, Preis-Breakout-Punkte zu erfassen, die oft Wende im Markt bedeuten. Durch die rechtzeitige Identifizierung dieser Signale und die Etablierung von Positionen können Gewinne erzielt werden, indem man neuen Trendrichtungen folgt.

Grundsätze

Die Kernmetrik dieser Strategie ist das bestimmte Niveau, berechnet durch:

Certain level = Close + k * (High - Low) 

Hierbei handelt es sich um einen empirischen Koeffizienten mit einem Wert von 0,6. Diese Formel berücksichtigt die Volatilität der höchsten und niedrigsten Preise und macht die Ausbruchspunkte flexibler, um sich an Marktschwankungen anzupassen.

Wenn der höchste Preis des Tages den berechneten bestimmten Niveau durchbricht, zeigt dies einen Preisbruch an. Die Strategie wird dann eine Long-Position einrichten. Die Position wird am nächsten Tag vollständig geschlossen.

Der Stop-Loss wird auf die Hälfte des niedrigsten Preises und des Einstiegspreises des vorherigen Tages gesetzt, um zu verhindern, dass der Verlust sich ausdehnt.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Erfassung von Volatilität, Trendverfolgung: Die Strategie beinhaltet höchste und niedrigste Preise, um flexible Ausbruchspunkte zu berechnen, die den Rhythmus der Preisschwankungen erfassen.

  2. Zeitnaher Eintritt, Trendverfolgung: Durch die tägliche Berechnung von Ausbruchsignalen können neue Trends rechtzeitig ermittelt werden, um den Kursanstieg zu verfolgen.

  3. Richtige Risikokontrolle: Eine angemessene Stop-Loss-Einstellung bewirkt eine effektive Kontrolle einzelner Verluste.

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Das Risiko eines fehlgeschlagenen Ausbruchs: Preis-Ausbrüche tragen nicht unbedingt zu einem Aufwärtstrend bei und können kurzfristige falsche Ausbrüche sein, die Verluste verursachen.

  2. Extreme Marktrisiken: Bei extremen Marktereignissen wie Marktcrashs können die Preise auf-/abgehen, was zu Stop-Loss-Triggern und großen Verlusten führt.

  3. Übermäßiges Handelsrisiko: Die tägliche Eröffnung und Schließung von Positionen erhöht die Handelsfrequenz und die Provisionen.

Optimierung

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Hinzufügen eines Multiplikators: Hinzufügen eines Multiplikators zur Breakout-Formel, indem er angemessen reduziert wird, wenn die Marktvolatilität steigt, und erhöht wird, wenn sich der Markt stabilisiert, wodurch die Strategie elastischer wird.

  2. Verlängerung der Aufbewahrungsdauer: Verlängerung der Aufbewahrungsdauer auf 2 oder 3 Tage, um kurzfristige falsche Ausbrüche auszufiltern.

  3. Optimierung des Stop-Loss: Einstellung des Stop-Loss auf tiefere Unterstützungsniveaus wie Bollinger-Unterband oder Schließung des vorherigen Tages.

Schlussfolgerung

Die Adaptive Volatility Breakout Strategie verfolgt Trends, indem sie die Preisvolatilität und -rhythmen dynamisch verfolgt. Im Vergleich zu traditionellen Breakout-Strategien ist sie flexibler und fähig, Preisbewegungen zu erfassen.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 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/
// © Dicargo_Beam

//@version=5
strategy("Volatility Breakout Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100,process_orders_on_close=false)

k = input.float(0.6)


[o,h,l,c] = request.security(syminfo.tickerid,"D",[open,high,low,close])

lp = math.log(c[1])+(math.log(h[1])-math.log(l[1]))*k
_lp = math.pow(2.718,lp)

longcond = _lp < high
exit = hour==0 or  math.log(close) < (math.log(l[1])+lp)/2



plot(_lp,"Entry",color=color.yellow)
//plot(l,"Yesterday's Low")
plot((_lp+l[1])/2,"StopLoss",color=color.red)


strategy.entry("Long", strategy.long,comment = "Long", when = longcond and strategy.opentrades == 0)

strategy.close("Long", comment="Exit", when = exit)


var bg = 0
bg := if hour == 0
    bg + 1
else
    bg[1]

bgcolor(bg/2== math.floor(bg/2) ? color.new(color.blue,95):na)




Mehr