
Il s’agit d’une stratégie de suivi de tendance dynamique quantitative basée sur des indices ETF à moyennes mobiles. Elle utilise la direction et la pente croisée des moyennes mobiles rapides et des moyennes mobiles lentes pour déterminer la direction de la tendance et permettre le suivi de tendance quantitative dynamique des actifs ETF à indices à faible risque.
La stratégie utilise des moyennes mobiles de 50 et 150 cycles. Lorsqu’une moyenne mobile rapide traverse une moyenne mobile lente et que la pente de la moyenne mobile rapide est supérieure à la marge, la tendance est considérée comme une inversion, et plus; lorsqu’une moyenne mobile lente est traversée sous la moyenne mobile rapide ou que la pente de la moyenne mobile rapide est inférieure à la marge, la tendance est considérée comme une inversion, et plus.
Cette stratégie utilise simplement et directement la direction et l’inclinaison des moyennes mobiles pour déterminer les tendances du marché, éviter l’ajustement de la courbe et contrôler efficacement les risques. De plus, les moyennes mobiles ont naturellement des propriétés de réduction du bruit et peuvent filtrer efficacement le bruit du marché.
Il s’agit d’un ETF indexé à faible risque avec une stratégie de suivi de tendance dynamique qui présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
La stratégie peut également être optimisée dans les domaines suivants:
Cette stratégie est une stratégie de suivi de tendance dynamique de type quantitatif d’ETF indicielle à faible risque et simple à mettre en œuvre. Elle utilise la direction de la tendance de détermination croisée des moyennes mobiles et présente des avantages tels que une forte capacité de contrôle des risques, une stabilité des coûts et des bénéfices.
/*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)