Richard Bookstaber Momentum-Ausbruchstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-02 15:12:46
Tags:

img

Übersicht

Die Momentum-Breakout-Strategie basiert auf dem von Richard Bookstaber 1984 vorgeschlagenen Konzept, dass der Markt, sobald es eine große volatile Bewegung gibt, dazu neigt, ihr zu folgen. Somit verwendet sie den ATR, um die Volatilität zu messen, und erteilt Aufträge, wenn die aktuelle Änderung des Schlusskurses den Schwellenwert übersteigt, der durch Multiplikation des ATR mit einer konfigurierbaren Konstante berechnet wird.

Strategie Logik

Die Strategie berechnet zunächst den ATR-Indikator, um die Marktvolatilität zu messen. Dann berechnet sie den absoluten Wert der täglichen Schlusskursänderung. Wenn die Schlusskursänderung den ATR-Wert um mehrere Vielfache übersteigt, werden Handelssignale generiert. Insbesondere, wenn der Schlusskurs mehr als die ATR-Oberbahn steigt, gehen Sie lang; wenn der Schlusskurs mehr als die ATR-Oberbahn fällt, gehen Sie kurz.

Die Strategie verwendet den ATR-Indikator, um dynamisch die Breakout-Schwelle zu bestimmen. Wenn die Marktvolatilität steigt, steigt die Schwelle, um fehlerhafte Trades zu reduzieren. Wenn die Marktvolatilität abnimmt, sinkt die Schwelle, um Breakout-Möglichkeiten rechtzeitig zu erfassen.

Analyse der Vorteile

  • Dynamische ATR-Stop-Loss-Verfahren können Risiken mit adaptivem Stop-Loss auf Basis der Marktvolatilität effektiv kontrollieren.
  • Die Verwendung von Breakouts zur Erzeugung von Handelssignalen kann Markttrendrotationen erfassen.
  • Großer Parameteroptimierungsraum, kann für verschiedene Produkte und Zyklen angepasst werden.
  • Die Strategielogik ist einfach und klar, leicht verständlich und umsetzbar.

Risikoanalyse

  • Der ATR-Indikator reagiert langsam auf plötzliche Ereignisse, kann den ersten Ausbruch verpassen.
  • Bei einem Ungleichgewicht zwischen Long und Short funktioniert es deutlich besser für eine Seite als für den Zwei-Wege-Handel.
  • Strategieparameter sind leicht zu überanpassen, tatsächliche Ergebnisse können schlecht sein.
  • Häufiger Handel, Transaktionskosten können hoch sein.

Sie können auch andere Indikatoren kombinieren, um Handelsmöglichkeiten auszuwählen, um die Effizienz zu verbessern.

Optimierungsrichtlinien

  • Erwägen Sie die Kombination anderer Indikatoren wie RSI, MACD, um die Trendrichtung zu bestimmen und falsche Trades zu vermeiden.
  • Kann ein Positionsmanagementmodul hinzufügen, um Positionen anhand der Marktbedingungen anzupassen.
  • Kann für verschiedene Produkte optimale Parametersätze auswählen.
  • Kann maschinelles Lernen kombinieren, um Parameter automatisch zu optimieren.

Zusammenfassung

Die Momentum-Breakout-Strategie ist einfach und direkt und erzeugt Handelssignale aus Breakouts. Der ATR-Stop-Loss ermöglicht es, sich an die Marktvolatilität anzupassen. Die Strategie beruht auf Parameteroptimierung für anständige Ergebnisse. Es gibt aber auch einige Probleme wie fehlende anfängliche Breakouts, häufiges Trading usw. Für stabile Gewinne in komplexen Märkten sind weitere Verbesserungen durch Kombination mit anderen Techniken erforderlich.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 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/
// © EduardoMattje

//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, 
 default_qty_value=100, process_orders_on_close=true, initial_capital=20000)

// Inputs

var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)

// Calculations

atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)

atrPenetration(int signal) =>
    res = closingChange * signal > atr[1]

longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)

// Order calls

if (longCondition)
    strategy.entry(strategy.direction.long, strategy.long)

if (shortCondition)
    strategy.entry(strategy.direction.short, strategy.short)

// Visuals

plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)


Mehr