Codes de retour MT5 : pourquoi votre ordre est refusé
Mis à jour le
La réponse courte
Quand un ordre est rejeté, MT5 affiche un nombre à cinq chiffres commençant par 100. Ce code vient du serveur de votre broker et non de la plateforme, ce qui veut dire qu’il décrit une décision prise chez lui. 10009 est le succès. Les quatre refus les plus fréquents sont 10016, un stop ou un objectif du mauvais côté ou trop près du prix, 10019, des fonds insuffisants, 10014, un volume qui ne respecte pas le pas de lot, et 10017, le trading désactivé sur cet actif ou sur ce compte. Les trois premiers se corrigent en modifiant l’ordre, le quatrième non.
Ce qu’est un code de retour
Il ne s’agit pas d’un message d’erreur de votre logiciel, mais de la réponse du serveur de votre broker à une demande précise. C’est pour cela qu’il est fiable : il dit ce qui a été refusé, et par qui.
Deux codes signifient que tout s’est bien passé : 10009 pour un ordre exécuté, et 10008 pour un ordre en attente correctement placé. Tous les autres décrivent soit un refus, soit un état particulier.
Une distinction utile avant d’entrer dans le détail : certains refus portent sur votre ordre, et se corrigent en le modifiant. D’autres portent sur votre compte ou sur l’actif, et aucune modification de l’ordre n’y changera quoi que ce soit. Confondre les deux fait perdre beaucoup de temps.
Les refus qui viennent de votre ordre
10016, stops invalides, est de loin le plus fréquent. Il veut dire que le stop ou l’objectif est du mauvais côté du prix, ou bien trop près de lui. Ce « trop près » n’est pas une appréciation : votre broker publie une distance minimale, visible dans la spécification du contrat sous un intitulé du genre « niveau des stops », exprimée en points. En dessous de cette distance, le serveur refuse, quelle que soit la qualité de votre analyse. Sur un actif à forte volatilité, c’est aussi le signe qu’on essaie de placer un stop dans le bruit.
10015, prix d’ordre invalide, est le même problème appliqué au prix d’entrée d’un ordre en attente : soit il est du mauvais côté du marché pour le type d’ordre choisi, soit il est trop proche du prix courant.
10014, volume invalide, veut dire que la taille demandée ne respecte pas le pas de lot, ou tombe sous le minimum, ou dépasse le maximum de cet actif. Ces trois nombres se lisent eux aussi dans la spécification du contrat. C’est exactement le blocage décrit dans notre page sur la taille de position par instrument.
10019, fonds insuffisants, dit que la marge disponible ne couvre pas la position demandée. Sur un compte modeste, cela arrive surtout sur les actifs à levier bridé, comme le Bitcoin en Europe, et sur la dernière jambe d’un plan à plusieurs objectifs, quand les précédentes ont déjà mobilisé la marge.
10030, mode de remplissage non supporté, est plus technique : le type d’exécution demandé n’est pas accepté par cet actif. C’est un réglage, pas une erreur de votre part.
Les refus qui ne viennent pas de votre ordre
10017, trading désactivé, est le plus trompeur, parce que le graphique s’affiche normalement et que les prix défilent. Il dit que le trading est désactivé, sans dire sur quoi : ce peut être cet actif pour votre type de compte, ou votre compte entier s’il est en lecture seule. Le premier cas est celui des doublons, traité dans notre page sur les suffixes et les doublons de symboles. Le second est celui du mot de passe investisseur.
10018, marché fermé, a volontairement son propre code. Si vous voyez 10017 en dehors des heures de marché, la cause n’est donc pas la fermeture. C’est une confusion courante, et beaucoup de traductions approximatives l’entretiennent en mettant les deux causes dans le même message.
10026, trading automatique désactivé par le broker, veut dire que votre broker refuse les ordres envoyés par un programme sur ce compte, alors même que vous pouvez trader à la main dans MT5. Ce n’est pas un réglage de votre côté et il n’y a rien à corriger : soit vous passez l’ordre manuellement, soit il faut un compte qui l’autorise. C’est aussi une règle fréquente sur les comptes de prop firm.
10027 est son cousin, mais désigne le terminal client. Vous ne devriez jamais le rencontrer en passant par un outil correctement configuré.
10028, compte verrouillé, et 10032, opération réservée aux comptes de démonstration, relèvent de la même famille : c’est le compte qui répond, pas l’ordre.
Les refus de circonstance
10004 et 10020 signalent que le prix a changé pendant l’envoi. Ils sont normaux sur un marché rapide, et notamment autour d’une publication économique, comme expliqué dans notre page sur le calendrier économique. Il suffit de renvoyer.
10021, aucune cotation disponible, et 10031, connexion au serveur de trading perdue, décrivent un problème de liaison ou de flux, pas votre ordre.
10024, trop de requêtes, est un garde-fou du serveur contre un envoi en rafale.
Les codes en un coup d’œil
10008et10009: ordre accepté, rien à faire ;10004,10020,10021,10024,10031: circonstance, réessayer ;10014,10015,10016,10019,10030: votre ordre, à corriger ;10017,10026,10027,10028,10032: votre compte ou l’actif, rien à corriger dans l’ordre.
Ce que fait AlphaGPT
Un ordre refusé n’affiche pas un nombre mais la cause, écrite dans votre langue. Et quand le refus vient d’un actif désactivé sur votre compte, la cause est précisée, en distinguant l’actif du compte, puis les variantes du même instrument réellement négociables chez vous sont proposées en un clic, à condition qu’il s’agisse bien du même instrument.
Le reste dépend de votre broker et de votre compte, et aucun outil ne peut le contourner : ce qu’il peut faire, c’est vous dire lequel des deux vous bloque.
Le trading comporte un risque de perte en capital.