Handelsstrategie für Volatilitätsbreakouts

Schriftsteller:ChaoZhang, Datum: 2023-12-11 14:20:48
Tags:

img

Übersicht

Die Volatility Breakout Trading Strategie ist eine einzelne Kursbewegung basierte Strategie. Sie erzeugt Kauf- und Verkaufssignale durch Analyse von Preis- und Volumenänderungen. Diese Strategie kann auch mit Warnungen kombiniert werden, um Aufträge auf anderen Börsen oder Systemen auszulösen.

Strategie Logik

Diese Strategie analysiert die Schließ-, Öffnungs-, Hoch- und Tiefpreise von Kerzen, um Preistrends und -dynamik zu bestimmen.

Insbesondere prüft es, ob die Schlusskurs der letzten 3 Kerzen kontinuierlich höher oder niedriger sind als die Eröffnungskurs.

Wenn das aktuelle Kerzenvolumen den maximalen Wert in der letzten Periode übersteigt, deutet dies auf ein steigendes Handelsvolumen und starke Kräfte hin, die in den Markt eintreten.

Wenn der Preis auf drei aufeinander folgenden Kerzenbrüchen ausbricht und das Handelsvolumen wächst, wird die Strategie Kauf- oder Verkaufssignale erzeugen.

Vorteile

Dies ist eine einfache, aber wirksame Strategie, bei der Preisbewegung und Volumensignale genutzt werden.

  1. Klare Logik, leicht zu verstehen und umzusetzen
  2. Sehr empfindlich gegenüber volatilen Marktveränderungen, rechtzeitig auf Veränderungen aufmerksam
  3. Benötigt nur grundlegende Kerzen- und Volumendaten, keine komplexen Algorithmen
  4. Flexible Parameter, die sich an verschiedene Produkte und Zeitrahmen anpassen lassen
  5. Niedrige Kosten, geeignet für Kleinanleger

Risikoanalyse

Es gibt auch einige potenzielle Risiken:

  1. Keine Preisvorhersage, eine gewisse Blindheit besteht
  2. Anfällig für falsche Signale durch versehentliche Berührungen
  3. Kann in Bereichsgebundenen Märkten unsachgemäße Signale erzeugen
  4. Keine Stop-Loss-Mechanik, Risiken für die Ausweitung der Verluste

Um diese Risiken zu mindern, kann man in Betracht ziehen, einen beweglichen Stop Loss hinzuzufügen, Parameterkombinationen zu optimieren oder mit anderen Indikatoren oder Strategien zu kombinieren.

Optimierungsrichtlinien

Als grundlegende Strategie gibt es noch viel Optimierungsmöglichkeiten:

  1. Hinzufügen von Stop-Loss-Mechanismen zur Verlustkontrolle
  2. Optimierung der Parameter für mehr Produkte und Zeiträume
  3. Hinzufügen anderer Indikatoren zu Filtersignalen
  4. Kombination mit Trendverfolgungsstrategien zur automatischen Trendanpassung
  5. Einbeziehung von Algorithmen für maschinelles Lernen zur Dynamikparameter- und Signaloptimierung
  6. Einbau von Quantitativforschungs- und Feedbackmodulen für eine kontinuierliche Entwicklung

Schlussfolgerung

Dies ist eine sehr praktische Preis-Action-basierte Strategie. Sie hat die Vorzüge, intuitiv zu sein, leicht zu verstehen und zu niedrigen Kosten umzusetzen. Inzwischen hat sie auch eine gewisse Blindheit und benötigt weitere Optimierungen und Kombinationen für eine verbesserte Leistung. Insgesamt ist dies ein wertvolles Strategiekonzept, das eine eingehende Forschung und Anwendung verdient.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)



Mehr