Dreifach bewegliche Durchschnitts-Kreuzungssystem

Schriftsteller:ChaoZhang, Datum: 2023-09-28 15:33:14
Tags:

Übersicht

Das Triple Moving Average Crossover System ist eine typische Trend-folgende Aktienhandelsstrategie. Es verwendet das Crossover von drei gleitenden Durchschnitten unterschiedlicher Zeitlängen als Kauf- und Verkaufssignale. Wenn der kurzfristige gleitende Durchschnitt über den mittelfristigen gleitenden Durchschnitt überschreitet und der mittelfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt überschreitet, wird ein Kaufsignal generiert. Wenn der kurzfristige gleitende Durchschnitt unter den mittelfristigen gleitenden Durchschnitt überschreitet und der mittelfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt überschreitet, wird ein Verkaufssignal generiert.

Strategie Logik

Die Strategie basiert auf drei gleitenden Durchschnitten: dem langfristigen gleitenden Durchschnitt ma1, dem mittelfristigen gleitenden Durchschnitt ma2 und dem kurzen gleitenden Durchschnitt ma3.

length1 = input(18,'长线')  
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 := sma(close,length1)
ma2 := sma(close,length2) 
ma3 := sma(close,length3)

Die Funktion sma berechnet den einfachen gleitenden Durchschnitt des Schlusskurses über die entsprechende Länge.

Es wird dann die Überschneidung der drei gleitenden Durchschnitte verwendet, um Ein- und Ausgänge zu bestimmen:

if ma2 > ma1 and ma3 > ma3[1]
    strategy.entry("Long", strategy.long)

if ma2 < ma1 and ma3 < ma3[1] 
    strategy.entry("Short", strategy.short)

Wenn die mittelfristige ma2 über die langfristige ma1 und die kurzfristige ma3 über die vorherige Periode s ma3 kreuzt, wird ein langes Signal ausgelöst.

Vorteile der Strategie

  • Die Verwendung von drei gleitenden Durchschnittswerten kann Trendänderungen deutlich erkennen.
  • Die Kombination aus langen und kurzen Perioden filtert einige kurzfristige Marktlärm und Sperren in längerfristigen Trends aus.
  • Einfache Regeln machen es leicht umzusetzen.
  • Die Parameter können an unterschiedliche Marktbedingungen angepasst werden.

Risiken der Strategie

  • Ein- und Ausgänge werden im Nachhinein ermittelt und können Verluste nicht vollständig vermieden werden.
  • Whipsaws treten auf, wenn der Preis um gleitende Durchschnitte schwingt.
  • Eine zu lange Periodenlinie kann Trendwendepunkte verpassen, eine zu kurze Periodenlinie kann häufige Trades durch Lärm auslösen.
  • Er kann nicht sehr gut mit verschiedenen Märkten umgehen.

Diese Risiken können durch eine angemessene Optimierung der Parameter, das Hinzufügen von Filtern mit anderen Indikatoren usw. verringert werden.

Verbesserungsrichtlinien

  • Verschiedene Parameterkombinationen zurücktesten, um optimale Werte zu finden.
  • Fügen Sie Stop-Loss zu Kontrollverlusten hinzu.
  • Hinzufügen anderer Indikatoren zur Beurteilung von Dynamik und Divergenz, um falsche Signale zu vermeiden. z.B. MACD, KD usw.
  • Wählen Sie eine geeignete Gewinnstrategie nach der tatsächlichen Situation.

Zusammenfassung

Die Triple Moving Average Crossover Strategie ist eine einfache und praktische Trendfolgestrategie. Sie identifiziert Veränderungen in der Trendrichtung basierend auf dem Crossover von drei gleitenden Durchschnitten, um Handelssignale zu generieren. Die Vorteile dieser Strategie liegen in ihren einfachen Regeln und der effektiven Verfolgung von Trends, die sie für den mittelfristigen bis langfristigen Handel geeignet machen. Es gibt jedoch auch Risiken für falsche Signale und Drawdowns. Die Strategie kann durch Optimierung von Parametern, Hinzufügen von unterstützenden Indikatoren usw. verbessert werden, um sich an verschiedene Marktumgebungen anzupassen.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
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/
// © dongyun

//@version=4
strategy("三重交叉修正模式系统", overlay=true)
//strategy.risk.allow_entry_in(strategy.direction.long)
length1 = input(18,'长线')
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 =0.0
ma2 = 0.0
ma3 = 0.0

ma1 := sma(close,length1)
ma2 := sma(close,length2)
ma3 := sma(close,length3)

plot(ma1)
plot(ma2)
plot(ma3)

if ma2 > ma1 and ma3 > ma3[1]
	strategy.entry("Long", strategy.long, when=strategy.position_size <= 0)

if ma2 < ma1 and ma3 < ma3[1]
	strategy.entry("Short", strategy.short, when=strategy.position_size > 0)

Mehr