Optimierte Kreuzung von gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-02-04 10:31:45
Tags:

img

Übersicht

Diese Strategie basiert auf regelmäßigen gleitenden Durchschnitts-Crossovers, wurde jedoch geändert, um genauere Handelssignale zu erzeugen.

Strategie Logik

Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt von unten nach oben kreuzt, wird er als Kaufsignal betrachtet. Wenn der schnelle gleitende Durchschnitt den langsamen gleitenden Durchschnitt von oben nach unten kreuzt, wird er als Verkaufssignal betrachtet. Das heißt, goldenes Kreuz für lang, Todeskreuz für kurz. Sobald eine Long/Short-Position eingenommen wurde, wird der Stop-Loss eingestellt, um riesige Verluste zu vermeiden.

Der Schlüssel liegt in der Auswahl von schnellen und langsamen gleitenden Durchschnitten. Diese Strategie verwendet die exponentiellen gleitenden Durchschnitte der Periode 50&100 als schnelle bzw. langsame Linie. Der Strategieeffekt kann durch Anpassung der MA-Parameter optimiert werden.

Analyse der Vorteile

Diese Strategie identifiziert die Trendrichtung durch die Kombination von doppelten gleitenden Durchschnitten, die Marktlärm effektiv filtern können. Im Vergleich zu einzelnen MA-Strategien kann sie die Rentabilitätswahrscheinlichkeit verbessern. Außerdem begrenzt die Stop-Loss-Einstellung auch den Verlust einzelner Trades.

Durch die Nutzung der Crossover-Regeln zur Bestimmung von Wendepunkten kann diese Strategie Trendchancen rechtzeitig erfassen.

Risikoanalyse

Es gibt drei große Risiken für diese Strategie: unangemessenes Risiko für die MA-Parameter, unangemessenes Risiko für die Haltedauer und unangemessenes Risiko für die Stop-Loss-Position.

  • Eine falsche Auswahl der MA-Parameter führt zu falschen Signalen. entweder zu kurze oder zu lange MA-Längen werden den Markt falsch einschätzen, so dass eine angemessene Anpassung an die Merkmale des Instruments erforderlich ist.

  • Eine zu lange oder zu kurze Haltedauer kann den Gewinn nicht maximieren oder das Risiko nicht richtig kontrollieren.

  • Eine unangemessene Einstellung der Stop-Loss-Position führt entweder zu einem zu breiten oder zu engen Stop-Loss, so dass ein geeigneter Stop-Loss anhand der Volatilität des Instruments bestimmt wird.

Optimierungsrichtlinien

Diese Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  • Testen Sie mehr MA-Parameterkombinationen, um die optimalen Parameter zu finden

  • Bestimmung einer dynamischen Stop-Loss-Position auf der Grundlage von Kursschwankungen oder ATR der letzten N Tage

  • Kombinieren Sie mehr Indikatoren wie MACD, KD usw., um den Eintrittszeitpunkt zu bestimmen

  • Hinzufügen von Regeln zur Trendfilterung zur Vermeidung von Marktbereichen

  • Überlegen Sie, die Strategie auf mehrere Instrumente anzuwenden, oder verbessern Sie sie auf eine instrumentübergreifende Strategie

Zusammenfassung

Diese optimierte gleitende Durchschnitts-Crossover-Strategie integriert den Vorteil des doppelten MA bei der Beurteilung von Trendrichtungen und setzt Stop-Loss zur Kontrolle von Risiken. Sie gehört zu leicht umsetzbaren Trend-Folge-Strategien. Diese Strategie kann durch Parameteroptimierung, Stop-Loss-Optimierung, Signalfilterung usw. in Stabilität und Effizienz weiter verbessert werden. Im Vergleich zu komplexen Strategien ist sie einfacher zu verstehen und umzusetzen und daher sehr geeignet, die erste Quant-Handelsstrategie für Anfänger zu sein.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)

fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)

fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)

enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)

longStop = 0.0
longStop := enterShort ? close : longStop[1]

shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]

plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")

if enterLong
    strategy.entry(id="GoLong", long=true)

if enterShort
    strategy.entry(id="GoShort", long=false)

if strategy.position_size > 0
    strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)

if strategy.position_size < 0
    strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)

strategy.close_all()


Mehr