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.
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.
Dies ist ein Trend für einen ETF mit niedrigem Risiko, der sich an einer Strategie mit folgenden Vorteilen orientiert:
Es gibt auch einige Risiken:
Lösungen:
Es gibt einige Bereiche, in denen diese Strategie weiter optimiert werden kann:
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)