Diese Strategie kombiniert 8-Tage-, 13-Tage-, 21-Tage- und 55-Tage-EMAs und erzeugt bei einem Crossover zwischen ihnen lange und kurze Signale, um mittelfristige Trends zu erfassen.
Berechnen Sie 8-Tage-, 13-Tage-, 21-Tage- und 55-Tage-EMA.
Wenn die 8-Tage-, 13-Tage- und 21-Tage-EMAs alle über die 55-Tage-EMA hinauslaufen, wird das Long-Signal ausgelöst.
Wenn die 8-Tage-, 13-Tage- und 21-Tage-EMAs alle unter die 55-Tage-EMA fallen, wird ein Kurzsignal ausgelöst.
Auf dem goldenen Kreuz lang, auf dem Todeskreuz kurz.
Nahe Position beim Rückwärts-Kreuzung.
Mehrfache EMA-Kombination, die bei falschen Ausbrüchen wirksam ist.
55-Tage-EMA als Anker vermeidet, gefangen zu werden.
Der Backtest zeigt in den letzten 10 Jahren eine stetige Jahresrendite.
Visuelle Crossover, einfach zu bedienen, Anfängerfreundlich.
Feste Parameter können nicht für alle Produkte und Märkte geeignet sein, eine unabhängige Optimierung ist erforderlich.
Unwirksam auf verschiedenen Märkten, mit dem Risiko von Ausfällen und häufigen Stopps.
Keine Stop-Loss, die den Verlust eines einzelnen Handels begrenzen kann.
Die Handelsfrequenz kann zu hoch oder zu niedrig sein, Parameteranpassungen sind erforderlich.
10-Jahres-Stichprobe begrenzt, größere Daten benötigen, um die Robustheit zu überprüfen.
Test EMA-Periodenkombinationen, um die beste Übereinstimmung zu finden.
Fügen Sie den Lautstärkungsfilter hinzu, um falsche Ausbrüche zu vermeiden.
Einführung eines festen oder beweglichen Stop-Loss.
Optimierung der Positionsgröße, um das Risiko pro Handel zu senken.
Handeln Sie mit Long- und Shortseiten.
Tests auf mehr Produkte und längere Zeitrahmen ausweiten.
Diese Strategie identifiziert mittelfristige Trends mit EMA-Kreuzungen auf intuitive visuelle Weise. Die Stärken sind Sichtbarkeit und Einfachheit. Aber die Parameter müssen mehr optimiert werden und fehlt die Risikokontrolle. Mehr technische Indikatoren sollten eingeführt werden, um Signale zu filtern und Stops hinzuzufügen, um Verluste zu begrenzen. Es erfordert auch große Proben-Backtests über Produkte und Zeit zur Verfeinerung und Verifizierung, um zu einem robusten Trendfolgensystem zu werden.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 6h basePeriod: 15m 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/ // © ColinMccann18 //@version=4 // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // --------------------------------------------------------------RULES------------------------------------------------------------------------------ // - VISUALLY REPRESENTS THE CROSSING OF 8,13,21,55 EMA'S FROM KROWNS PROGRAM strategy(title="CM EMA Trend Cross STRAT", shorttitle="CM EMA Strat", overlay=true) ema8 = ema(close,8) ema13 = ema(close, 13) ema21 = ema(close, 21) ema55 = ema(close, 55) //PLOT plot(ema8, title="EMA 1",linewidth=2, color=#00eeff) plot(ema13, title="EMA 2",linewidth=2, color=#fff900) plot(ema21, title="EMA 3",linewidth=2, color=#42ff0f) plot(ema55, title="EMA 4",linewidth=2, color=#8b49ff) //LOGIC--------------------------------------------------------------------------------------------------------------------------------- emacrossover = crossover(ema21, ema55) and ema8 and ema13 > ema55 emacrossunder = crossunder(ema21, ema55) and ema8 and ema13 < ema55 //Long---------------------------------------------------------------------------------------------------------------------------------- longCondition = emacrossover closelongCondition = emacrossunder strategy.entry("Long", strategy.long, qty=na, when=longCondition) strategy.close("Close Long", when=closelongCondition) //Short---------------------------------------------------------------------------------------------------------------------------------- shortCondition = emacrossunder closeshortCondition = emacrossover strategy.entry("Short", strategy.short,qty=na, when=shortCondition) strategy.close("Close Short", when=closeshortCondition)