
La stratégie de trading à deux moyennes mobiles est une stratégie de trading quantitative courante. Elle utilise deux moyennes mobiles de différentes périodes de temps pour générer un signal de négociation en fonction de leur intersection. Plus précisément, elle est considérée comme un signal d’achat lorsque la moyenne mobile à court terme est traversée par la moyenne mobile à long terme et comme un signal de vente lorsque la moyenne mobile à court terme est traversée par la moyenne mobile à long terme.
Le principe central de cette stratégie est que les moyennes mobiles à court terme reflètent la tendance à court terme des prix des actifs et les moyennes mobiles à long terme reflètent la tendance à long terme des prix des actifs. Lorsque la courte ligne traverse la longue ligne, la tendance à court terme se transforme en hausse et l’on peut alors acheter; lorsque la courte ligne traverse la longue ligne, la tendance à court terme se transforme en baisse et l’on peut alors vendre.
Plus précisément, la stratégie définit deux moyennes mobiles: une moyenne mobile à court terme de 5 jours, utilisée pour capturer les tendances de prix à court terme; une autre moyenne mobile à long terme de 15 jours, utilisée pour juger les tendances de prix à long terme. Lorsque la ligne de 5 jours traverse la ligne de 15 jours par le bas, cela signifie que les prix à court terme ont commencé à augmenter, ce qui est un signal d’achat; lorsque la ligne de 5 jours traverse la ligne de 15 jours par le haut, cela signifie que les prix à court terme ont commencé à baisser, ce qui est un signal de vente.
Les avantages de la double moyenne mobile par rapport aux autres stratégies sont les suivants:
Les stratégies de double moyenne mobile présentent également des risques, notamment:
La réponse:
Cette stratégie peut être optimisée dans les directions suivantes:
En combinaison avec d’autres indicateurs de filtrage, tels que MACD, KDJ, etc., pour éviter de produire de faux signaux
L’introduction d’une moyenne mobile adaptative, qui ajuste dynamiquement les paramètres de la moyenne mobile en fonction de la volatilité du marché, améliore la stabilité
Optimiser les paramètres de la moyenne mobile, trouver les combinaisons optimales de paramètres et améliorer l’efficacité de la stratégie
Adhésion à un mécanisme de prévention des pertes, afin d’éviter l’expansion des pertes et d’améliorer la capacité de contrôle des risques
Combinaison de plusieurs fuseaux horaires, utilisant simultanément les signaux de jour et de périphérie pour améliorer la stabilité
Markov state switching, paramètres utilisés dans différents états de marché pour améliorer l’adaptabilité
La stratégie de trading à deux moyennes mobiles est une stratégie de trading quantitatif qui est globalement plus stable. Son principe de trading est simple, facile à comprendre et à mettre en œuvre, ses paramètres sont flexibles et permettent de suivre efficacement les tendances du marché. Il existe également certaines limitations, telles que la production de faux signaux et la difficulté à gérer les fortes fluctuations du marché.
//@version=3
strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true)
// === GENERAL INPUTS ===
// short ma
ma1Source = input(defval = close, title = "MA 1 Source")
ma1Length = input(defval = 5, title = "MA 1 Period", minval = 1)
// long ma
ma2Source = input(defval = close, title = "MA 2 Source")
ma2Length = input(defval = 15, title = "MA 2 Period", minval = 1)
// === SERIES SETUP ===
/// a couple of ma's..
ma1 = ema(ma1Source, ma1Length)
ma2 = ema(ma2Source, ma2Length)
// === PLOTTING ===
fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30)
// === LOGIC ===
enterLong = crossover(ma1, ma2)
exitLong = crossover(ma2, ma1)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2012)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=exitLong and window())