Die Swing Points Breakouts Strategie ist eine langfristige Trendschwankungsstrategie, die auf der Identifizierung von Swing High und Swing Low basiert. Die Strategie tritt in Long-Positionen ein, wenn die Preise den höchsten Preis in der letzten Periode durchbrechen, die von den Eingabeparametern angegeben wurde, und tritt in Short-Positionen ein, wenn die Preise den niedrigsten Preis in der letzten Periode durchbrechen.
Die Strategie definiert den höchsten Preis und den niedrigsten Preis der jüngsten N-Bar als Swing-Hoch und Swing-Tief durch die Eingabeparameter. Sie bestimmt den Ein- und Ausstieg basierend auf dem Richtungsparameter.
Darüber hinaus setzt die Strategie Stop-Losses ein. Nach dem Öffnen von Long-Positionen wird der Stop-Loss in der Nähe des jüngsten niedrigsten Preises gesetzt. Nach dem Öffnen von Short-Positionen wird der Stop-Loss in der Nähe des jüngsten höchsten Preises gesetzt. Dies vermeidet effektiv große Verluste in einem Trendmarkt.
Der größte Vorteil dieser Strategie besteht darin, dass sie die wichtigsten Schwankungen um Swing-Hoch- und Tiefststände und Gewinne entsprechend erfasst.
Die Vorteile sind insbesondere:
Die Strategielogik ist klar, mit Ein- und Ausstiegen, die auf Swing High/Low Breakouts basieren.
Es verwendet Swing-Hochs/Tiefs, um Umkehrchancen zu identifizieren, ein klassischer Ansatz der technischen Analyse.
Es gibt Stop-Losses, um Risiken zu kontrollieren und riesige Verluste in Trendmärkten zu vermeiden.
Der Code hat eine klare Struktur und ist leicht zu verstehen und zu ändern.
Parameter können angepasst werden, um die Strategie zu optimieren, wie zum Beispiel die Swing-Hoch-/Tief-Periode.
Das Hauptrisiko dieser Strategie ist die ungenaue Identifizierung von Swing High/Low, die zu falschen Trades führt.
Falscher Ausbruch von Swing-Hochs/Tiefs, was zu falschen Einträgen führt.
Großer Stop-Loss-Hit in der Nähe der Ausbruchspunkte.
Trending-Symbole benötigen in der Regel große Kosten, um Schwingenpunkte zu bestimmen.
Eine unsachgemäße Einstellung der Parameter beeinträchtigt auch die Strategieleistung.
Zu den Lösungen gehören:
Optimierung von Parametern wie Swing High/Low Period.
Erhöhte Stoppverlustdistanz.
Vermeiden Sie es bei Trending-Symbolen.
Maschinelles Lernen zur dynamischen Optimierung von Parametern.
Die Strategie kann in folgenden Richtungen optimiert werden:
Dynamische Optimierung von Schwing-Hoch-/Tief-Perioden anstelle von festen Werten, um eine Überanpassung zu vermeiden.
Einführung dynamischer Stop-Loss-/Take-Profit-Verfahren auf Basis von ATR und Volatilität.
Kombination mehrerer Zeitrahmen, wobei höhere TFs zur Definition des Trends und niedrigere TFs für den Einstieg verwendet werden.
Einbeziehung von Modellen des maschinellen Lernens zur Vorhersage potenzieller Schwungpunkte und Verbesserung der Leistung.
Optimierung der Stop-Loss-Algorithmen, um unnötige Treffer zu vermeiden und gleichzeitig einen effektiven Stop-Loss zu erhalten.
Die Swing Points Breakouts Strategie ist eine praktische langfristige quantitative Strategie. Durch die Erfassung von Umkehrmöglichkeiten um Swing Points und die Einstellung von Stop Losses zur Kontrolle von Risiken gewährleistet sie Gewinne und kontrolliert gleichzeitig Drawdowns. Mit flexiblem Parameter-Tuning und klarer Logik ist sie ein empfohlenes Strategie-Paradigma, das sich lohnt. Weitere Verbesserungen können durch die Einführung dynamischer Optimierung und maschinelles Lernen erzielt werden.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m 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/ // © tweakerID // Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a // stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). // The direction of the strategy can be adjusted in the Inputs panel. //@version=4 strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) //Inputss i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit") i_SwingLow=input(10, title="Swing Low Lookback") i_SwingHigh=input(10, title="Swing High Lookback") i_reverse=input(false, "Reverse Trades") i_SLExpander=input(defval=0, step=1, title="SL Expander") //Strategy Calculations SwingLow=lowest(i_SwingLow) SwingHigh=highest(i_SwingHigh) //SL & TP Calculations bought=strategy.position_size != strategy.position_size[1] LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) islong=strategy.position_size > 0 isshort=strategy.position_size < 0 SL= islong ? LSL : isshort ? SSL : na //Entries and Exits strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na) strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na) if i_SL strategy.exit("longexit", "long", stop=LSL) strategy.exit("shortexit", "short", stop=SSL) //Plots plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL") plot(SwingLow, color=color.red) plot(SwingHigh, color=color.green)