Crossover-Handelsstrategie auf der Grundlage des Dualen EMA-Systems

Schriftsteller:ChaoZhang, Datum: 2023-09-20 11:39:40
Tags:

Übersicht

Diese Strategie berechnet einen schnellen und einen langsamen EMA-Indikator und erzeugt Kauf- und Verkaufssignale basierend auf ihrer Crossover-Situation, die zu einer typischen Trendfolgestrategie gehört. Sie geht lang, wenn die schnelle Linie über die langsame Linie kreuzt, und flachläuft, wenn die schnelle Linie unter die langsame Linie kreuzt. Umgekehrt geht sie kurz, wenn die schnelle Linie unter die langsame Linie kreuzt, und flachläuft, wenn die schnelle Linie über die langsame Linie kreuzt.

Strategie Logik

Die Strategie berechnet eine schnelle und eine langsame EMA-Linie mit Perioden von 13 bzw. 50. Wenn die schnelle Linie nach oben bricht und die langsame Linie überschreitet, wird ein Kaufsignal generiert, um lang zu gehen. Wenn die schnelle Linie nach unten bricht und unterhalb der langsamen Linie überschreitet, wird ein Verkaufssignal generiert, um kurz zu gehen.

Wenn die schnelle Linie unterhalb der langsamen Linie wieder durchquert, wird ein flaches langes Signal erzeugt.

Analyse der Vorteile

Die Strategie setzt das gemeinsame Doppel-EMA-System ein, das Trends und Einstiegspunkte anhand von Überschneidungssituationen zwischen verschiedenen Zeitrahmen-EMAs beurteilt.

Die Operationen sind einfach und intuitiv, leicht zu automatisieren. Es braucht nur Preisinformationen, ohne andere komplexe Faktoren zu berücksichtigen. Die EMA-Perioden können frei angepasst werden, um sich an verschiedene Marktumgebungen anzupassen.

Risikoanalyse

Das doppelte EMA-Crossover-System hat eine mittelmäßige Leistung bei der Identifizierung von komplizierten Trends. In abweichenden Märkten können EMA-Crossover-Signale häufig auftreten, was das Risiko von Whipsaws birgt. Nur Preisfaktoren werden berücksichtigt, ohne andere Elemente einzubeziehen.

Die Erhöhung des Intervalls zwischen den EMA-Perioden könnte die Überschreitungsfrequenz reduzieren. Volumen- oder Volatilitätsindikatoren könnten auch dazu beitragen, zusätzliche Einblicke zu erhalten. Die Optimierung von Stop-Loss-Strategien kann auch die Whipsaw-Risiken senken.

Optimierungsrichtlinien

  1. Testen und optimieren Sie die EMA-Periodenparameter, um die optimalen Einstellungen zu finden.

  2. Zusatz von Volumen, Volatilität oder anderen Beurteilungsregeln.

  3. Einbeziehung von Ausbruchssignalen usw. zur Festlegung strengerer Einstiegsbedingungen.

  4. Anwendung von maschinellem Lernen zur Vorhersage von Trends und zur Ermittlung der Qualität des EMA-Signals.

  5. Optimieren Sie Stop-Loss-Strategien wie Trailing-Stops, Durchschnitts-Stops usw.

  6. Dynamische Anpassung der Positionsgröße zur Optimierung des Kapitalmanagements.

Zusammenfassung

Die Strategie gehört zum typischen doppelten EMA-Crossover-System und misst Trends durch einfache Indikatorenkombinationen. Sie ist einfach umzusetzen, aber auch anfällig für falsche Signale. Die Kombination von mehr Indikatoren und Parameteroptimierung kann die Robustheit verbessern. Insgesamt bietet sie einen prägnanten Trend nach der Strategievorlage.


/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-12 22:00:00
period: 5m
basePeriod: 1m
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/
// © himanshumahalle

//@version=4
strategy("CROSS_ALGO SYSTEM")


// INPUT CONTROLS

lengthSEMA= input(title="LSEMA", type = input.integer, defval=13,minval=1,maxval=100,step=1)
lengthLEMA= input(title="LLEMA", type = input.integer, defval=50,minval=1,maxval=100,step=1)

//INDICATOR

SEMA= ema(close,lengthSEMA)
LEMA= ema(close,lengthLEMA)

// BUY AND SELL

buy = crossover(SEMA,LEMA)
sell = crossunder(SEMA,LEMA)

//EXITS

buyexit = crossunder(SEMA,LEMA)
sellexit = crossover(SEMA,LEMA)


//EXECUTION

strategy.entry("long",strategy.long,when=buy,comment = "Buy")
strategy.entry("short",strategy.short,when=sell,comment = "Sell")

strategy.close("long",when= buyexit , comment= "Sell")
strategy.close("short",when= sellexit , comment= "Buy")




Mehr