Momentum-Index-Trendfolgestrategie


Erstellungsdatum: 2023-12-05 15:13:25 zuletzt geändert: 2023-12-05 15:13:25
Kopie: 0 Klicks: 681
1
konzentrieren Sie sich auf
1619
Anhänger

Momentum-Index-Trendfolgestrategie

Überblick

Es handelt sich um eine Index-ETF-Strategie, die auf Moving Averages basiert. Sie nutzt die Richtung und die Schräglage von Fast Moving Averages und Slow Moving Averages, um die Richtung der Trends zu bestimmen und die dynamische Quantitative Trendbeobachtung von Index-ETF-Assets mit geringem Risiko zu ermöglichen.

Strategieprinzip

Die Strategie verwendet 50- und 150-Perioden-Moving Averages. Wenn ein schneller Moving Average einen schnelleren Moving Average durchbricht und der schneller Moving Average eine größere Schräglage als die Schwelle hat, wird der Trend als umgekehrt angesehen, und wenn ein schneller Moving Average einen schnelleren Moving Average durchbricht oder der schneller Moving Average eine niedrigere Schräglage als die Schwelle hat, wird der Trend als umgekehrt angesehen und die Position platziert.

Die Strategie nutzt einfach und direkt die Richtung und die Steigung des gleitenden Durchschnitts, um Markttrends zu bestimmen, Kurvenanpassung zu vermeiden und Risiken effektiv zu kontrollieren. Zugleich hat der gleitende Durchschnitt eine natürliche Geräuschdämpfung, die Marktgeräusche effektiv filtert.

Analyse der Stärken

Es handelt sich um einen Index-ETF mit geringem Risiko und einer dynamischen Trend-Follow-Strategie, die folgende Vorteile hat:

  1. Starke Risikokontrolle. Effektive Risikokontrolle durch Filterung von Marktlärm durch bewegliche Durchschnitte.
  2. Die Implementierung ist kostengünstig und einfach, da nur einfache Moving Averages verwendet werden.
  3. Stabiler Ertrag. Der Index ETF selbst schwankt wenig und kann einen stabilen Überschuss erzielen, wenn der Trend gefolgt wird.
  4. Anpassungsfähig. Die Parameter sind flexibel und können für verschiedene ETFs optimiert werden.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es kann sein, dass eine schnelle Umkehr verpasst wird.
  2. Parameter-sensibel. Die falsche Einstellung der Parameter kann zu einer Überzahl von Transaktionen oder verpassten Gelegenheiten führen.
  3. Die Effektivität hängt von der Veränderung der Marktumgebung ab. Sie kann in einem wackligen Umfeld schlechter abschneiden.

Entsprechende Lösungen:

  1. In Kombination mit anderen Indikatoren wurde ein schneller Rückschlag beurteilt.
  2. Testoptimierung der Parameter.
  3. Anpassung der Parameter an die Dynamik der Marktumgebung.

Optimierungsrichtung

Die Strategie kann auch in folgenden Bereichen optimiert werden:

  1. Das MACD, das KD und andere Indikatoren helfen bei der Beurteilung der Effektivität der Strategie.
  2. Erweiterte Stop-Loss-Logik, um das Risiko weiter zu kontrollieren.
  3. Optimierung der Moving Average-Periodenparameter für mehr ETFs.
  4. Dynamische Anpassung der Parameter an veränderte Marktumstände.

Zusammenfassen

Diese Strategie ist eine risikoarme, einfach umzusetzende Index-ETF-Quantitativ-Trend-Folge-Strategie. Sie nutzt die Kreuzung der beweglichen Mittel zur Bestimmung der Trendrichtung und bietet Vorteile wie starke Risikokontrolle, niedrige Kosten und Ertragsstabilität. Die Strategie weist auch einige Mängel auf, kann jedoch in vielerlei Hinsicht weiter optimiert werden und ist ein wirksames Instrument für die Anlage von Index-ETFs.

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

//@version=4
//please use on daily SPY, or other indexes only
strategy("50-150 INDEX TREND FOLLOWING", overlay=true)

//user input
fastSMA = input(title="Fast Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=50,confirm=false)
slowSMA = input(title="Slow Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=150,confirm=false)
longSlopeThreshold = input(title="Bullish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=5,confirm=false)
shortSlopeThreshold = input(title="Bearish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=-5,confirm=false)
atrValue = input(title="Average True Range (Int)",type=input.integer,minval=1,maxval=100,step=1,defval=14,confirm=false)
risk = input(title="Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=100,confirm=false)

//create indicator
shortSMA = sma(close, fastSMA)
longSMA = sma(close, slowSMA)

//calculate ma slope
angle(_source) =>
    rad2degree=180/3.14159265359
    ang=rad2degree*atan((_source[0] - _source[1])/atr(atrValue)) 

shortSlope=angle(shortSMA)
longSlope=angle(longSMA)

//specify crossover conditions
longCondition = (crossover(shortSMA, longSMA) and (shortSlope > longSlopeThreshold)) or ((close > shortSMA) and (shortSMA > longSMA) and (shortSlope > longSlopeThreshold))
exitCondition = crossunder(shortSMA, longSMA) or (shortSlope < shortSlopeThreshold)
strategy.initial_capital = 50000
//units to buy
amount = (risk / 100) * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

//long trade
if (longCondition and strategy.position_size == 0)
    strategy.order("Long", strategy.long, units)

//close long trade
if (exitCondition and strategy.position_size > 0)
    strategy.order("Exit", strategy.short, strategy.position_size)

// Plot Moving Average's to chart
plot(shortSMA, color=color.blue)
plot(longSMA, color=color.green)