EMA Crossover 9/21 — stratégie Pine Script v5
Cette stratégie calcule une EMA sur neuf périodes et une EMA sur vingt-et-une périodes de la clôture, puis ouvre une position longue quand la rapide croise au-dessus de la lente. Elle ferme cette position quand la rapide repasse sous la lente.
Code complet (gratuit, à copier)
//@version=5
strategy("EMA Crossover 9/21", overlay=true)
fast = ta.ema(close, 9)
slow = ta.ema(close, 21)
if (ta.crossover(fast, slow))
strategy.entry("Long", strategy.long)
if (ta.crossunder(fast, slow))
strategy.close("Long")Comment fonctionne le script
Le script commence par strategy("EMA Crossover 9/21", overlay=true), qui nomme la stratégie et l'affiche directement sur le graphique des prix. Il calcule ensuite fast = ta.ema(close, 9), une moyenne mobile exponentielle sur neuf périodes de la clôture, puis slow = ta.ema(close, 21), la même moyenne sur vingt-et-une périodes. Les deux séries sont recalculées à chaque bougie et ne lisent que la clôture.
L'entrée tient à une seule condition : ta.crossover(fast, slow). Cette fonction est vraie uniquement sur la bougie où l'EMA rapide passe de sous l'EMA lente à au-dessus. Quand c'est le cas, strategy.entry("Long", strategy.long) ouvre une position longue portant l'identifiant "Long". Aucun filtre de tendance, de volume ou de volatilité n'est appliqué avant cet appel.
La sortie utilise la condition inverse : ta.crossunder(fast, slow), vraie sur la bougie où l'EMA rapide repasse sous l'EMA lente. Le script appelle alors strategy.close("Long"), qui ferme la position longue associée à cet identifiant. Le code ne contient ni stop loss, ni take profit, ni trailing stop : le croisement opposé est la seule sortie, et une position ouverte à la fin de la période testée le reste.
Paramètres du code
| Paramètre | Valeur | Rôle |
|---|---|---|
longueur rapide | 9 | Période de la moyenne rapide dans fast = ta.ema(close, 9). |
longueur lente | 21 | Période de la moyenne lente dans slow = ta.ema(close, 21). |
source | close | Série de prix passée aux deux appels ta.ema ; elle est codée en dur, sans input. |
overlay | true | Réglé dans la déclaration strategy() pour afficher la stratégie sur le graphique des prix. |
titre de la stratégie | EMA Crossover 9/21 | Premier argument de strategy(), le nom affiché par la plateforme pour ce script. |
identifiant d'entrée | Long | Chaîne passée à strategy.entry puis réutilisée par strategy.close. |
sens de l'entrée | strategy.long | Second argument de strategy.entry, ouvre la position à l'achat. |
appel de sortie | strategy.close("Long") | Ferme toute la position Long au croisement opposé. |
taille d'ordre | non réglée (défaut Pine) | strategy.entry ne reçoit aucun argument qty, la taille d'ordre par défaut de la plateforme s'applique. |
Limites connues de cette règle
- Les moyennes mobiles exponentielles retardent, donc l'entrée arrive après une partie du mouvement, et en range les deux courbes se croisent sans cesse, ce qui multiplie les allers-retours.
- Le code n'a ni stop loss ni take profit : seule la clôture au croisement opposé termine la position, donc un mouvement défavorable est porté jusqu'à ce croisement.
- Les commissions, le spread et le glissement ne sont pas modélisés dans le script, et les longueurs fixes ne sont pas adaptées à l'instrument ni à l'unité de temps tradée.
Avant de lui faire confiance : testez-la sur des données jamais vues
Un backtest dans le Strategy Tester de TradingView montre un seul chemin passé, avec les réglages que vous avez choisis. Strategy Arena Lab (gratuite, Windows et Linux) rejoue ce Pine sur votre PC, compare ses trades un par un à ceux de TradingView pour le Pine pris en charge, compte les variantes essayées, puis juge la règle sur une période restée scellée pendant la recherche : résiste, mirage ou non concluant.
FAQ
Est-ce que ça marche sur les cryptos ?
Le code n'utilise que la clôture et des EMA, il peut donc s'appliquer à n'importe quel symbole proposé par la plateforme. La pertinence du croisement dépend du marché, et vous pouvez le rejouer sur une période jamais vue dans Strategy Arena Lab, qui est gratuite.
Comment ajouter un stop loss ?
Ajoutez un argument stop à strategy.entry, ou appelez strategy.exit avec un prix de stop après l'entrée. Le script actuel ne contient ni l'un ni l'autre : seul le croisement opposé ferme la position.
Autres stratégies Pine Script v5 gratuites
Autres parcours TradingView
Code pédagogique sur données passées. Aucun conseil d’investissement, aucun résultat promis.