Die Strategie heißt
Die Kernlogik dieser Strategie besteht darin, sowohl RSI als auch ZigZag-Indikatoren zu verwenden, um den Preistrend zu bestimmen. Insbesondere beurteilt der RSI-Indikator, ob der Preis überkauft oder überverkauft ist. Der ZigZag-Indikator erkennt, ob der Preis einen signifikanten Prozentsatzanstieg hat. Wenn beide Indikatoren gleichzeitig Handelssignale geben, bestimmen wir, dass es eine Trendumkehr für eine Gegenposition gibt.
Für den RSI-Indikator setzen wir die Überkauflinie auf 75 und die Überverkaufslinie auf 25. Wenn der RSI von unter 25 auf über 25 steigt, wird er als Umkehrung von Überverkauf zu Aufschwung betrachtet. Wenn der RSI von über 75 auf unter 75 fällt, zeigt er eine Umkehrung von Aufschwung zu Überverkauf an.
Für den ZigZag-Indikator setzen wir die Preisspitze auf 1% prozentual. Wenn der Preis einen Anstieg von mehr als 1% in der Amplitude macht, gibt die ZigZag-Linie ein Signal. Kombiniert mit dem Trendbeurteil können wir Trendumkehrungen erkennen.
Wenn beide Indikatoren Signale geben, wenn der vorherige Trend bullisch ist und jetzt der RSI überkauft ist, während ZigZag einen Preisanstieg zeigt, bestimmen wir, dass der Preis an der Spitze ist und einen Shorting in Betracht ziehen kann. Im Gegenteil, wenn der vorherige Trend bärisch ist und jetzt der RSI überverkauft ist, während ZigZag einen Preisanstieg zeigt, bestimmen wir, dass der Preis einen Tiefpunkt erreicht und einen Longing in Betracht ziehen kann.
Der größte Vorteil dieser Strategie ist die verbesserte Signalqualität durch die Kombination zweier Indikatoren. Ein einzelner Indikator neigt dazu, viele falsche Signale zu geben.
Eine weitere Stärke ist die flexible Parameter-Ausrichtung. Die RSI- und ZigZag-Parameter sind an unterschiedliche Marktbedingungen angepasst, um optimale Ergebnisse zu erzielen.
Das Hauptrisiko sind falsche Signale der Indikatoren. Trotz der Validierung der doppelten Indikatoren können bei hoher Volatilität immer noch Ausfälle auftreten, die zu Handelsfehlern führen.
Um die Risiken zu reduzieren, können wir die Position Haltezeit für rechtzeitige Stop-Loss verkürzen. Parameter-Optimierung ist auch sehr wichtig, um die Merkmale des Marktes zu erfüllen. manuelle Intervention kann notwendig sein, wenn man mit abnormalen Marktbedingungen konfrontiert ist.
Die Strategie kann in folgenden Aspekten verbessert werden:
Zusätzliche Indikatoren wie KDJ und MACD für das kombinierte Urteilsvermögen sollen die Signale weiter filtern.
Einführung von Algorithmen für maschinelles Lernen zur automatischen Optimierung von Parametern, die sich an Marktveränderungen anpassen.
Ein anpassungsfähiger Stop-Loss-Mechanismus mit dynamischem Schutz basierend auf der Marktvolatilität erstellen.
Optimierung der Positionsgröße basierend auf den Trendstärken.
Alternative Strategien zur automatischen Umstellung auf ungewöhnliche Märkte.
Zusammenfassend handelt es sich um eine typische Trendfolging-Strategie. Die Kernidee besteht darin, Trendumkehrungen mithilfe von RSI- und ZigZag-Indikatoren in Kombination zu identifizieren. Der Vorteil liegt in einer verbesserten Signalqualität durch doppelte Indikatorfiltration. Die Risiken eines Indikatorversagens müssen vollständig berücksichtigt und die Strategie durch Parameter-Tuning, Stop-Loss-Optimierung, Positionsgröße usw. kontinuierlich verbessert werden. Insgesamt bietet dies eine effektive Trendverfolgungslösung für den Krypto-Markt.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h 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/ // © SoftKill21 //@version=4 strategy("Crypto ZigZag RSI strategy 15min",overlay=true) length =input(5, title="RSI Length") overSold = input(25) overBought= input(75) p =close vrsi = rsi(p, length) var bool long = na var bool short = na long :=crossover(vrsi,overSold) short := crossunder(vrsi,overBought) var float last_open_long = na var float last_open_short = na last_open_long := long ? close : nz(last_open_long[1]) last_open_short := short ? close : nz(last_open_short[1]) entry_value =last_open_long entry_value1=last_open_short // ZZPercent = input(1, title="Minimum % Change", type=input.float) r1Level=entry_value s1Level=entry_value1 trend = 0 trend := na(trend[1]) ? 1 : trend[1] LL = 0.0 LL := na(LL[1]) ? s1Level : LL[1] HH = 0.0 HH := na(HH[1]) ?r1Level : HH[1] Pi = ZZPercent * 0.01 zigzag = float(na) if trend > 0 if r1Level >= HH HH := r1Level HH else if s1Level < HH * (1 - Pi) zigzag :=r1Level[1] trend := -1 LL := s1Level LL else if s1Level <= LL LL := s1Level LL else if r1Level > LL * (1 + Pi) zigzag := s1Level[1] trend := 1 HH := s1Level HH shortc=crossunder(trend,0) longc=crossover(trend,0) longa =input(true) shorta=input(false) if(longa) strategy.entry("long",1,when=longc) strategy.close("long",when=shortc) if(shorta) strategy.entry("short",0,when=shortc) strategy.close("long",when=longc)