
Eine Quantifizierungsstrategie, bei der Handelssignale mit Index-Moving Averages (EMA) aus verschiedenen Perioden erzeugt werden. Die Strategie verwendet die Kreuzung von drei EMAs aus 5 Perioden, 9 Perioden und 21 Perioden, um Markttrends zu ermitteln und Kauf- und Verkaufssignale zu erzeugen. Die Strategie kombiniert auch 100 und 200-Zyklen-EMA aus längeren Perioden, um große Trends zu ermitteln.
Die Kernindikatoren der Strategie sind die drei EMAs mit 5 Zyklen, 9 Zyklen und 21 Zyklen. Die Handelslogik basiert auf folgenden Punkten:
Ein 5-Zyklus-EMA-Breakout erzeugt ein Kaufsignal, wenn es den 9-Zyklus-EMA nach oben überschreitet. Ein 5-Zyklus-EMA-Breakout erzeugt ein Verkaufsignal, wenn es den 9-Zyklus-EMA nach unten überschreitet.
Die 21-Zyklus-EMA kann zur Validierung von Handelssignalen verwendet werden. Das heißt, ein Kaufsignal ist effektiver, wenn der 5-Zyklus-EMA und der 9-Zyklus-EMA beide höher als der 21-Zyklus-EMA sind; ein Verkaufssignal ist effektiver, wenn beide unter dem 21-Zyklus-EMA liegen.
Die 100- und 200-Perioden-EMA werden verwendet, um die mittleren und langen Markttrends zu beurteilen. Sie können als Bestätigung oder Warnung für die großen Trends für kurzfristige Handelssignale dienen.
Die Strategie hat folgende Vorteile:
Die Berechnung der EMA und die Beurteilung der Kreuzung sind sehr einfach.
Die 5- und 9-Zyklen-EMA sind sehr empfindlich auf Preisänderungen und können kurzfristige Trends schnell erfassen.
Einfache Einstellung der Stop-Loss-Sperre. Die EMA selbst kann als mobile Stop-Line eingesetzt werden.
Skalierbarkeit: Einige andere Zyklen-EMA oder technische Indikatoren können leicht eingeführt werden, um das System zu bereichern.
Die wichtigsten Risiken der Strategie sind:
Risiko für falsche Signale. EMA-Kreuzungen sind nicht hundertprozentig zuverlässig und können zu falschen Durchbrüchen führen.
Trendwechselrisiko. Schnelle EMA-Kreuzungen können nur kurzfristige Anpassungen widerspiegeln und einen großen Trendwechsel ignorieren. Die mittleren und langen EMAs sollten berücksichtigt werden.
Parameter-Tuning-Risiken. Die Parameter-Einstellungen unterscheiden sich stark zwischen verschiedenen Sorten und Marktbedingungen und müssen optimiert und getestet werden.
Die Strategie kann in folgenden Aspekten optimiert werden:
Die Einführung von Filtersignalen für andere Indikatoren, wie KD, MACD usw., reduziert die Wahrscheinlichkeit von Falschsignalen.
Erhöhen Sie die Stop-Loss-Grenze, um einzelne Verluste zu reduzieren.
Optimierung der Parameter, um die optimale Kombination von Periodensystemparametern zu finden. Dynamische Optimierung mit Hilfe von maschinellen Lernmethoden.
Das System wurde in den USA entwickelt, um den gesamten Transaktionsprozess zu automatisieren, kombiniert mit einem Quantifizierungsrahmen.
Die Gesamtkonzeption der EMA-Kreuzungsstrategie ist klar, einfach zu handhaben und kann kurzfristige Trends effektiv erfassen. Es gibt jedoch immer noch eine gewisse Blindzone, die sich nur auf die EMA-Kreuzungsentscheidung stützt. Die Entscheidung muss durch andere Faktoren unterstützt werden, um das Risiko zu verringern.
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © nagversion
//@version=5
strategy("5/9/21 EMA Strategy with 200 and 100 EMA", overlay=true)
// Calculate EMAs
ema5 = ta.ema(close, 5)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)
// Plot EMAs
plot(ema5, title="5 EMA", color=color.blue)
plot(ema9, title="9 EMA", color=color.yellow)
plot(ema21, title="21 EMA", color=color.red)
plot(ema100, title="100 EMA", color=color.purple)
plot(ema200, title="200 EMA", color=color.green)
// Strategy conditions
longCondition = ta.crossover(ema5, ema9) and ta.crossover(ema9, ema21)
shortCondition = ta.crossunder(ema5, ema9) and ta.crossunder(ema9, ema21)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Set strategy properties if required (like stop loss, take profit, etc.)