Tägliche gleitende Durchschnittsverfolgungsstrategie für den Goldwert

Schriftsteller:ChaoZhang, Datum: 2024-01-12 11:54:21
Tags:

img

Übersicht

Diese Strategie verwendet eine Kombination der Öffnungs- und Schlusskurse des vorherigen Tages, der schnellen EMA-Linie und der langsamen EMA-Linie, um die Richtung des Marktwerts innerhalb des vom Benutzer definierten Handelszeitraums zu bestimmen, und macht entsprechende Long- oder Short-Einträge.

Strategie Logik

Die Strategie stützt sich hauptsächlich auf zwei Aspekte:

  1. Der Anstieg und Rückgang des Schlusskurses des vorherigen Tages im Verhältnis zum Eröffnungskurs. Wenn der Schlusskurs höher ist als der Eröffnungskurs, zeigt dies, dass der Gesamtwert an diesem Tag gestiegen ist. Wenn der Schlusskurs niedriger ist als der Eröffnungskurs, zeigt dies an, dass der Gesamtwert an diesem Tag gesunken ist.

  2. Die Positionsbeziehung zwischen der 50-Perioden-schnellen EMA-Linie und der 200-Perioden-langsamen EMA-Linie. Wenn die schnelle Linie über der langsamen Linie liegt, bedeutet dies, dass die kurzfristige Wertanstiegsgeschwindigkeit größer ist als der langfristige Trend. Wenn die schnelle Linie unter der langsamen Linie liegt, bedeutet dies, dass die kurzfristige Wertanstiegsgeschwindigkeit kleiner ist als der langfristige Trend.

Wenn die Long-Bedingung ausgelöst wird, wenn der Schluss des vorherigen Tages höher ist als der Offener Tag, der aktuelle Preis über dem Offenen des vorherigen Tages liegt, der schnelle EMA über dem langsamen EMA liegt und innerhalb der vom Benutzer definierten Handelszeiten liegt, wird die Strategie lang Gold gehen.

Wenn die Short-Bedingung ausgelöst wird, wenn der Schlusskurs des vorherigen Tages niedriger ist als der der Öffnung, der aktuelle Preis niedriger ist als der Öffnung des vorherigen Tages, der schnelle EMA niedriger ist als der langsame EMA und innerhalb der vom Benutzer definierten Handelszeiten liegt, wird die Strategie kurz auf Gold gehen.

Darüber hinaus verwendet die Strategie Trailing Stop Loss, um Gewinne zu erzielen oder Verluste zu begrenzen.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Die Verwendung mehrerer Indikatoren zur Bestimmung der Kursrichtung von Gold verringert die Wahrscheinlichkeit von schlechten Trades.

  2. Ein Trailing-Stop kann die Gewinne effektiv einfangen und rechtzeitig aussteigen, wenn sich der Trend umkehrt, wodurch die Risiken verringert werden.

  3. Benutzer können geeignete Handelsfenster anhand ihrer eigenen Handelszeiten auswählen, um nicht während institutioneller Geschäfte gefangen zu bleiben.

  4. Die EMA-Periodenwerte können entsprechend den Marktveränderungen angepasst und optimiert werden, wodurch die Strategie flexibler wird.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Plötzliche Ereignisse können zu großen Verlusten führen, die manuelles Eingreifen oder eine entspanntere Stoppverlustdistanz erfordern.

  2. EMA kann nicht vollständig Filter Marktlärm. Falsche Signale können unnötige Trades auslösen. Parameter können optimiert werden oder mehr Filter hinzugefügt werden.

  3. Eine falsche Einstellung der Hinterhaltdistanz erhöht auch die Risiken - zu eng neigt dazu, vorzeitig gestoppt zu werden, während zu breit die Verluste nicht wirksam kontrolliert.

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Hinzufügen anderer technischer Indikatoren zur Signalfilterung, wie MACD, Bollinger Bands usw., um fehlerhafte EMA-Signale zu reduzieren.

  2. Wechseln Sie zu adaptiven Stopps, die die Stoppdistanz intelligent anhand der Marktvolatilität anpassen.

  3. Hinzufügen von Positionsgrößenregeln, um teilweise Ausgänge für eine bessere Risikokontrolle und eine geringere Auswirkung einzelner Verluste zu ermöglichen.

  4. Fügen Sie maschinelle Lernmodelle hinzu, um die Trendrichtung zu bestimmen und die Genauigkeit mit mehr historischen Daten zu verbessern.

  5. Optimierung der Handelszeitfensterwahl unter Verwendung der Gauss-Verteilung, um höhere Strategiebeteiligungsintervalle zu erreichen.

Schlussfolgerung

Zusammenfassend ist dies eine typische Trend-Folge-Strategie. Sie kombiniert mehrere Indikatoren, um Aufwärts- oder Abwärtswerttrends zu bestimmen, und gilt als robust. Die Trailing-Stop-Anwendung ermöglicht auch eine effektive Verlustkontrolle. Weitere Optimierungen der Indikatoren und Stop-Loss-Regeln können ein verbessertes Gleichgewicht zwischen Rendite und Risikomanagement erreichen. Sie eignet sich für Anleger mit etwas Quant-Investitionswissen, die am Kryptowährungshandel teilnehmen möchten.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("My Strategy", overlay=true)

// Inputs for user to modify
startHour = input(11, title="Start Hour")
endHour = input(16, title="End Hour")
trailingStop = input(100, title="Trailing Stop Start (pips)")
trailingStep = input(10, title="Trailing Step (pips)")

// Define the EMAs
longEma = ema(close, 200)
shortEma = ema(close, 50)

// Calculate daily open, high, low, close
daily_open = security(syminfo.tickerid, "D", open[1])
daily_close = security(syminfo.tickerid, "D", close[1])

// Time conditions
timeAllowed = (hour >= startHour) and (hour <= endHour)

// Define long condition based on your criteria
longCondition = (daily_close > daily_open) and (close > daily_open) and (shortEma > longEma) and timeAllowed

// Define short condition based on your criteria
shortCondition = (daily_close < daily_open) and (close < daily_open) and (shortEma < longEma) and timeAllowed

// Enter the trade
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Trailing Stop Loss
strategy.exit("Exit Long", "Long", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)
strategy.exit("Exit Short", "Short", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)

// Plotting
plot(daily_open, color=color.red, title="Daily Open")
plot(longEma, color=color.blue, title="200 EMA")
plot(shortEma, color=color.orange, title="50 EMA")


Mehr