Stratégie globale de moyenne mobile multiple

Auteur:ChaoZhang est là., Date: 2023-12-22 à 11h56h42
Les étiquettes:

img

Résumé

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é.

Principaux

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.

Les avantages

  1. Fournit des informations sur de multiples échelles de temps, adaptées à différents environnements de marché

  2. Filtre le bruit via plusieurs confirmations, rendant les signaux plus fiables

  3. Des règles commerciales claires, faciles à comprendre et à mettre en œuvre

  4. Très personnalisable pour répondre aux exigences personnalisées

  5. Fournit des conseils pour les entrées, les arrêts de pertes et les prises de bénéfices, facilitant la gestion des risques

Risques et solutions

  1. Plusieurs moyennes mobiles peuvent se croiser pendant les marchés à fourchette, ce qui entraîne des signaux peu clairs.

  2. La probabilité que les prix éventuels brisent plusieurs moyennes mobiles est faible, ce qui peut entraîner une absence de certaines transactions.

  3. Les signaux sont en retard, incapables de détecter tôt les renversements de tendance.

  4. Le nombre de transactions générées peut être faible pour un revenu régulier.

Directions d'optimisation

  1. Paramètre de réglage: ajuster le nombre et la longueur des moyennes mobiles pour trouver la combinaison optimale de paramètres.

  2. 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.

  3. 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.

  4. Optimisation automatisée: test algorithmique de différents ensembles de paramètres pour maximiser les fonctions objectives et trouver les paramètres optimaux.

Conclusion

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)


Plus de