Stratégie de suivi de tendance de l'indice Momentum


Date de création: 2023-12-05 15:13:25 Dernière modification: 2023-12-05 15:13:25
Copier: 0 Nombre de clics: 681
1
Suivre
1619
Abonnés

Stratégie de suivi de tendance de l’indice Momentum

Aperçu

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.

Principe de stratégie

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é.

Analyse des avantages

Il s’agit d’un ETF indexé à faible risque avec une stratégie de suivi de tendance dynamique qui présente les avantages suivants:

  1. Une forte capacité de maîtrise des risques. Un filtrage du bruit du marché par une moyenne mobile.
  2. Faible coût de mise en œuvre. Utiliser uniquement des moyennes mobiles simples. Faible coût de mise en œuvre et facile à mettre en œuvre.
  3. Stabilité des gains. Les indices ETF eux-mêmes sont peu volatils et peuvent générer des gains supplémentaires stables en suivant la tendance.
  4. Adaptabilité: Il existe de nombreux paramètres qui peuvent être ajustés et optimisés pour différents indices des ETF.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Il est possible de manquer une inversion rapide.
  2. Les paramètres sont sensibles. Une mauvaise configuration des paramètres peut entraîner un nombre excessif de transactions ou des opportunités manquées.
  3. L’effet varie en fonction de l’environnement du marché. Il peut être négatif en cas de choc.

La réponse:

  1. Le taux de conversion rapide, combiné à d’autres indicateurs.
  2. Optimisation des paramètres pour les tests.
  3. Les paramètres sont ajustés en fonction de la dynamique de l’environnement du marché.

Direction d’optimisation

La stratégie peut également être optimisée dans les domaines suivants:

  1. L’utilisation d’autres indicateurs comme le MACD, le KD et d’autres pour aider à juger l’efficacité de la stratégie.
  2. Logique d’arrêt des pertes est ajoutée pour contrôler davantage le risque.
  3. Optimisation des paramètres de cycles des moyennes mobiles pour plus d’indices ETF.
  4. Adaptation dynamique des paramètres à l’évolution de l’environnement du marché

Résumer

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.

Code source de la stratégie
/*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)