Symbol Spec Auditor
- Utilitaires
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - Version: 1.0
Symbol Spec Auditor rassemble dans un seul panneau sur le graphique la partie de la spécification du contrat d'un symbole qui détermine la taille de position et le coût de trading : valeur du point, coût du spread, marge, swap, règles d'exécution et sessions de trading. Les valeurs brutes de la spécification sont converties en montant pour 1,00 lot dans la devise du compte, et les réglages du courtier qui faussent silencieusement le code de calcul de la taille de lot sont signalés comme avertissements. Un seul bouton exporte le même audit pour chaque symbole de l'Observation du Marché vers un fichier CSV.
C'est un outil de vérification. Il ne passe aucun ordre, n'utilise ni DLL ni WebRequest, et n'écrit aucun fichier à part l'export CSV que vous demandez.
Raison d'être : un code qui fonctionne chez un courtier se comporte souvent mal chez le suivant à cause d'un détail de spécification que personne n'a vérifié. De l'or avec un contrat de 1 oz au lieu de 100 oz, un compte cent où le solde et la valeur du tick sont en cents, un niveau des stops qui rejette un stop loss proche, une taille du tick différente du point, des ordres en attente supprimés en fin de journée. Le terminal affiche tout cela, réparti sur plusieurs onglets et en unités brutes, de sorte qu'une différence entre deux courtiers ou deux types de compte passe facilement inaperçue. Une formule de calcul de la taille de position qui suppose la taille de contrat habituelle se trompe alors d'un facteur 10 ou 100, sans la moindre erreur dans le journal.
Ce que le panneau affiche pour le symbole du graphique, actualisé une fois par seconde et reconstruit lorsque vous changez de symbole ou d'unité de temps :
- Identité : symbole, description, chemin, mode de calcul, devise de base, de profit et de marge, devise du compte, effet de levier du compte et mode de marge.
- Prix et contrat : décimales, point, taille du tick, valeur du tick pour le profit et pour la perte, taille du contrat et date d'expiration des contrats qui expirent.
- Montants pour 1,00 lot : la valeur d'un point calculée à partir de la valeur du tick, contre-vérifiée par la taille du contrat multipliée par le point et par le taux de conversion ; la valeur d'une variation de prix de 1,00 ; le spread en points et en valeur monétaire ; l'ATR(14) de l'unité de temps du graphique et le spread en pourcentage de celui-ci.
- Volume : minimum, pas, maximum et limite.
- Marge pour 1,00 lot : marge à l'achat et à la vente, taux de marge initiale, valeur notionnelle et effet de levier effectif à côté de l'effet de levier du compte.
- Swap pour 1,00 lot : mode de swap, valeurs long et short, montant par nuit et jour du triple swap.
- Exécution : mode de trading, mode d'exécution, politiques de remplissage, types d'ordres autorisés, modes d'expiration, mode GTC, ainsi que le niveau des stops et le niveau de gel en points et en prix.
- Sessions : les sessions de trading du jour en heure du serveur.
Une valeur qui ne peut pas être déterminée est affichée comme n/a au lieu d'un nombre plausible. Les lignes de la valeur du tick, du contrôle de la valeur du point, du spread, de l'ATR et de la marge indiquent aussi la raison, par exemple une paire de conversion manquante ou un taux de marge de 0.
Le bloc Warnings liste les réglages qui méritent un second regard, par ordre de gravité, chacun avec sa conséquence pour le code de trading : taille de contrat inhabituelle pour la classe d'actifs, valeur du tick ou taille du tick égale à 0, valeur du point issue de la valeur du tick en désaccord avec celle issue de la taille du contrat, devise de compte cent, mode de trading restreint, contrat à échéance, absence de cotations actuelles, taille du tick différente du point, niveau des stops ou niveau de gel supérieur à 0, mode GTC journalier, volume minimum ou pas du volume supérieur à 0,01 sur les symboles forex et CFD, spread supérieur à un pourcentage choisi de l'ATR(14), et jour du triple swap inhabituel pour la classe d'actifs. Lorsque rien ne s'applique, le panneau indique qu'aucun piège n'a été détecté. Un avertissement n'est pas nécessairement une erreur du courtier ; il signale une valeur que votre code doit lire dans la spécification au lieu de la supposer.
Le bouton Export CSV écrit MQL5\Files\SymbolSpecAudit_<server>_<date_time>.csv, une ligne par symbole de l'Observation du Marché, avec 55 colonnes, dont une colonne Warnings et une colonne Notes qui explique l'absence d'une valeur du tick, d'un contrôle de la valeur du point, d'une marge ou d'un ATR. Deux exports, réalisés chez deux courtiers ou sur deux types de compte, peuvent être comparés ligne par ligne avant de faire passer un Expert Advisor de l'un à l'autre.
Gestion du panneau : n'importe quel coin du graphique, une ou deux colonnes (automatique par défaut), un mode compact n'affichant que les avertissements, et un bouton de repli dont l'état est conservé lors des changements de symbole et d'unité de temps. Les couleurs suivent le graphique par défaut, panneau clair sur fond clair et panneau sombre sur fond sombre, et chaque couleur peut aussi être définie manuellement. La disposition est calculée à partir des métriques réelles de la police, de sorte qu'elle reste alignée sur les écrans high-DPI et avec d'autres polices.
Paramètres d'entrée : coin du panneau, décalage X et Y, disposition, nom et taille de la police, mode avertissements seuls, cinq couleurs, seuil d'avertissement du spread en pourcentage de l'ATR(14), et une option pour exporter le CSV au démarrage. Chaque paramètre d'entrée est documenté dans le terminal par son propre commentaire.
Remarques et limites. MetaTrader 5 ne permet pas à un indicateur d'appeler OrderCalcMargin ou OrderCalcProfit ; la marge et la contre-vérification de la valeur du point utilisent donc les formules documentées pour chaque mode de calcul. Sur les symboles forex et CFD du courtier utilisé pour les tests, les résultats correspondaient à OrderCalcMargin, appelé depuis un Expert Advisor aux mêmes prix, à l'arrondi au cent près. La marge est affichée comme n/a pour les symboles d'obligations et de collatéral, pour les futures sans marge initiale, et pour les CFD sur indices dont les devises diffèrent de la devise du compte. La conversion des devises utilise les symboles de l'Observation du Marché disposant de cotations en direct, directement ou via USD ; sans un tel symbole, les valeurs concernées affichent n/a et indiquent la paire manquante. Les comptes cent sont reconnus par le code de devise du compte, comme USC ou EUC. L'ATR est l'ATR(14) de la dernière barre clôturée de l'unité de temps du graphique. Le panneau utilise un timer d'une seconde plutôt que chaque tick, et une seule instance par graphique est prévue.
