
Die Strategie ist eine Trendverfolgungs- und Trendbreaking-Trading-Strategie, die auf einem mehrperiodischen Index-Moving Average (EMA) basiert. Sie kombiniert gleichzeitig 5 verschiedene Perioden von EMAs und verfügt über eine starke Trenderkennungsfähigkeit, um die mittleren und langen Preisbewegungen im Zyklus zu erfassen.
Berechnen Sie die EMA für fünf verschiedene Zeitspannen, nämlich 12, 15, 18, 21 und 24 Zeitspannen.
EMA-Sortierung: EMA12 > EMA15 > EMA18 > EMA21 > EMA24 als Kaufsignal; EMA12 < EMA15 < EMA18 < EMA21 < EMA24 als Verkaufssignal.
Das Signal wird erst nach dem vom Benutzer festgelegten Startdatum ausgelöst.
Wenn ein Kauf-Signal ausgelöst wird, wird der Long-Position-Open-Operation ausgeführt; wenn ein Sell-Signal ausgelöst wird, wird der Short-Position-Open-Operation ausgeführt.
Die Strategie nutzt die Beziehung zwischen den inneren und äußeren Orbits der Kanäle, um die Richtung der Preisentwicklung zu bestimmen. Die EMA-Zyklus-Einstellung ist näher, um die Empfindlichkeit für Durchbruchsignale zu erhöhen, während auch vermieden wird, von kurzfristigen Marktgeräuschen abgeleitet zu werden. Darüber hinaus ermöglicht es dem Benutzer, den Startdatum der Strategie anzupassen, was eine größere Flexibilität ermöglicht.
Die Entwicklung von Trendkanälen mit mehreren EMA-Gruppen und die Fähigkeit, Trends zu identifizieren.
Die EMA-Zyklus-Einstellung ist nah, empfindlich auf Trendbrechsignale und kann die mittleren und langen Trends rechtzeitig erfassen.
Die Strategie kann mit einem flexiblen Startdatum eingerichtet werden.
Das Geldmanagement ist maßgeschneidert und die Größe des einzelnen Auftrags kann gesteuert werden.
Die Handelsregeln sind klar und einfach und eignen sich für die Trendverfolgung.
Die EMA ist von Natur aus rückläufig und kann kurzfristige starke Schwankungen übersehen.
Ein Durchbruch ist leicht zu erwischen und erfordert einen angemessenen Stop-Loss.
Wenn sich der Trend umkehrt, können große Verluste entstehen.
Die Wahl der richtigen Aktienvariante ist nicht für übermäßig volatile Aktien geeignet.
Entsprechende Risikokontroll- und Optimierungsmaßnahmen:
Anpassung der EMA-Parameter zur Optimierung der Zykluskombination.
Das ist eine sehr gute Idee, aber es ist nicht einfach, es zu tun.
Ein angemessener Stop-Loss-Punkt, um einzelne Verluste zu kontrollieren.
Die Einführung von anderen Indikatoren wie MACD, KDJ, etc. verbessert die Effektivität der Strategie.
Es gibt auch andere Möglichkeiten, wie man sich die Zahlen anpassen kann, um falsche Durchbrüche zu vermeiden.
Optimierung der EMA-Periodenparameter und Suche nach der optimalen Kombination.
Es ist wichtig, dass der Handel in bestimmten Zeitabschnitten unterbrochen wird, um Schwankungen der Märkte zu vermeiden.
Dynamische Optimierung der EMA-Zyklen und -Parameter mit Hilfe von Machine Learning.
Die Strategie ist insgesamt eine eher typische Trendverfolgungsstrategie. Sie nutzt die Vorteile der EMA, indem sie mehrere EMAs kombiniert, um einen Handelskanal zu bilden, der bei einem Preisbruch des Kanals ein Handelssignal erzeugt. Die Vorteile der Strategie sind, dass die Handelsregeln einfach und klar sind und die langfristigen Trends leicht verfolgt werden können.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Scalping Strategy - EMA",
shorttitle="EMA Scalp",
overlay=true)
// User input for start date
startDateInput = input(title="Start Date", defval=timestamp("2024-02-01"))
// Calculate EMAs
ema_12 = ta.ema(close, 12)
ema_15 = ta.ema(close, 15)
ema_18 = ta.ema(close, 18)
ema_21 = ta.ema(close, 21)
ema_24 = ta.ema(close, 24)
// Plot EMAs
plot(ema_12, color=color.red, title="EMA 12")
plot(ema_15, color=color.orange, title="EMA 15")
plot(ema_18, color=color.yellow, title="EMA 18")
plot(ema_21, color=color.green, title="EMA 21")
plot(ema_24, color=color.blue, title="EMA 24")
// Define a start date for the strategy based on user input
isAfterStartDate = true
// Visualize the isAfterStartDate condition
bgcolor(isAfterStartDate ? color.new(color.green, 90) : na, title="After Start Date")
// Entry conditions
buy_condition = (ema_12 > ema_15) and (ema_15 > ema_18) and (ema_18 > ema_21) and (ema_21 > ema_24) and isAfterStartDate
sell_condition = (ema_12 < ema_15) and (ema_15 < ema_18) and (ema_18 < ema_21) and (ema_21 < ema_24) and isAfterStartDate
// Execute trades using conditional blocks
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)