Die EMA-Tracking-Strategie ist eine Trendstrategie, bei der der EMA-Indikator verwendet wird, um Trends zu verfolgen.
Der Kernindikator dieser Strategie ist EMA. EMA steht für Exponential Moving Average, ein Trend-Tracking-Indikator. EMA berechnet den aktuellen Durchschnittspreis basierend auf historischen Preisen und dem festgelegten Zeitraum. EMA hat auch die Wirkung, die Preise zu glätten.
Die Strategie berechnet zunächst den 50-Perioden-EMA-Wert der Preise als Hauptbeurteilungsindikator. Anschließend werden auf der Grundlage eines bestimmten Prozentsatzes des EMA-Wertes die oberen und unteren Schienen festgelegt. Hier wird sie auf ±0,3% des EMA-Wertes festgelegt. Wenn der Preis durch die oberen Schienen der EMA bricht, wird ein Kaufsignal generiert. Wenn der Preis unter die unteren Schienen der EMA fällt, wird ein Verkaufssignal generiert. Dies kann die Trendänderungen innerhalb des EMA-Zyklus verfolgen.
Die EMA-Tracking-Strategie verfügt über eine klare Gesamtlogik, beurteilt Preistrends durch EMA-Indikatoren und erzeugt Handelssignale mit Bandbreiten. Die Vorteile sind einfache Regeln, die leicht zu verstehen sind und etwas Lärm vermeiden können. Es gibt aber auch Probleme wie begrenzten Tuning-Raum, verzögerte Signale, schlechte Drawdown-Kontrolle usw. Die nächsten Schritte könnten darin bestehen, sie durch Mittel wie die Kombination mehrerer Indikatoren, Stop-Loss-Optimierung usw. zu verbessern, um die Strategie praktischer und stabiler zu machen.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="PingEMA50V.3 Piw", shorttitle="EMA50 Piw", overlay=true) // input src = input(title="Data Array",defval=close) ema_period = input(title="EMA period", defval=50) percent = input(title="Band %", type=float,defval=0.003) // ema ema50 = ema(src, ema_period) plot(ema50, color=green) // upper lower upper = ema50 + (ema50*percent) lower = ema50 - (ema50*percent) plot(upper, color=blue) plot(lower, color=blue) // signal buy = src > upper sell = src < lower // bar color bcolor = buy ? lime : red barcolor(color=bcolor) // trade if (buy) strategy.entry("long", strategy.long) if (sell) strategy.close("long")