Il s'agit d'une stratégie de suivi de la tendance de l'indice ETF basée sur des moyennes mobiles. Il utilise le croisement et la pente des moyennes mobiles rapides et lentes pour déterminer la direction de la tendance pour la tendance de suivi de la tendance de la tendance à faible risque des actifs de l'indice ETF.
La stratégie utilise des moyennes mobiles de 50 périodes et 150 périodes. Lorsque la moyenne mobile rapide traverse la moyenne mobile lente et que la pente de la moyenne mobile rapide est supérieure au seuil, elle indique un renversement de tendance à la hausse pour une entrée longue. Lorsque la moyenne mobile rapide traverse en dessous de la moyenne mobile lente ou que la pente de la moyenne mobile rapide est inférieure au seuil, elle indique un renversement de tendance à la baisse pour les positions sortantes.
La stratégie utilise simplement la direction et la pente des moyennes mobiles pour déterminer la tendance du marché, éviter le surajustement et contrôler efficacement les risques.
Il s'agit d'une tendance des ETF indiciels à dynamique à faible risque suivant une stratégie présentant les avantages suivants:
Il y a aussi des risques:
Les solutions:
Il y a quelques domaines dans lesquels cette stratégie peut être encore optimisée:
En conclusion, il s'agit d'une stratégie de suivi de la tendance de l'indice ETF à faible risque et facile à mettre en œuvre. Elle détermine les directions de la tendance en utilisant des croisements de moyennes mobiles et présente des avantages tels qu'un contrôle des risques fort, un faible coût de mise en œuvre et des bénéfices stables. Bien que certaines failles existent, la stratégie peut être encore améliorée à bien des égards pour devenir un outil efficace d'allocation d'actifs de l'indice ETF.
/*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)