Diese Strategie basiert auf dem Vergleich von vier EMA-Linien mit verschiedenen Perioden, um dem Trend folgend zu handeln. Es geht lang, wenn die schnelle EMA-Linie über die mittlere EMA-Linie kreuzt, die mittlere EMA-Linie über die langsame EMA-Linie kreuzt und die langsame EMA-Linie über die langsamste EMA-Linie kreuzt. Es geht kurz, wenn die entgegengesetzten Kreuzungsbeziehungen auftreten. Die Strategie beinhaltet auch Datumsfilterbedingungen und handelt nur innerhalb des angegebenen Datumsbereichs.
Die Kernlogik dieser Strategie basiert auf dem Vergleich von vier EMA-Linien. Die EMA-Linien können die Preisdaten effektiv glätten und die wichtigsten Trends hervorheben. Die schnelle EMA-Linie spiegelt die Preisänderung am schnellsten wider, während die mittlere EMA eine gewisse Verzögerung hat, die langsame EMA mehr Verzögerung hat und die langsamste EMA die meisten Verzögerungen hat. Wenn die schnelle EMA über die mittlere EMA überschreitet, überschreitet die mittlere EMA die langsame EMA und die langsame EMA über die langsamste EMA, signalisiert sie einen Aufwärtstrend und die Strategie wird lang gehen. Wenn die entgegengesetzte Kreuzungssequenz eintritt, signalisiert sie einen Abwärtstrend und die Strategie wird kurz gehen.
Die Strategie verwendet auch eine Datumsfilterbedingung und handelt nur innerhalb des angegebenen Datumsbereichs zwischen dem 01.06.2018 und dem 31.12.2019. Dies verhindert, dass außerhalb dieses Zeitraums eine abnormale Volatilität die Strategie beeinflusst.
Insbesondere sind die Perioden der vier EMA-Linien 8, 13, 21 und 34 Tage. Sie sind relativ kurzfristig, um kurz- und mittelfristige Trends zu erfassen. Die Strategie erzeugt nur Handelssignale, wenn die Preisdaten die EMA-Kreuzungsbeziehungen innerhalb des angegebenen Datumsbereichs erfüllen.
Die Vorteile dieser 4-EMA-Trendstrategie sind:
Diese Strategie birgt auch einige Risiken:
Um die oben genannten Risiken zu verringern, sind einige Optimierungsrichtungen:
Die wichtigsten Optimierungsrichtungen sind:
Optimierung der Parameter: Anpassung der EMA-Perioden an verschiedene Zyklen und Produkte zur besseren Beurteilung des Trends.
RisikokontrolleDie Risikopositionen werden in der Regel in der Tabelle 1 aufgeführt.
Signalfilterung: Hinzufügen anderer Hilfsindikatoren, um Signale ohne klaren Trend zu vermeiden, z. B. RSI- und MACD-Filter.
Gewinngewinn: Festlegen Sie angemessene Gewinnnahme-Regeln, um Gewinne zu erzielen und Rückschritte zu vermeiden.
Automatisiertes Handeln: Parameterisierung der Strategie und Integration mit automatischen Handelssystemen zur Erweiterung der Anwendbarkeit.
Dies ist eine einfache und praktische Trendverfolgungsstrategie, die auf 4-EMA-Linienvergleichen basiert. Sie reagiert schnell und verfolgt kurz- und mittelfristige Trends effektiv mit guten Backtest-Ergebnissen. Wir können sie optimieren, indem wir Parameter anpassen, Filter hinzufügen und Stop-Losses erstellen, um das Risiko zu reduzieren und die Effizienz zu erhöhen. Parametrierung und Automatisierung sind auch wichtige Richtungen, die eine breitere Anwendbarkeit ermöglichen. Abschließend ist die 4-EMA-Strategie eine robuste und vielseitige Quant-Trading-Strategie, die weiterer Forschung und Optimierung würdig ist.
/*backtest start: 2022-12-19 00:00:00 end: 2023-12-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("4 EMA TREND Strategy ", overlay=true) length1 = input(8, minval=1) outFAST = ema(close,length1) plot(outFAST, color=green ,linewidth=3) length2 = input(13, minval=1) outM = ema(close, length2) plot(outM, color=yellow,linewidth=3) length3 = input(21, minval=1) outSLOW = ema(close, length3) plot(outSLOW, color=red,linewidth=3) length4 = input(34, minval=1) outSLOWEST = ema(close, length4) plot(outSLOWEST, color=black,linewidth=3) price = close yearfrom = input(2018) yearuntil =input(2019) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( (outFAST>outM) and (outM > outSLOW) and(outSLOW>outSLOWEST)) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( (outFAST<outM) and (outM<outSLOW) and (outSLOW <outSLOWEST)) strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL") else strategy.cancel(id="SELL")