La stratégie complète des moyennes mobiles multiples est une stratégie d'analyse technique très polyvalente et puissante. Elle combine plusieurs moyennes mobiles sur différentes périodes pour fournir des informations complètes sur les tendances du marché.
Le noyau de cette stratégie est de calculer et de suivre plusieurs moyennes mobiles sur différentes périodes, en particulier les moyennes mobiles de 10 jours, 20 jours, 30 jours jusqu'à 100 jours. Ces moyennes mobiles sont définies comme le prix de clôture moyen sur les 10, 20, 30 derniers jours, etc. Par exemple, la moyenne mobile de 20 jours est le prix de clôture moyen sur les 20 derniers jours.
Lorsque le prix de clôture d'aujourd'hui est au-dessus de toutes ces moyennes mobiles, un signal d'achat est généré. Lorsque le prix de clôture d'aujourd'hui est en dessous de toutes ces moyennes mobiles, un signal de vente est généré. Ainsi, les signaux ne sont déclenchés que lorsque toutes les moyennes mobiles de différentes périodes pointent dans la même direction. Cela filtre beaucoup de bruit et rend les signaux plus fiables.
Fournit des informations sur de multiples échelles de temps, adaptées à différents environnements de marché
Filtre le bruit via plusieurs confirmations, rendant les signaux plus fiables
Des règles commerciales claires, faciles à comprendre et à mettre en œuvre
Très personnalisable pour répondre aux exigences personnalisées
Fournit des conseils pour les entrées, les arrêts de pertes et les prises de bénéfices, facilitant la gestion des risques
Plusieurs moyennes mobiles peuvent se croiser pendant les marchés à fourchette, ce qui entraîne des signaux peu clairs.
La probabilité que les prix éventuels brisent plusieurs moyennes mobiles est faible, ce qui peut entraîner une absence de certaines transactions.
Les signaux sont en retard, incapables de détecter tôt les renversements de tendance.
Le nombre de transactions générées peut être faible pour un revenu régulier.
Paramètre de réglage: ajuster le nombre et la longueur des moyennes mobiles pour trouver la combinaison optimale de paramètres.
Combinaison d'autres indicateurs: l'ajout d'indicateurs tels que le MACD et le RSI peut améliorer la résilience de la stratégie.
Stratégie Ensemble: Ensemble avec d'autres stratégies comme les systèmes de rupture et le suivi des tendances peut améliorer la robustesse.
Optimisation automatisée: test algorithmique de différents ensembles de paramètres pour maximiser les fonctions objectives et trouver les paramètres optimaux.
La stratégie globale des moyennes mobiles multiples est un outil d'analyse très polyvalent et puissant. Elle fournit des informations sur plusieurs échelles de temps, des signaux fiables, une facilité d'utilisation et de compréhension et une grande personnalisation.
/*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)