Momentum Index ETF-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-05 15:13:25
Tags:

img

Übersicht

Dies ist ein Momentum-Index-ETF-Trend nach einer auf gleitenden Durchschnitten basierenden Strategie. Es verwendet die Überschneidung und Neigung von schnellen und langsamen gleitenden Durchschnitten, um die Trendrichtung für einen niedrigriskantigen Momentum-Trend nach Index-ETF-Assets zu bestimmen.

Strategie Logik

Die Strategie verwendet 50-Perioden- und 150-Perioden- gleitende Durchschnitte. Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt überschreitet und die Steigung des schnellen gleitenden Durchschnitts größer als die Schwelle ist, signalisiert sie eine Aufwärtstrendumkehr für einen langen Einstieg. Wenn der schnelle gleitende Durchschnitt unter den langsamen gleitenden Durchschnitt überschreitet oder die Steigung des schnellen gleitenden Durchschnitts kleiner als die Schwelle ist, signalisiert er eine Abwärtstrendumkehr für ausgehende Positionen.

Die Strategie nutzt einfach die Richtung und Neigung der gleitenden Durchschnitte, um den Markttrend zu bestimmen, Überanpassung zu vermeiden und Risiken effektiv zu kontrollieren.

Analyse der Vorteile

Dies ist ein Trend für einen ETF mit niedrigem Risiko, der sich an einer Strategie mit folgenden Vorteilen orientiert:

  1. Starke Fähigkeit zur Risikokontrolle. Gleitende Durchschnitte filtern Marktlärm für eine effektive Risikokontrolle.
  2. Niedrige Implementierungskosten: Nur einfache gleitende Durchschnitte werden verwendet, was zu niedrigen Kosten und einer einfachen Implementierung führt.
  3. Stabile Gewinne: Index-ETFs selbst weisen eine geringe Volatilität auf und können in Kombination mit Trendverfolgung eine stabile Überzinsung erzielen.
  4. Hohe Anpassungsfähigkeit: Viele verstellbare Parameter ermöglichen Optimierungen für verschiedene Index-ETFs.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Die Verwendung gleitender Durchschnitte zur Bestimmung von Trends kann schnelle Umkehrungen verpassen.
  2. Parameterempfindlich: Falsche Parameter Einstellungen können zu Übertrading oder fehlenden Chancen führen.
  3. Abhängigkeit der Leistung von den Marktbedingungen: Kann in unruhigen Märkten unterdurchschnittlich sein.

Lösungen:

  1. Einbeziehen Sie andere Indikatoren, um schnelle Umkehrungen zu ermitteln.
  2. Test und Optimierung der Parameter.
  3. Dynamische Anpassung der Parameter an die sich ändernden Marktbedingungen.

Optimierungsrichtlinien

Es gibt einige Bereiche, in denen diese Strategie weiter optimiert werden kann:

  1. Verwenden Sie andere Indikatoren wie MACD, KD, um die Strategie zu ergänzen.
  2. Einbeziehung einer Stop-Loss-Logik zur weiteren Risikokontrolle.
  3. Optimierung der gleitenden Durchschnittsperioden, um mehr Index-ETFs anzupassen.
  4. Dynamische Anpassung der Parameter an die verschiedenen Marktbedingungen.

Schlussfolgerung

Zusammenfassend ist dies eine risikoarme, einfach umsetzbare Dynamik-Index-ETF-Trendstrategie. Sie bestimmt Trendrichtungen mithilfe von gleitenden Durchschnitts-Kreuzungen und hat Vorteile wie starke Risikokontrolle, niedrige Implementierungskosten und stabile Gewinne. Obwohl einige Mängel bestehen, kann die Strategie in vielen Aspekten weiter verbessert werden, um ein wirksames Instrument für die Vermögensallokation von Index-ETF zu werden.


/*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)

Mehr