Catégorie
Plateforme
Niveau
Débutant
Utilisé pour
Exploitation de MT5Évaluation d'EA

Numéro magique

Un entier qu'un Expert Advisor appose sur chaque ordre qu'il envoie, afin de reconnaître ses propres positions et de laisser tout le reste du compte tranquille.

aussi : magic de l'EA, numéro magique d'ordre, MAGIC

Mis à jour · Révisé

En termes simples

Une étiquette nominative sur chaque trade. Le terminal se moque de savoir qui a ouvert une position, alors chaque EA inscrit son propre numéro sur le ticket et ne touche ensuite qu'aux tickets portant ce numéro.

Pourquoi c'est important

MetaTrader donne à chaque EA d'un compte la même vue sur toutes les positions. Sans étiquette, un EA ne peut pas distinguer ses trades des vôtres ni de ceux d'un autre EA — et un EA qui gère la mauvaise position est un bug qui coûte de l'argent plutôt qu'un bug qui lève une erreur.

  • C'est ce qui rend possible, tout simplement, l'exécution de plusieurs EA sur un même compte.
  • Il protège les trades manuels : ceux-ci portent le magic 0, qu'un EA correctement écrit ne touche jamais.
  • C'est ainsi qu'un historique peut être séparé par stratégie après coup — l'étiquette survit dans l'historique des deals.

Dans MetaTrader 5

Où cela apparaît dans MT5

  • Graphique → propriétés de l'EA (F7) → Paramètres — l'entrée MagicNumber de l'EA lui-même
  • Testeur de stratégies → Paramètres — la même entrée lors des tests
  • Code MQL5 : MqlTradeRequest.magic à l'envoi, POSITION_MAGIC / ORDER_MAGIC / DEAL_MAGIC à la relecture

Comment les EA s'en servent

  • Défini une fois au démarrage — CTrade::SetExpertMagicNumber(MagicNumber) — après quoi chaque ordre envoyé par l'EA porte l'étiquette.
  • Filtré à chaque passe : la boucle de positions saute tout ticket dont le POSITION_MAGIC n'est pas le sien avant de modifier, suivre ou clôturer quoi que ce soit.
  • L'historique est filtré de la même façon, pour que les statistiques par EA soient calculées uniquement sur les deals de cet EA.
  • Chaque EA généré par le Builder mt5depot est livré avec une entrée MagicNumber dont la valeur découle de la stratégie, si bien que deux EA générés différents n'entrent pas en collision d'emblée.

Réglages courants

Réglage Valeur courante Remarque
Trades manuels 0 La valeur par défaut du terminal. Un EA ne devrait jamais gérer le magic 0.
Un EA, un symbole n'importe quel entier unique Tout ce dont on se souvient convient — 20260807, 1001.
Le même EA sur plusieurs symboles une valeur par graphique Sinon l'instance EURUSD clôture les positions de l'instance GBPUSD.
EA de portefeuille exécutant plusieurs stratégies une valeur par jambe Chaque jambe a besoin de sa propre étiquette pour être suivie et clôturée indépendamment.

Problèmes d'exploitation fréquents

  • Deux instances laissées sur le même magic : chacune voit les positions de l'autre comme les siennes et les clôture au mauvais moment.
  • Changer le magic alors que des positions sont ouvertes les rend orphelines — l'EA ne reconnaît plus des trades qu'il a ouverts quelques minutes plus tôt, et rien ne les clôturera jamais automatiquement.
  • Laisser le magic à 0 met l'EA aux commandes de vos trades manuels.
  • Rattacher un EA après un redémarrage du terminal avec la valeur par défaut au lieu de celle configurée produit le même orphelinage, silencieusement.

Fonctions MT5 associées

CTrade::SetExpertMagicNumber()
Définit l'étiquette que portera chaque ordre suivant de cette instance.
PositionGetInteger(POSITION_MAGIC)
Lit l'étiquette sur une position ouverte.
OrderGetInteger(ORDER_MAGIC)
La lit sur un ordre en attente.
HistoryDealGetInteger(ticket, DEAL_MAGIC)
La lit sur un deal clôturé, ce qui permet de séparer l'historique par EA.

Exemple

Trois EA sur un compte. Chacun appose son propre numéro, si bien que chaque boucle de positions ne touche que ses propres lignes alors que tous voient les six positions.

Un terminal, un compte, trois propriétaires — l'étiquette est la seule chose qui les sépare.
EA de tendance sur EURUSD
20260101
EA de retour à la moyenne sur USDJPY
20260102
Vos trades manuels
0
Aucun EA ne revendique cette étiquette, donc rien d'automatique ne les clôturera.

Calcul if (PositionGetInteger(POSITION_MAGIC) != MagicNumber) continue;

Résultat Chaque EA ne gère que les positions qu'il a ouvertes

Chiffres illustratifs — ce n'est l'historique d'aucun EA du catalogue.

Comment on l'utilise

Traitez le numéro magique comme une configuration de compte, pas comme un réglage de stratégie : notez-le avant que l'EA passe en réel, et ne le changez jamais avec des positions ouvertes.

  • Attribuez une valeur par instance en cours d'exécution, pas par produit EA — le même EA sur deux graphiques a besoin de deux valeurs.
  • Tenez une liste. Dès que quatre ou cinq instances tournent, une étiquette non notée est indiscernable d'une étiquette dupliquée.
  • Ne réutilisez jamais une étiquette à laquelle sont encore rattachées des positions ouvertes, même venant d'un EA que vous avez retiré.
  • Vérifiez-la après chaque réinstallation du terminal ou restauration de profil, car c'est là que les valeurs par défaut reviennent.

La valeur elle-même n'a aucun sens pour MetaTrader — n'importe quel entier fonctionne. Tout ce qui compte, c'est qu'elle soit unique parmi ce qui tourne sur ce compte.

Erreurs fréquentes

Croire que le numéro magique influence l'exécution

Il ne change rien à la façon dont un ordre est exécuté. C'est une métadonnée : le courtier n'agit pas dessus et elle n'a aucun effet sur le prix, le spread ou le slippage.

Utiliser un seul numéro magique pour un EA sur de nombreux graphiques

L'identité qui compte est l'instance en cours d'exécution, pas le produit. Deux graphiques partageant une étiquette, ce sont deux instances gérant un même pool de positions.

Le changer pour « réinitialiser » un EA qui se comporte mal

Les positions ouvertes conservent l'ancienne étiquette. Changer l'entrée les abandonne : l'EA cesse de les reconnaître et elles restent ouvertes jusqu'à une clôture manuelle ou un stop out.

Supposer qu'un numéro magique sépare le relevé de compte

L'onglet Trade du terminal ne l'affiche pas. Séparer les résultats par EA exige de lire DEAL_MAGIC dans l'historique, ce que font les outils de reporting — pas quelque chose que le relevé par défaut vous donne.

En détail

Ce que l’étiquette n’achète pas, compté sur cette étagère

Sur les 14 EA publiés iciValeur
Fiches avec une entrée MagicNumber10
Fiches où il faut la changer à l’installation0
Fiches demandant de les faire tourner là où rien d’autre ne trade ce symbole8
Parmi elles, fiches portant malgré tout une entrée MagicNumber6
Symboles revendiqués par plus d’une fiche7 sur 15
Paires d’EA qui ne peuvent pas partager un compte15 sur 91

Lisez les lignes trois et quatre ensemble. Étiqueter des ordres est un travail ; décider si un nouveau signal est autorisé en est un autre, et un EA qui se limite à une position ouverte doit d’abord compter. S’il compte avec PositionsTotal() et une vérification de symbole, une position étrangère entre dans le total ; s’il filtre d’abord sur POSITION_MAGIC, elle n’y entre pas. Six fiches ici portent l’entrée et impriment quand même l’avertissement, ce qui vous dit laquelle des deux méthodes leur comptage de positions emploie.

La question de l’appariement est donc une question de symbole, et elle se tranche avant l’achat. USD/JPY est revendiqué par quatre fiches à la fois — Iridescence, Kestrel Hover, Lanternfish et Tessera —, donc aucune paire d’entre elles ne va ensemble. EUR/GBP en porte désormais deux, Ballast et Thunderhead. Seuls Orrery, Peregrine et Zerqon ne recouvrent personne. Là où deux se recouvrent, séparer les comptes règle ce qu’une étiquette ne peut pas : chaque EA compte alors un pool ne contenant que ses propres trades. Notre méthodologie consigne chaque exécution publiée par symbole, ce qui est la même distinction vue du côté de la mesure.

Questions fréquentes

Quel numéro magique dois-je utiliser ?
N'importe quel entier qui n'est pas déjà utilisé sur ce compte, et pas 0 — cette valeur appartient aux trades manuels. Une valeur en forme de date comme 20260807 est facile à suivre quand plusieurs instances tournent.
Deux EA peuvent-ils partager le même numéro magique ?
Techniquement oui, et c'est une cause fréquente de pertes difficiles à diagnostiquer : chaque instance traite les positions de l'autre comme les siennes et peut les clôturer ou les suivre au mauvais moment. Donnez à chaque instance en cours d'exécution sa propre valeur.
Le numéro magique compte-t-il dans le Testeur de stratégies ?
Pas pour un test à un seul EA, car rien d'autre ne trade dans le compte de test. Il compte dès que plus d'un EA tourne sur le même compte réel ou démo.