Une stratégie de trading basée sur deux moyennes mobiles évoluant progressivement avec des paramètres différents


Date de création: 2023-12-20 14:28:36 Dernière modification: 2023-12-20 14:28:36
Copier: 0 Nombre de clics: 661
1
Suivre
1621
Abonnés

Une stratégie de trading basée sur deux moyennes mobiles évoluant progressivement avec des paramètres différents

Aperçu

La stratégie de négociation par courbe de progression est une stratégie de négociation basée sur des signaux croisés de deux moyennes mobiles exponentielles (EMA) avec des paramètres différents. Elle utilise une ligne EMA à courte période et une ligne EMA à longue période, qui génère un signal de négociation lorsqu’elles se croisent.

Principe de stratégie

La stratégie est basée sur deux lignes EMA: la ligne rapide et la ligne lente. Les paramètres de la ligne rapide sont définis par défaut sur la ligne 13 et sont plus sensibles aux variations de prix; les paramètres de la ligne lente sont définis par défaut sur la ligne 48 et sont plus sensibles aux variations de prix.

Selon ce principe, la stratégie fait plus lorsque la ligne rapide franchit la ligne lente de bas en haut, indiquant que le prix commence à monter, et peut être achetée; lorsque la ligne rapide franchit la ligne lente de haut en bas, indiquant que la tendance haussière est terminée, le blocage doit être arrêté à temps. Pour contrôler les risques, la stratégie a également mis en place un stop loss initial et un stop loss suivi: le stop loss initial est de 8% du prix d’entrée, tandis que le stop loss suivi est de 120 points.

Dans la mise en œuvre du code, la stratégie détermine les signaux de croisement EMA par les fonctions crossover et crossunder, et déclenche une entrée et une fermeture correspondantes pour acheter et fermer la position de paix lorsque le croisement se produit.

Analyse des avantages

La stratégie de négociation progressive a les avantages suivants:

  1. Les signaux stratégiques sont simples, clairs, faciles à comprendre et adaptés aux débutants.

  2. L’indicateur de la ligne moyenne est un bon filtrage du bruit du marché, permettant de détecter les changements de tendance.

  3. Il est configurable, avec des paramètres de ligne rapide et lente et des points d’arrêt personnalisés.

  4. Le contrôle des risques est efficace avec des mesures de prévention des pertes.

  5. Il y a une certaine stabilité.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. En cas de forte volatilité du marché, les signaux croisés EMA peuvent être retardés et ne pas refléter en temps opportun les variations de prix;

  2. Les paramètres de l’indicateur de l’équilibre sont ajustés trop rapidement, ce qui peut générer plus de signaux erronés;

  3. Les EMA croisent rarement les tendances faibles, ce qui ne permet pas de saisir efficacement le mouvement des prix.

  4. La stratégie elle-même ne prend pas en compte l’analyse des tendances à grande échelle, et les transactions qui s’écartent des grandes tendances sont facilement générées lorsque la tendance générale du marché est incertaine.

Ces risques peuvent être atténués par:

  1. en combinaison avec d’autres indicateurs pour confirmer le signal de croisement de la même ligne, comme le MACD, le KD, etc.;

  2. Adapter les paramètres EMA en fonction des différents marchés afin de réduire le taux de faux signaux;

  3. Ajout d’un module de jugement des tendances, basé sur la moyenne à long terme pour juger de la direction générale des événements.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Augmenter le filtrage des conditions d’ouverture de position pour éviter des transactions inutiles dans des conditions de choc. Le seuil d’ouverture de position peut être défini en combinaison avec des indicateurs tels que la volatilité et le volume des transactions;

  2. la mise en place d’un stop loss combiné avec les hauts et les bas du marché, les supports, etc. pour améliorer l’exactitude du stop loss;

  3. Ajout d’un module de jugement de tendance pour filtrer les signaux à court terme avec des tendances à long terme dans des cadres plus élevés afin d’éviter les déviations par rapport aux grandes tendances;

  4. Les paramètres EMA peuvent être formés et optimisés par l’apprentissage automatique pour les rendre plus adaptés aux conditions réelles du marché et réduire le taux d’erreur.

Les points ci-dessus sont les principales directions dans lesquelles la stratégie peut être améliorée et optimisée à l’avenir. La combinaison appropriée d’un plus grand nombre d’indicateurs et de moyens de gestion des risques rendra la stratégie croisée de l’EMA plus efficace.

Résumer

La stratégie de négociation en ligne de parité progressive est une stratégie de suivi de la tendance de base. Elle utilise les croisements des lignes rapides et lentes EMA pour juger de la tendance des prix et combine des mesures de contrôle des risques avec des mesures de freinage. La stratégie de signal est simple et claire, facile à comprendre, particulièrement adaptée aux débutants, et est l’une des stratégies typiques de l’introduction de la quantification.

Code source de la stratégie
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// *** USE AT YOUR OWN RISK ***
// 
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 13, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 48, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 120, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 20, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)