
Cette stratégie est basée sur les signaux d’achat et de vente classiques des moyennes mobiles croisées, mais a été modifiée pour produire des signaux de négociation plus précis. La stratégie combine les croisements des moyennes mobiles rapides et des moyennes mobiles lentes pour déterminer la tendance et appartient à la stratégie de suivi de la tendance.
Lorsque la moyenne mobile rapide franchit la moyenne mobile lente par le bas, elle est considérée comme un signal d’achat; lorsque la moyenne mobile rapide franchit la moyenne mobile lente par le haut, elle est considérée comme un signal de vente.
La clé de cette stratégie réside dans le choix d’une moyenne rapide et lente. La stratégie utilise des moyennes mobiles indexées de 50 et 100 de longueur comme ligne rapide et lente. L’effet de la stratégie peut être optimisé en ajustant les paramètres de la moyenne.
Cette stratégie, combinée à une approximation de la direction d’une tendance, permet de filtrer efficacement le bruit du marché et d’identifier les tendances. En outre, la mise en place d’un stop-loss peut limiter les pertes de transactions individuelles.
La stratégie utilise des principes de croisement pour déterminer les points de basculement de la tendance et pour saisir les opportunités de tendance en temps opportun. Comparée aux stratégies comportant une logique conditionnelle complexe, la stratégie est facile à comprendre et à mettre en œuvre.
Cette stratégie peut présenter trois risques majeurs: risque d’un mauvais paramètre de la moyenne, risque d’un mauvais temps de détention et risque d’une mauvaise position de stop-loss.
Le mauvais choix des paramètres de la ligne moyenne entraînera la production de faux signaux. Si la longueur de la ligne moyenne est trop courte ou trop longue, le marché sera mal jugé et il faudra l’ajuster de manière appropriée pour correspondre aux caractéristiques spécifiques de la variété.
La période de détention est trop longue ou trop courte pour maximiser les bénéfices ou contrôler les risques. Il est nécessaire de tester différentes sorties pour déterminer la période de détention optimale.
Si la position de l’arrêt est mal réglée, il en résultera un arrêt trop lâche ou trop serré. Le bon arrêt doit être déterminé en fonction de la volatilité de la variété.
Cette stratégie peut être optimisée dans les domaines suivants:
Tester plus de combinaisons de paramètres linéaires pour trouver le paramètre optimal
Détermination d’une position de stop dynamique basée sur les fluctuations de prix les plus récentes de N jours ou ATR
Le temps d’entrée est évalué en fonction d’autres indicateurs comme le MACD, le KD, etc.
Ajout d’une règle de filtrage des tendances pour éviter la liquidation du marché
Il peut être envisagé d’appliquer la stratégie à plus de variétés, ou d’améliorer la stratégie à travers les variétés.
Cette stratégie d’optimisation de la croisée des moyennes mobiles intègre les avantages de la direction de la tendance de la courbe des moyennes rapides et l’arrêt de la perte pour contrôler le risque. C’est une stratégie de suivi de la tendance facile à mettre en œuvre. La stratégie peut améliorer encore la stabilité et l’efficacité par des moyens tels que l’optimisation des paramètres, l’optimisation des arrêts de perte et le filtrage du signal.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)
fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)
fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)
enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)
longStop = 0.0
longStop := enterShort ? close : longStop[1]
shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]
plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")
if enterLong
strategy.entry(id="GoLong", long=true)
if enterShort
strategy.entry(id="GoShort", long=false)
if strategy.position_size > 0
strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)
if strategy.position_size < 0
strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)
strategy.close_all()