BEQI : boîte à outils open source d’audit de l’exécution des courtiers Forex mai 4, 2026 – Posted in: Arbitrage Software



BJF TRADING GROUP · RECHERCHE OUVERTE

BEQI : une boîte à outils open source pour auditer la qualité d’exécution de n’importe quel courtier Forex

Les courtiers Forex de détail ne publient pas de données sur la qualité d’exécution. Il n’existe aucune référence publique pour la latence d’appariement, l’asymétrie du slippage, l’élargissement du spread ou le temps de rétention en last-look. Nous changeons cela. BEQI — le Broker Execution Quality Index — est une méthodologie ouverte, une boîte à outils Python ouverte et une feuille de calcul publique à laquelle chacun peut contribuer. Mesurez votre propre courtier en 30 minutes ; les données s’accumulent pour former une référence.

5 dimensions mesurées
3 formats d’entrée pris en charge
Licence MIT
~30 min jusqu’au premier audit



Pourquoi un audit public des courtiers n’existait pas jusqu’ici

L’exécution Forex de détail est la couche la plus opaque de la chaîne de trading. Les spreads sont affichés. Les commissions sont publiées. Tout ce qui se passe entre l’envoi de l’ordre et la confirmation de l’exécution — latence d’appariement, symétrie du slippage, rétention en last-look, fréquence des requotes, élargissement du spread aux moments du signal — est invisible pour le trader et n’est pas publié par le courtier. Les backtests de stratégies supposent des exécutions à latence nulle (un problème que nous avons documenté en détail dans Pourquoi les backtests d’arbitrage de latence ne survivent pas en production). Les avis sur les courtiers notent l’ergonomie et les retraits. Personne ne mesure les variables qui décident réellement si une stratégie survit en production.

BEQI résout un problème précis : il n’existe ni méthodologie publique, ni boîte à outils partagée, ni jeu de données de référence pour la qualité d’exécution Forex de détail. Chez BJF Trading Group, nous mesurons cela en interne depuis des années pour intégrer la prise en charge des particularités des courtiers dans SharpTrader Pro et SharpTrader Optimizer. Nous publions désormais la méthodologie et le code en open source.

L’objectif n’est pas de publier un classement nominatif des courtiers (ce serait un terrain miné sur le plan juridique et cela compromettrait l’intégrité des données). L’objectif est de donner à chaque trader, quant et chercheur en technologie de courtage la même méthode standardisée de mesure, les mêmes scripts Python à exécuter et un endroit public où déposer des résultats anonymisés. Au fil des mois, la feuille de calcul devient une référence. Chacun peut reproduire la méthodologie, la contester ou l’étendre.

La thèse BEQI en une phrase

Si 10 000 traders mesurent la qualité d’exécution de leur courtier avec la même méthodologie ouverte, on obtient une référence publique qu’aucun courtier ne peut nier, qu’aucun site d’avis ne peut falsifier, et que tout développeur de stratégies peut utiliser pour allouer son capital en toute connaissance de cause.



Les cinq dimensions BEQI

La qualité d’exécution ne se résume pas à un seul chiffre. BEQI la décompose en cinq dimensions orthogonales, chacune mesurable indépendamment à partir d’un relevé de trading (et, pour deux d’entre elles, à partir d’un flux de ticks associé au relevé) :

Dimension BEQI Ce qu’elle mesure Unité Source Meilleur si…
1. Latence d’appariement Temps médian entre l’envoi de l’ordre et la confirmation de l’exécution millisecondes Horodatages du relevé + journal des heures d’envoi Plus faible
2. Asymétrie du slippage Rapport entre les exécutions à slippage négatif et les exécutions à slippage positif ratio (1,0 = symétrique, >1,0 = en défaveur du trader) Relevé : prix demandé vs prix exécuté Plus proche de 1,0
3. Facteur d’élargissement du spread Expansion du spread aux moments du signal par rapport à la référence multiplicateur (1,0 = aucun élargissement, 3,0 = élargissement x3) Flux de ticks autour des horodatages des ordres Plus proche de 1,0
4. Temps de rétention en last-look Délai médian entre l’horodatage d’appariement et la confirmation millisecondes Journal FIX ou relevé étendu Plus faible / nul
5. Taux de requotes Requotes pour 100 ordres nombre pour 100 Événements de requote dans le relevé Plus faible / nul

Chaque dimension a une signification propre. Un courtier peut avoir une faible latence d’appariement mais une forte asymétrie du slippage, ou inversement — les combinaisons racontent des histoires différentes sur le comportement réel du courtier. La boîte à outils présente chaque dimension séparément, puis un score BEQI composite (pondéré) à la fin.



Comment réaliser l’audit de votre propre courtier (30 minutes)

Il vous faut trois choses : (a) un relevé de trading comportant au moins 200 exécutions sur au moins une semaine de trading, (b) Python 3.10+ sur n’importe quelle machine, (c) 30 minutes. La boîte à outils s’occupe du reste.

Étape 1 — Exportez votre relevé

La boîte à outils accepte trois formats d’entrée :

  • Relevé HTML de terminal courant (enregistré via la fonction « enregistrer comme rapport » de votre plateforme de trading de détail) — la plupart des traders particuliers utiliseront celui-ci
  • Journal FIX (dump de messages FIX 4.4) — pour les traders passant par un bridge FIX ou une connexion institutionnelle
  • CSV avec les colonnes order_id, send_time, fill_time, requested_price, filled_price, side, volume — pour tous les autres cas, y compris les journaux personnalisés

Si votre plateforme n’expose pas l’heure d’envoi (le moment où votre stratégie a décidé d’envoyer l’ordre), vous pouvez tout de même mesurer les dimensions 2 et 5 (asymétrie du slippage et taux de requotes) à partir d’un relevé basique. Les dimensions 1, 3 et 4 nécessitent un journal plus détaillé.

Étape 2 — Installez et lancez

$ git clone https://github.com/bjftradinggroup-inc/forex-broker-audit-toolkit
$ cd forex-broker-audit-toolkit
$ pip install -r requirements.txt
$ python beqi.py –input my_statement.html –tick-data eurusd_ticks.csv –output report.json

La boîte à outils détecte automatiquement le format d’entrée. beqi.py transmet les données aux analyseurs de chaque dimension, affiche un résumé et écrit un rapport JSON que vous pouvez soumettre à la feuille de calcul publique.

Étape 3 — Examinez le rapport

Le rapport comprend les scores des cinq dimensions, le BEQI composite, des diagnostics sur la taille de l’échantillon (N plus faible = confiance plus faible) et une classification par niveau (de 1 à 4, voir ci-dessous). Lancez-le sur davantage de données pour resserrer les intervalles de confiance.

Anonymat par défaut

La boîte à outils ne voit jamais votre numéro de compte, le solde du compte, vos P&L ni la taille de vos positions. Elle n’utilise que les horodatages, les prix, les écarts entre prix demandé et prix exécuté, et les types d’événements. Le JSON produit contient les scores BEQI, la taille de l’échantillon, les paires de devises couvertes et la période — rien d’identifiant. Vous pouvez le soumettre anonymement à la feuille de calcul publique.



Interpréter vos résultats : les quatre niveaux BEQI

Sur la base de mesures internes portant sur les courtiers pris en charge par SharpTrader Pro, voici les niveaux empiriques. Ce sont des références de départ — la feuille de calcul publique les affinera au fil du temps.

Niveau 1 · ECN institutionnel

BEQI 85–100

  • Latence d’appariement : 5–15 ms
  • Asymétrie du slippage : 1,0–1,05
  • Élargissement du spread : 1,0–1,3x
  • Last-look : 0–5 ms
  • Taux de requotes : <0,5 / 100

Niveau 2 · Détail rapide / bridge rapide

BEQI 65–85

  • Latence d’appariement : 30–80 ms
  • Asymétrie du slippage : 1,05–1,20
  • Élargissement du spread : 1,3–2,0x
  • Last-look : 50–150 ms
  • Taux de requotes : 0,5–2 / 100

Niveau 3 · Détail standard

BEQI 40–65

  • Latence d’appariement : 80–200 ms
  • Asymétrie du slippage : 1,20–1,50
  • Élargissement du spread : 2,0–3,5x
  • Last-look : 200–500 ms
  • Taux de requotes : 2–5 / 100

Niveau 4 · Problématique

BEQI 0–40

  • Latence d’appariement : 200+ ms
  • Asymétrie du slippage : 1,50+
  • Élargissement du spread : 3,5x+
  • Last-look : 500+ ms
  • Taux de requotes : 5+ / 100

La classification par niveau est importante, car une même stratégie de trading produira des résultats réels très différents d’un niveau à l’autre. Une stratégie d’arbitrage de latence rentable sur le niveau 1 s’effondre sur le niveau 3. Une stratégie de suivi de tendance qui conserve ses positions pendant des heures est à peu près indifférente entre le niveau 1 et le niveau 3, mais souffre visiblement sur le niveau 4. Connaître le niveau de votre courtier avant d’engager du capital, c’est tout l’enjeu.



La feuille de calcul BEQI publique

La feuille de calcul est l’actif à long terme. Chacun peut y ajouter une ligne par audit. Chaque ligne contient les scores des cinq dimensions, le score composite, la taille de l’échantillon, les paires de devises couvertes, la période et (de manière facultative et volontaire) le nom du courtier. Nous nous attendons à — et accueillons volontiers — des soumissions anonymes où le courtier n’est pas renseigné ; avec le temps, même celles-ci produisent des distributions agrégées utiles de la qualité d’exécution dans l’ensemble du secteur du Forex de détail.

Base de données publique des audits BEQI
Ouvrir dans un nouvel onglet →

Pour soumettre : lancez la boîte à outils, copiez le JSON produit et collez-le dans le formulaire de soumission (lien dans la feuille). Les nouvelles lignes sont vérifiées quant à leur plausibilité et acceptées sous 24 heures. Nous ne modifions pas les scores soumis ; nous pouvons signaler comme peu fiables les lignes dont l’échantillon compte <100 exécutions.



Détails de la méthodologie (pour les relecteurs et ceux qui souhaitent la reproduire)

La spécification mathématique complète se trouve dans METHODOLOGY.md dans le dépôt, mais voici les choix déterminants :

1. Latence d’appariement

Médiane (et non moyenne) de fill_time − send_time. Nous utilisons la médiane car les distributions de latence d’appariement sont asymétriques à droite en raison de valeurs aberrantes occasionnelles de 1 à 5 secondes (réacheminement réseau, pauses de GC chez le courtier) qui ne représentent pas une exécution typique. Nous publions séparément la médiane, le p90 et le p99 afin que le lecteur puisse voir la queue de distribution.

2. Asymétrie du slippage

Pour chaque exécution, le slippage est signé : positif signifie que le trader a obtenu un meilleur prix que celui demandé, négatif signifie un prix moins bon. Asymétrie = (nombre d’événements de slippage négatif) / (nombre d’événements de slippage positif). Un courtier symétrique et neutre obtient ~1,0. Au-delà de 1,2, l’appariement du courtier est biaisé en défaveur du trader — que ce soit par des règles de routage, par un last-look sélectif ou par un moteur de slippage asymétrique.

3. Facteur d’élargissement du spread

Pour chaque horodatage d’ordre, nous mesurons le spread dans une fenêtre de 50 ms centrée sur l’ordre, par rapport au spread dans une fenêtre de référence de 5 minutes centrée sur la même heure de la journée au cours de la semaine précédente. Le rapport donne le facteur d’élargissement. Cela nécessite un flux de ticks couvrant la période d’audit ; la boîte à outils accepte les CSV BJF Feed et le format standard d’historique de ticks des plateformes courantes.

4. Temps de rétention en last-look

Mesurable uniquement à partir d’un journal FIX ou d’un relevé étendu qui expose à la fois l’état apparié-mais-en-attente et l’état confirmé. Les relevés HTML de détail standard ne l’exposent généralement pas ; dans ce cas, la boîte à outils indique null pour cette dimension et le BEQI composite est calculé à partir des quatre autres. Le last-look est l’une des nombreuses techniques d’interférence d’exécution côté courtier — consultez notre analyse approfondie des sept plugins anti-arbitrage des courtiers pour la catégorie plus large.

5. Taux de requotes

Calculé à partir des événements de requote explicites du relevé. Si le relevé ne signale pas les requotes (certains terminaux ne le font pas), la boîte à outils les déduit en détectant des triplets envoi/annulation/renvoi dans une fenêtre de 200 ms.

BEQI composite

Chaque dimension est convertie en un sous-score de 0 à 100 à l’aide des définitions de niveaux ci-dessus. Le score composite est une moyenne géométrique pondérée : BEQI = (L^0.30 × A^0.25 × W^0.20 × H^0.15 × R^0.10) où L, A, W, H, R sont les cinq sous-scores. Nous utilisons la moyenne géométrique plutôt que la moyenne arithmétique afin qu’un score catastrophique sur une seule dimension (par ex. last-look = 1500ms) ne puisse pas être masqué par de bons scores sur les autres. Les pondérations sont discutables et explicitement publiées afin que les relecteurs puissent recalculer le score avec d’autres pondérations à partir des sous-scores bruts.



Limites et avertissements

  • Dépendance à la taille de l’échantillon. Un audit sur 50 exécutions est une impression ; un audit sur 500 exécutions est une mesure ; un audit sur 5 000 exécutions est une référence. La boîte à outils indique les intervalles de confiance liés à la taille de l’échantillon ; les lecteurs doivent pondérer en conséquence les soumissions à faible N.
  • Variation selon l’heure de la journée. Un même courtier peut afficher des résultats de niveau 2 à l’ouverture de Londres et de niveau 3 pendant le rollover asiatique. Les audits doivent préciser la plage horaire.
  • Différences au niveau du compte. Les courtiers peuvent appliquer une logique de routage différente selon le compte, en fonction du profil, du solde et du style de trading. L’audit d’un trader peut ne pas être généralisable à celui d’un autre chez le même courtier nominal. Pour des conseils sur le choix d’un courtier indépendamment de l’audit d’exécution, consultez notre guide des courtiers pour l’arbitrage Forex.
  • L’asymétrie ne prouve pas la malveillance. Une asymétrie de 1,4 est statistiquement marquée, mais la cause peut être un routage via des pools de LP asymétriques plutôt qu’une manipulation active. La boîte à outils mesure un comportement, pas une intention.
  • La méthodologie se trompera sur quelque chose. C’est pourquoi elle est open source. Ouvrez des issues, envoyez des PR, proposez d’autres pondérations, reproduisez l’audit sur un courtier que nous n’avons pas couvert. La méthodologie v2 intégrera les critiques les plus solides.



Feuille de route

Version Contenu Calendrier
v1.0 Méthodologie + boîte à outils Python + feuille de calcul publique (vous êtes ici) Q2 2026
v1.1 Améliorations du parseur de journaux FIX ; détection du last-look à partir de schémas heuristiques en l’absence d’horodatages explicites Q3 2026
v1.2 Dimension de détection de schémas par IA (sixième dimension) : grille de détection des comportements de limitation adaptative Q3 2026
v2.0 Tableau de bord public en direct sur beqi.bjftradinggroup.com ; distributions agrégées des soumissions ; mise à jour de la méthodologie sur la base des retours de la communauté Q4 2026



Questions fréquentes

BEQI est-il un classement nominatif des courtiers ?

Non. BEQI est une méthodologie ouverte et un jeu de données public d’audits anonymisés. Nous ne publions délibérément pas de classements de courtiers à partir de ce jeu de données car (a) cela compromettrait l’intégrité des données — les courtiers optimiseraient pour le signal de l’audit plutôt que pour la qualité d’exécution, et (b) c’est un terrain miné sur le plan juridique. Quiconque souhaite publier un classement est libre de le faire à partir des données ouvertes ; nous publions l’outil, la méthodologie et les mesures.

Pourquoi ne pas simplement utiliser les avis tiers sur les courtiers ?

La plupart des sites d’avis sur les courtiers notent l’ergonomie, la rapidité des retraits, le support client et les spreads affichés — des variables superficielles. Aucun ne mesure la latence d’appariement, l’asymétrie du slippage ou la rétention en last-look. BEQI comble précisément ce manque : c’est une mesure de la qualité d’exécution, pas un avis général sur un courtier.

Que faire si le relevé de mon courtier n’expose pas l’heure d’envoi ou le last-look ?

La boîte à outils gère cette situation proprement. Les dimensions qui ne peuvent pas être mesurées à partir de vos données sont indiquées comme null plutôt que zéro, et le BEQI composite est calculé à partir des dimensions effectivement mesurables, avec des pondérations renormalisées. Le JSON produit indique explicitement quelles dimensions ont été ignorées et pourquoi, de sorte que le résultat est transparent sur sa couverture.

Puis-je auditer un courtier en tradant sur un compte démo ?

Les audits sur compte démo sont utiles mais pas équivalents. De nombreux courtiers font passer les comptes démo par le moteur d’appariement institutionnel (pas de last-look, pas d’élargissement du spread, latence rapide) tandis que les comptes réels passent par le moteur de détail. Auditez toujours un compte réel avec un volume réel (faible) pour mesurer le comportement réel. La boîte à outils accepte les données démo et signale le résultat comme « demo » dans le JSON produit.

Quel volume dois-je trader pour obtenir un audit significatif ?

200 exécutions constituent le minimum pratique pour un signal exploitable. Entre 500 et 1 000 exécutions, les intervalles de confiance se resserrent suffisamment pour établir la classification par niveau avec assurance. Au-delà de 5 000 exécutions, l’audit devient une mesure de niveau recherche. Vous pouvez atteindre 200 exécutions en une semaine en passant 30 à 40 petits ordres au marché par jour (inutile d’y engager un capital important).

BEQI fonctionne-t-il pour les exchanges crypto ?

Dans sa forme actuelle, la méthodologie est spécifique au Forex — l’élargissement du spread et le last-look sont des concepts du Forex, pas des exchanges. Un indice équivalent pour la crypto nécessiterait d’autres dimensions (par ex. profondeur du carnet d’ordres au prix d’exécution, slippage lié à l’impact de marché, latence des retraits). Nous publierons peut-être plus tard un indice crypto CEQI. En attendant, consultez notre méthodologie d’arbitrage crypto — des métriques différentes, la même philosophie de données ouvertes. La boîte à outils Forex ne produira pas de résultats significatifs sur des données crypto.

Quel est le lien avec SharpTrader Optimizer ?

Étroit. SharpTrader Optimizer backteste des stratégies avec un temps d’exécution configurable et un slippage résolu au tick — autrement dit, les variables que BEQI mesure chez votre courtier réel. Si votre courtier obtient le niveau 3 (latence d’appariement de 80–200 ms), vous devriez configurer l’Optimizer avec un temps d’exécution de 100–200 ms avant de conclure que la stratégie est viable. BEQI mesure le courtier ; l’Optimizer simule la stratégie dans les conditions réelles de ce courtier. Ensemble, ils vous indiquent s’il faut trader. La même logique s’applique plus largement si vous tradez des stratégies d’arbitrage Forex — mesurez d’abord le courtier, puis dimensionnez la stratégie selon son profil d’exécution réel.

BJF Trading Group est-il impartial ici ? Vous vendez des logiciels de trading.

Question légitime. Nous avons un intérêt commercial à ce que l’arbitrage et le backtesting tenant compte de l’exécution soient pris au sérieux, ce que BEQI sert évidemment. Nous n’avons aucun intérêt commercial à ce qu’un courtier en particulier obtienne un bon ou un mauvais score — SharpTrader Pro prend en charge des courtiers des quatre niveaux, et nos clients choisissent eux-mêmes leur plateforme. Nous publions la méthodologie en open source précisément pour que vous n’ayez pas à nous croire sur parole : le code est auditable, les mesures sont reproductibles, et tout chercheur peut reproduire ou contredire nos chiffres internes.

Comment puis-je contribuer ?

De cinq façons : (1) lancez la boîte à outils sur votre propre courtier et soumettez le JSON à la feuille de calcul publique ; (2) ouvrez des issues sur le dépôt GitHub lorsque le parseur échoue sur votre format de relevé ; (3) soumettez des pull requests pour de nouveaux parseurs de formats de relevés ; (4) proposez des améliorations méthodologiques via les fils de discussion ; (5) rédigez votre propre analyse à partir du jeu de données ouvert et ajoutez un lien vers nous — nous mettrons en avant les meilleures analyses externes dans notre newsletter.

Les courtiers vont-ils exercer des représailles contre les traders qui publient des audits ?

Les soumissions à la feuille de calcul publique sont anonymes par défaut — le courtier est facultatif, l’identifiant de compte n’est jamais collecté et le JSON produit ne contient aucune information identifiante. Nous n’avons jamais entendu parler de courtiers exerçant des représailles contre la mesure de la qualité d’exécution (ce serait difficile sans admettre que l’audit était exact), mais l’option d’anonymat existe précisément pour éliminer ce risque.



Auditez votre courtier dès aujourd’hui

30 minutes. Code open source. Méthodologie publique. Soumission anonyme. La référence n’existe que si les traders y contribuent — commencez par la vôtre.

Obtenir la boîte à outils sur GitHub
Consulter la feuille de calcul