
La stratégie globale des moyennes mobiles multiples est une stratégie d’analyse technique très complète et universelle. Elle combine des moyennes mobiles de plusieurs périodes de temps pour fournir un aperçu complet des tendances du marché. La stratégie aide à identifier les points d’entrée et de sortie potentiels en générant des signaux d’achat et de vente clairs.
Le cœur de la stratégie consiste à calculer et à suivre des moyennes mobiles sur plusieurs périodes de différentes longueurs, notamment des moyennes mobiles de 10, 20, 30 et jusqu’à 100 jours. Ces moyennes mobiles sont définies comme les moyennes des prix de clôture du jour par rapport aux prix de clôture d’une période donnée dans le passé (par exemple, 10 jours, 20 jours, etc.).
Un signal d’achat est généré lorsque le prix de clôture d’aujourd’hui est supérieur à toutes ces moyennes mobiles. Un signal de vente est généré lorsque le prix de clôture d’aujourd’hui est inférieur à toutes ces moyennes mobiles. Ainsi, un signal n’est généré que lorsque toutes les moyennes mobiles de tous les cycles pointent dans la même direction, ce qui filtre beaucoup d’opportunités de négociation bruyantes et rend le signal plus fiable.
Offre des informations à plusieurs échelles temporelles et s’adapte à différents environnements de marché
Le signal est plus fiable avec plusieurs confirmations, filtrage du bruit
Les règles de négociation sont claires, faciles à comprendre et à mettre en œuvre
Avec une grande personnalisation, l’utilisateur peut ajuster les paramètres pour répondre à des besoins personnalisés
Fournir des directives claires pour l’entrée, l’arrêt et l’arrêt de la perte, ce qui contribue à la gestion des risques
Lorsque le marché est en période de choc, plusieurs moyennes mobiles peuvent se croiser, ce qui entraîne une absence de signal clair. La probabilité de croisement peut être réduite en ajustant le nombre et la durée des cycles de moyennes mobiles.
Il est peu probable que le prix survienne à l’avenir en cas de rupture de plusieurs moyennes mobiles, et il est possible de rater certaines opportunités de négociation. Il est possible de réduire le nombre de moyennes mobiles de manière appropriée pour réduire la difficulté de rupture.
Les signaux sont retardés et ne permettent pas de saisir la tendance avant le point de basculement des prix. En combinaison avec d’autres indicateurs précurseurs tels que le MACD, il est possible d’améliorer le jugement sur le renversement de tendance.
Le nombre de transactions peut être faible et il est difficile d’obtenir des gains stables. La longueur de la moyenne mobile peut être raccourcie de manière appropriée ou utilisée avec d’autres combinaisons de stratégies / indicateurs.
Ajustement des paramètres: ajustez le nombre et la durée des cycles de la moyenne mobile pour trouver la combinaison optimale de paramètres. Par exemple, les combinaisons de moyennes mobiles de 5, 10 et 20 jours peuvent être testées.
Combinaison avec d’autres indicateurs: Utilisation en combinaison avec d’autres indicateurs tels que le MACD, le RSI, etc., pour améliorer la résilience de la stratégie. Les différents indicateurs peuvent se compléter.
Combinaison de stratégies: Combinaison avec d’autres stratégies telles que le système de rupture, le système de suivi des tendances, pour améliorer la stabilité. Les différentes stratégies peuvent disperser les risques.
Optimisation automatique: l’utilisation d’algorithmes pour tester automatiquement les différents paramètres afin de trouver la combinaison de paramètres souhaitée qui maximise l’efficacité. Réduire l’intervention humaine et améliorer l’efficacité.
La stratégie globale des moyennes mobiles multiples est un outil stratégique très complet et puissant. Elle offre des informations à plusieurs échelles temporelles, des signaux fiables, faciles à comprendre et à utiliser, et est hautement personnalisable. Elle présente également certaines limites, mais peut être optimisée pour s’adapter à des conditions de marché plus complexes en ajustant les paramètres et en les combinant avec d’autres modèles.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)