Il s'agit d'une stratégie de trading basée sur des signaux croisés de moyenne mobile.
Lorsque le prix monte et dépasse la ligne de la moyenne mobile de 45 jours, un signal d'achat est généré. Après avoir maintenu la position pendant 8 jours, un signal de vente est généré.
Les principes de logique spécifiques sont les suivants:
Ce qui précède constitue la logique de base de cette stratégie.
Cette stratégie présente les avantages suivants:
Il y a quelques risques avec cette stratégie:
Les solutions:
Les principaux domaines d'amélioration sont les suivants:
Optimiser les paramètres de l'AM pour trouver les meilleures combinaisons, par exemple des AM de 15 jours, 30 jours ou 60 jours.
Optimiser la période de conservation pour déterminer la durée optimale, par exemple 5 jours, 10 jours, 15 jours.
Ajouter des arrêts de suivi pour suivre les tendances et contrôler les risques, par exemple des arrêts d'essai ou des arrêts ATR.
Ajoutez des filtres utilisant d'autres indicateurs tels que MACD, KDJ pour réduire les faux signaux.
Améliorer les règles de réintégration afin d'éviter une survente, par exemple en imposant des périodes de réflexion.
L'efficacité des tests sur différents marchés et instruments.
En résumé, cette stratégie de croisement de MA est un système de suivi de tendance simple et pratique. Elle tire parti de la capacité de suivi de tendance des MA et combine les pannes de prix pour générer des signaux commerciaux. Les avantages sont qu'elle est facile à mettre en œuvre tandis que les inconvénients sont des coupes occasionnelles. La stratégie peut être encore améliorée grâce à l'optimisation des paramètres et à l'ajout d'autres indicateurs comme filtres.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")