Stratégie de trading quantitative basée sur la moyenne mobile


Date de création: 2024-01-16 17:37:13 Dernière modification: 2024-01-16 17:37:13
Copier: 0 Nombre de clics: 711
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur la moyenne mobile

Aperçu

Cette stratégie est une stratégie de suivi de tendance typique en calculant les moyennes mobiles de différentes périodes et en déterminant si leurs fourches dorées forment un signal de transaction. Elle utilise principalement des moyennes mobiles pondérées WMA et des moyennes mobiles adaptables ALMA.

Principe de stratégie

La stratégie commence par calculer les moyennes moyennes mobiles à court terme ma1 et ma2, où ma1 est plus courte et ma2 plus longue. Ensuite, elle calcule la différence entre ma1 et ma2, puis calcule une moyenne mobile lisse ma4 pour ma3. Elle génère un signal d’achat lorsque ma3 traverse ma4 et un signal de vente lorsqu’elle traverse ma3.

Ainsi, ma3 reflète la direction de la tendance à moyen et à court terme des prix, ma4 filtre la partie du bruit de ma3 et forme un signal de négociation plus fiable. Le rapport périodique de ma1 et ma2 est défini par le paramètre maLen, permettant à l’utilisateur d’obtenir la meilleure combinaison de paramètres en fonction des différentes périodes d’ajustement du marché.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. L’utilisation d’une moyenne mobile adaptative ALMA et d’une moyenne mobile pondérée WMA permet de mieux s’adapter aux changements du marché.

  2. La méthode des moyennes de prix pluricycliques est utilisée pour rendre les signaux de négociation plus fiables.

  3. Les paramètres sont réglables, l’utilisateur peut les optimiser pour différents marchés et sont largement utilisés.

  4. Les stratégies sont claires, faciles à comprendre et à mettre en œuvre.

  5. Les résultats obtenus dans les marchés tendanciels et les marchés volatiles sont bons.

Risques et solutions

Cette stratégie comporte aussi des risques:

  1. Dans des conditions de forte volatilité, les stratégies de moving averages sont sujettes à des problèmes tels que l’ambiguïté et le retard des signaux de transaction. Les stratégies de moving averages peuvent être optimisées en ajustant la période et les paramètres des moyennes mobiles.

  2. La stratégie de suivi de la tendance pure est susceptible de générer des pertes pendant la phase d’ajustement de l’équilibre. Elle peut être combinée avec d’autres indicateurs comme conditions de filtrage.

  3. Une mauvaise configuration des paramètres peut entraîner des transactions excessives sur des périodes trop courtes. Les paramètres appropriés doivent être choisis avec prudence.

Optimisation de la stratégie

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

  1. Test d’autres types de moyennes mobiles, comme les moyennes mobiles linéaires, les moyennes mobiles pondérées, etc.

  2. L’augmentation des mécanismes de stop-loss basés sur des indicateurs tels que la volatilité et les canaux de prix.

  3. Les paramètres d’optimisation du défilement sont combinés avec plusieurs analyses de périodes de temps.

  4. Ajout d’algorithmes d’apprentissage automatique pour optimiser automatiquement les paramètres.

Résumer

Cette stratégie est basée sur les moyennes mobiles pour former des signaux de négociation. Elle utilise des moyennes mobiles et des moyennes de prix adaptées à plusieurs périodes de temps, ce qui rend le signal plus précis et plus fiable. Les paramètres de la stratégie sont réglables, largement applicables, l’idée est simple et claire, elle fonctionne bien dans les marchés tendanciels et a une grande valeur de combat.

Code source de la stratégie
/*backtest
start: 2024-01-08 00:00:00
end: 2024-01-15 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Oracle Move Strategy", overlay=true)

maLen = input(30, "ma period")
mode =  input(defval="wma", options=["alma", "ema", "wma"])
price = close

ma(src, len) =>
     mode=="alma"  ? alma(src, len, 0.85, 6) :
     mode=="ema"? ema(src, len) : 
     wma(src, len)
    

ma1 = ma(price, floor(maLen / 2))
ma2 = ma(price, maLen)
ma3 = 2.0 * ma1 - ma2
ma4 = ma(ma3, floor(sqrt(maLen)))

//plot(ma1, color = red)
//plot(ma2, color = green)
plot(ma3, color = blue)
plot(ma4, color = orange)


mafast = ma3
maslow = ma4

if (crossover(mafast, maslow))
    strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE")

if (crossunder(mafast, maslow))
    strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)