Breakout Scalper - Trendänderungen schnell erfassen

Schriftsteller:ChaoZhang, Datum: 2023-10-25 17:58:11
Tags:

img

Übersicht

Die Breakout-Scalper-Strategie ist eine Breakout-Handelsstrategie, die schnelle und langsame gleitende Durchschnitte verwendet, um Trendveränderungen zu identifizieren.

Strategie Logik

Die Strategie verwendet ein schnelles Fenster und ein langsames Fenster. Die Standardperioden sind 13 bzw. 52. Das schnelle Fenster erfasst kurzfristige Trends, während das langsame Fenster die Gesamtmarktrichtung bestimmt. Die mittleren Preise der beiden Fenster werden gezeichnet. Wenn der schnelle Mittelkurs über den langsamen Mittelkurs überschreitet, kann sich ein Aufwärtstrend bilden. Wenn der schnelle Mittelkurs unter den langsamen überschreitet, kann ein Abwärtstrend beginnen.

Wenn der schnelle Mittelkurs über dem langsamen Mittelkurs liegt und der sofortige Preis auch über dem schnellen Mittelkurs liegt, wird ein Kaufsignal generiert. Der Entry Stop wird am höchsten Preis des langsamen Fensters platziert. Wenn der schnelle Mittelkurs unter dem langsamen liegt und der sofortige Preis unter dem schnellen Mittelkurs liegt, wird ein Verkaufssignal ausgelöst, wobei der Entry Stop am niedrigsten Preis des langsamen Fensters liegt.

Darüber hinaus sind Exit-Stops für die Risikokontrolle definiert. Der lange Exit-Stop ist die Maximalzahl der schnellen und langsamen Fenster niedrigsten Preise. Der kurze Exit-Stop ist die Minimalzahl der schnellen und langsamen Fenster höchsten Preise. Dies stellt sicher, dass die Stops außerhalb der aktuellen Trendrichtung zur Risikominderung platziert werden.

Die Positionen werden geschlossen, wenn die Eintrittsbedingungen nicht mehr gültig sind, um unnötige Verluste bei seitlichen Märkten zu vermeiden.

Analyse der Vorteile

Zu den wichtigsten Vorteilen dieser Strategie gehören:

  1. Die Kombination der schnellen und langsamen Fenster ermöglicht eine reaktionsschnelle Trendänderungserkennung.

  2. Effektives Risikomanagement durch angemessene Stopps, die rechtzeitige Ausgänge ermöglichen, um Verluste zu kontrollieren.

  3. Einfache und klare Logik, basierend auf gleitenden Durchschnittskreuzen und Stopps, leicht zu verstehen und umzusetzen.

  4. Einfache Optimierung und Erweiterbarkeit. Parameter können abgestimmt und weitere Indikatoren hinzugefügt werden.

Risikoanalyse

Die wichtigsten Risiken sind:

  1. Schnelle Fenster sind anfällig für Lärm. Marktlärm kann falsche Signale erzeugen.

  2. Langsamer Fensterverzögerung. Wendepunkte können spät erkannt werden.

  3. Stops, die direkt auf den Fensterpreisen basieren, können zu eng sein.

  4. Neben den Märkten gibt es falsche Signale.

Abmilderung:

  1. Optimiere das schnelle Fenster und füge Filter hinzu.

  2. Verbessern Sie das langsame Fenster und fügen Sie bestätigende Indikatoren hinzu.

  3. Der Puffer hält vom Marktpreis ab.

  4. Sehen Sie nach Seiten und vermeiden Sie Signale.

Optimierungsmöglichkeiten

Die Strategie kann in mehreren Aspekten verbessert werden:

  1. Optimieren Sie Fensterzeiten für verschiedene Vermögenswerte.

  2. Zusätzliche Positionsgrößen für eine bessere Risikokontrolle.

  3. Implementieren Sie Profitnahme-Mechanismen.

  4. Fügen Sie mehr Filter hinzu, um robuste Signale zu erzeugen.

  5. Einbeziehen Sie Mustererkennung wie Dreiecke und Divergenzen.

  6. Maschinelles Lernen nutzen, um Parameter zu optimieren.

Schlussfolgerung

Der Breakout Scalper zielt darauf ab, Trendänderungen schnell auf der Grundlage schneller und langsamer gleitender Durchschnittskreuze zu erfassen. Er eignet sich für volatile Märkte wie Gold. Die Stops bieten ein Risikomanagement. Die einfache Logik macht es einfach zu verstehen und zu optimieren. Die identifizierten Risiken und Verbesserungen bieten Möglichkeiten, die Strategie weiter zu verbessern. Insgesamt ist dies ein effizientes Trendhandelssystem, das in einen robusten Ansatz verfeinert werden kann.


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Breakout Scalper", overlay=true)

fast_window = input(title="Fast Window",  defval=13, minval=1)
slow_window = input(title="Slow Window",  defval=52, minval=1)
instant_period = input(title="Instant Period",  defval=3, minval=1)

fast_low = lowest(fast_window)
fast_high = highest(fast_window)
fast_mid = (fast_low + fast_high) / 2

slow_low = lowest(slow_window)
slow_high = highest(slow_window)
slow_mid = (slow_low + slow_high) / 2

instant_price = ema(close, instant_period)

plot(instant_price, title="Instant Price", color=black, transp=50)
fp = plot(fast_mid, title="Fast Mid", color=green)
sp = plot(slow_mid, title="Slow Mid", color=red)
fill(fp, sp, color=(fast_mid > slow_mid ? green : red))

is_buy_mode = (instant_price > fast_mid) and (fast_mid > slow_mid)
is_sell_mode = (instant_price < fast_mid) and (fast_mid < slow_mid)
entry_color = is_buy_mode ? green : (is_sell_mode ? red : na)
exit_color = is_buy_mode ? red : (is_sell_mode ? green : na)

entry_buy_stop = slow_high
entry_sell_stop = slow_low
exit_buy_stop = max(fast_low, slow_low)
exit_sell_stop = min(fast_high, slow_high)
strategy.entry("long", strategy.long, stop=entry_buy_stop, when=is_buy_mode)
strategy.exit("stop", "long", stop=exit_buy_stop)
strategy.entry("short", strategy.short, stop=entry_sell_stop, when=is_sell_mode)
strategy.exit("stop", "short", stop=exit_sell_stop)
strategy.close("long", when=(not is_buy_mode))
strategy.close("short", when=(not is_sell_mode))

entry_buy_stop_color = (strategy.position_size == 0) ? (is_buy_mode ? green : na) : na
plotshape(entry_buy_stop, location=location.absolute, color=entry_buy_stop_color, style=shape.circle)
entry_sell_stop_color = (strategy.position_size == 0) ? (is_sell_mode ? red : na) : na
plotshape(entry_sell_stop, location=location.absolute, color=entry_sell_stop_color, style=shape.circle)
exit_buy_stop_color = (strategy.position_size > 0) ? red : na
plotshape(exit_buy_stop, location=location.absolute, color=exit_buy_stop_color, style=shape.xcross)
exit_sell_stop_color = (strategy.position_size < 0) ? green : na
plotshape(exit_sell_stop, location=location.absolute, color=exit_sell_stop_color, style=shape.xcross)


Mehr