Strategie nach gleitendem Durchschnitt


Erstellungsdatum: 2023-10-20 17:02:52 zuletzt geändert: 2023-10-20 17:03:32
Kopie: 2 Klicks: 614
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie nach gleitendem Durchschnitt

Überblick

Eine Moving Average Tracking Strategie ist eine Trend-Tracking-Strategie, die auf einfachen Moving Averages basiert. Die Strategie verwendet einfache Moving Averages mit einer Länge von 200 Tagen, um die Richtung der Preisentwicklung zu bestimmen.

Strategieprinzip

Die Strategie basiert auf folgenden Prinzipien:

  1. Der einfache Moving Average mit einer Länge von 200 Tagen wird als SlowMA verwendet, um die Richtung der Preisentwicklung zu bestimmen.
  2. Wenn der Schlusskurs einen Slow-MA über dem Close durchläuft, wird angenommen, dass der Markt zu steigen beginnt, und deshalb wird mehr getan.
  3. Wenn der Schlusskurs einen Slow-MA unterhalb des Closes durchbricht, wird angenommen, dass der Markt beginnt zu sinken, wodurch ein Shorting erfolgt.
  4. Die Variablen last_long und last_short werden verwendet, um die letzten Über- und Unterhaltungszeiten zu erfassen.
  5. Die Crossover-Funktion beurteilt die Kreuzung von last_long und last_short, um ein Handelssignal zu erzeugen.
  6. In der Rückmesszeit wird ein long_signal als “mehr” und ein short_signal als “ohne” empfangen.

Die Strategie basiert hauptsächlich darauf, die Richtung des Trends anhand eines gleitenden Durchschnitts zu bestimmen und bei einer Umkehrung der Gleichung zeitnah umgekehrt zu handeln, um den Trend zu verfolgen und davon zu profitieren.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Strategie ist einfach, klar und leicht zu verstehen und umzusetzen.
  2. Mit Hilfe von langen Periodischen Moving Averages kann der Lärm effektiv gefiltert und die wichtigsten Trends festgehalten werden.
  3. Mit der zeitgemäßen Umkehrung können größere Preisschwankungen an Trendwendepunkten erfasst werden.
  4. Es ist nur ein Indikator für den Moving Average erforderlich, um die Komplexität der Kombination mehrerer Indikatoren zu vermeiden.
  5. Die Ein- und Ausstiegsregeln sind eindeutig und erfordern nicht viel menschliche Intervention.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Die langfristige Durchschnittslinie ist nicht empfindlich für kurzfristige Anpassungen und kann kurzfristige Chancen verpassen.
  2. Die Fähigkeit zur Identifizierung von Hoch- bis Tiefst-Periodentrends ist schwach und kann leicht zu Umkehrverlusten führen.
  3. Die Schadenslosigkeit könnte zu einem größeren Rückzug führen.
  4. Die Parameter sind fest, die Anpassungsfähigkeit an verschiedene Sorten und Marktumgebungen ist schwach.
  5. Es besteht die Gefahr, dass Strategie-Tests, die nur auf historischen Daten basieren, zu übertrieben sind.

In Bezug auf Risiken können Optimierungen und Verbesserungen in folgenden Bereichen vorgenommen werden:

  1. Kurzzeitdurchschnittslinie kombiniert mit langfristigen Trends.
  2. Es ist wichtig, die Bedingungen für die Preise zu erhöhen, um falsche Durchbrüche zu vermeiden.
  3. Trendindikator-Filter, um Trendwechsel besser zu erkennen.
  4. Erhöhung der dynamischen Stop-Loss-Mechanismen zur Kontrolle von Einzelschäden.
  5. Die Anpassung der Parameter wird durch Parameteroptimierung verbessert.
  6. Die Strategie wird in unterschiedlichen Marktumgebungen getestet, um die Stabilität der Strategie zu überprüfen.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Optimierung der Periodizität von Moving Averages durch Suche nach optimalen Parameterkombinationen. Parameteroptimierungsmethoden wie Walk Forward Analysis können verwendet werden.

  2. Erhöhen Sie die kurzfristigen Moving Averages, um eine Mehrmittellinie zu bilden und gleichzeitig die langfristigen Trends zu verfolgen.

  3. In Kombination mit Trendindikatoren wie MACD verbessert sich die Fähigkeit, Trendwende zu erkennen.

  4. Die Einführung von Stop-Loss-Mechanismen wie Tracking-Stops, Stop-Loss-Anzeigen usw. zur Kontrolle von Einzelschäden.

  5. Verschiedene Arten und Zeitabschnitte wurden mit Hilfe von Replikaten getestet, um die Strategie zu testen und die Stabilität zu verbessern.

  6. Die Parameter adaptieren und optimieren die Strategien mit Methoden wie Machine Learning.

Zusammenfassen

Die Moving-Average-Tracking-Strategie ist eine einfache und praktische Trend-Tracking-Strategie, die klar ist und leicht umzusetzen ist, um Trendchancen zu erfassen. Die Strategie hat jedoch einige Probleme, wie z. B. unempfindlich für kurzfristige Anpassungen, schwache Risikokontrolle.

Strategiequellcode
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)