EMA-Quantitative Handelsstrategie für Crossover

Schriftsteller:ChaoZhang, Datum: 2024-01-29 15:56:56
Tags:

img

Übersicht

Dies ist eine quantitative EMA-Crossover-Handelsstrategie. Sie verwendet zwei EMAs mit unterschiedlichen Perioden als Handelssignale, indem sie lang geht, wenn die kürzere Periode EMA über die längere Periode EMA überschreitet, und kurz geht, wenn die kürzere Periode EMA unter die längere Periode EMA überschreitet. Sie gehört zu den Trendfolgestrategien. Diese Strategie setzt auch Stop-Loss und Take-Profit fest, um Risiken zu kontrollieren.

Strategie Logik

Diese Strategie verwendet das goldene Kreuz und das Todeskreuz der EMAs als Handelssignale. Insbesondere berechnet sie die kürzere Periode EMA und die längere Periode EMA. Wenn die kürzere Periode EMA über die längere Periode EMA überschreitet, erzeugt sie ein Kaufsignal für den Long-Go. Wenn die kürzere Periode EMA unter die längere Periode EMA überschreitet, erzeugt sie ein Verkaufssignal für den Short-Go. So bestimmen die beweglichen Trends der EMAs die Handelsrichtungen.

Nach dem Eintritt in Positionen setzt die Strategie auch gleichzeitig Stop-Loss und Take-Profit. Der Stop-Loss ist ein bestimmter Prozentsatz des Einstiegspreises als Stop-Loss-Linie. Wenn der Preis die Stop-Loss-Linie berührt, wird er die Position für Stop-Loss verlassen. Der Take-Profit ist ein bestimmter Prozentsatz des Einstiegspreises als Take-Profit-Linie. Wenn der Preis die Take-Profit-Linie berührt, wird er die Position für Take-Profit verlassen.

Diese Strategie erlaubt auch, nur lang, nur kurz, Intraday-Handel oder Positionshandel zu wählen.

Analyse der Vorteile

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung des EMA-Indikators, um Geräusche zu filtern und mittelfristige Trends reibungslos zu erfassen.

  2. Annahme von EMA-Crossovers zwischen kürzeren und längeren Perioden als Handelssignale, um Überhandelungen zu vermeiden.

  3. Die Einstellung von Stop-Loss und Take-Profit, um das Risiko-Rendite-Verhältnis jedes Handels zu kontrollieren, ist gut für das Geldmanagement.

  4. Nur lang, nur kurz, intraday und Positionshandel für verschiedene Händlertypen zulässig machen.

  5. Unterstützung mehrerer Handelswerte wie Aktien, Devisen, Kryptowährungen usw.

Risikoanalyse

Diese Strategie birgt auch einige potenzielle Risiken:

  1. Der EMA-Indikator hat eine Verzögerungseffekt und kann einige kurzfristige Trendwendepunkte verpassen.

  2. Unangemessene Auswahl kürzerer und längerer EMA-Perioden kann zu unordentlichen Handelssignalen führen.

  3. Zu lange gehaltene Positionen können zu größeren Marktschwankungen führen.

  4. Mechanische Stop-Loss- und Take-Profit-Verfahren können dazu führen, dass Positionen zu früh beendet oder die Gewinne vorzeitig reduziert werden.

Die entsprechenden Risikomanagementmessungen:

  1. Optimieren Sie die EMA-Parameter, um die beste Periodenkombination zu finden.

  2. Hinzufügen anderer Indikatoren als Hilfsbeurteilung.

  3. Dynamische Anpassung von Stop Loss und Take Profit.

  4. Manuelle Intervention bei ungewöhnlichen Marktbedingungen.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimale Optimierung der EMA-Parameter, um für verschiedene Handelsvermögenswerte geeignete Kurz- und Langzeitkombinationen zu finden.

  2. Hinzu kommen weitere Indikatoren wie MACD, KD für die Synergie zwischen mehreren Indikatoren.

  3. Fügen Sie maschinelle Lernmodelle hinzu, um dynamische Stop-Loss- und Take-Profits zu generieren.

  4. Verbinden Sie fortschrittlichere RISK-Indikatoren für die Feature Engineering.

  5. Hinzufügen von adaptiven Handelskomponenten für die Parameteroptimierung.

Zusammenfassung

Zusammenfassend ist dies ein ausgezeichneter Trend nach der Strategievorlage. Seine Kernstärke liegt darin, den EMA-Indikator zu verwenden, um Geräusche zu filtern und stetige Gewinne zu erzielen, während ein umfassendes Risikoverdienstmanagement verfügt. Durch kontinuierliche Optimierung kann diese Strategie zu einer universellen quantitativen Strategie auf allen Märkten werden und lohnt sich für Händler zu lernen und zu üben.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)


// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")

// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")


// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)

// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)

// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
    strategy.entry("Long", strategy.long)
    runningPOS := true
    stopLossLevel := close * (1 - stopLossPct / 100)
    targetLevel := close * (1 + targetPct / 100)

//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
    strategy.entry("Short", strategy.short)
    runningPOS := true
    stopLossLevel := close * (1 + stopLossPct / 100)
    targetLevel := close * (1 - targetPct / 100)

// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
    strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
    runningPOS := false

//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
    strategy.close("Short", comment = "Exit Short")
    runningPOS := false

if intraDay and runningPOS
    if (hour >= 15)
        strategy.close_all(comment = "Intraday square off")
        //strategy.close("Long",comment = "intraday square off")
        runningPOS := false


// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")

Mehr