Dans cet article
Après cet article, vous saurez…
- Préserver deux exécutions et leurs inconnues avant de modifier le testeur.
- Expliquer un écart de frais par le nombre réel d’exécutions.
- Identifier la première divergence plutôt que choisir la meilleure courbe.
Les notions sans quitter l’article
Backtest : test historique d’une règle Commission de transaction Expert Advisor (EA), robot MetaTraderDeux exécutions annoncées comme « le même backtest » donnent des résultats différents. Ne choisissez pas la courbe la plus rentable et ne supprimez pas immédiatement le cache. Commencez par préserver les preuves : même nom de fichier ne signifie ni même compilation, ni mêmes dépendances, données ou coûts. Le comparateur ci-dessous repère des différences de déclarations ; il ne certifie pas l'environnement.
Préserver les deux exécutions avant toute modification
Archivez rapports, liste des exécutions, journaux, paramètres et fichiers disponibles pour A et B, y compris la version perdante. Notez plateforme, build, révision du code et dépendances. Une image d'equity ne révèle pas la première exécution divergente, les remplissages partiels ou le début réellement utilisé. Distinguez un test unique, une recherche d'optimisation et une évaluation ultérieure : leurs choix ne sont pas interchangeables.
Un identifiant de données comme « data-v1 » reste une déclaration. Pour une empreinte de fichier, calculez-la séparément sur l'archive exacte. Le comparateur ne lit aucun historique de terminal et ne calcule pas l'empreinte du code. Gardez les mots de passe et données personnelles hors de ce dossier de comparaison.
Préparer deux manifestes comparables
Le schéma accepte treize champs principaux : version, platform, build, codeRevision, inputs, dataSnapshot, symbolSpecification, executionModel, costs, requestedStart, actualStart, end et initialState. Ces clés techniques restent inchangées. version doit être le nombre 1 : c'est la version du format, pas celle de l'EA.
Les autres valeurs principales sont des chaînes ; inputs, costs et initialState peuvent aussi être des objets. Un champ absent, vide ou inconnu ne devient pas une preuve d'égalité. Les clés répétées ou principales non documentées sont refusées. Chaque enregistrement est limité à 64 KiB, huit niveaux et 2 000 valeurs. Les nombres imbriqués doivent rester dans la précision acceptée de quinze chiffres significatifs, sans grands entiers non sûrs ; inscrivez plutôt les nombres de spécification en chaînes à point décimal.
Écrivez une zone explicite dans les horodatages, UTC si la conversion est connue. Ajouter Z à une heure serveur ne la convertit pas. La comparaison est littérale : deux descriptions ou formats équivalents ne sont pas réconciliés automatiquement. Uniformisez la représentation à partir des preuves, sans effacer une différence réelle.
Ce que le comparateur peut établir
Le calcul s'effectue localement dans le navigateur, sans transmission ni conservation persistante par l'outil. Il compare les champs déclarés et marque différences, concordances et inconnues. Il ne lance pas MT5, ne contrôle pas le courtier, ne récupère pas un compte et ne prédit pas le rendement. Une dépendance omise des deux manifestes reste omise, même si toutes leurs lignes concordent.
Comparer deux enregistrements de backtest
Exemple fictif : seul le coût des exécutions change
Un contrat linéaire produit 10 USD de résultat de prix, pour une seule opération close en deux exécutions. Financement et autres frais sont nuls. A paie 1 USD par exécution, donc 10 − 2 × 1 = 8 USD nets ; B paie 2 USD, donc 10 − 2 × 2 = 6 USD. L'écart de 2 USD n'indique ni signal différent, ni manipulation, ni glissement. Il est entièrement expliqué par cette hypothèse de Commission de transaction.
Un résultat de prix, deux hypothèses de frais
De dix dollars bruts à huit ou six dollars nets
Faites défiler horizontalement ou agrandissez le schéma pour lire les détails.
L’écart de 2 USD est expliqué avant toute hypothèse sur les signaux ou les données.
- A : 1 USD par exécution
- 8 USD nets – 10 − 2 × 1.
- B : 2 USD par exécution
- 6 USD nets – 10 − 2 × 2.
- Différence
- 2 USD – Coûts seuls dans ce modèle.
Contre-exemple indépendant en euros : une opération fractionnée comporte trois exécutions et un résultat de prix de 12 EUR. À 0,50 EUR puis 1 EUR par exécution, les résultats nets deviennent 10,50 et 9 EUR ; l'écart est 1,50 EUR. Compter seulement deux côtés ferait manquer la troisième exécution. Aucun de ces tarifs n'est une offre de courtier.
Si les manifestes semblent identiques
Cherchez la première divergence d'exécution ou de signal : heure, symbole, sens, quantité, prix, justification, y compris une décision de ne pas entrer. Comparez ce cas avec les données archivées avant d'interpréter le rendement total. Examinez initialisation, fichiers et bibliothèques, état des positions, générateur aléatoire s'il existe et variables de l'agent. Les variables globales du terminal et celles du testeur ne sont pas un même état partagé.
Le début demandé peut différer du début effectif si l'historique préalable manque. Consultez rapport et journal plutôt que recopier les dates souhaitées. Ne remplacez pas la période ou l'unité de temps uniquement pour faire disparaître le message : cela peut changer la règle. Le cache est une hypothèse à documenter, pas une explication universelle. Recompiler ou nettoyer avant archivage détruit parfois la possibilité de comparer.
Conclure sans choisir le résultat qui arrange
- Figez A et B avec les inconnues explicites ; recherchez la première divergence vérifiable.
- Changez une seule condition à la fois, en conservant les hypothèses réfutées et les nouvelles versions.
- Une fois les calculs réconciliés, évaluez séparément stratégie, coûts et pertes possibles sur une période préservée.
Utilisez Backtest : contrôler les lacunes et conflits d’un CSV pour la couverture CSV et Backtesting MT4 et MT5 : données, indices et horloges pour les modes. Puis Valider une stratégie : backtest, preuves et reprise après incident organise les preuves du Backtest : test historique d’une règle ; un Expert Advisor (EA), robot MetaTrader reproductible n'est toujours pas une stratégie rentable certifiée.
Vérifiez vos acquis
Environ 2 minutes de pratique.
Voir la réponse et l’explication
A conserve 8 USD, B 6 USD ; la différence de 2 USD est entièrement due aux commissions du modèle.
Autres questions
Des manifestes identiques prouvent-ils des fichiers identiques ?
Non. Ils comparent des déclarations et peuvent omettre une dépendance. Archivez code, paramètres et données ; calculez les empreintes ailleurs sur les fichiers exacts. Conservez les inconnues plutôt que fabriquer un identifiant rassurant.
Faut-il effacer le cache ou recompiler immédiatement ?
Préservez d’abord les deux exécutions et leurs fichiers. Localisez la première divergence et modifiez une condition à la fois. Le cache peut être examiné, mais il ne constitue pas une cause universelle ni une preuve de manipulation.
Pourquoi le début effectif peut-il changer ?
Le testeur prépare un historique préalable et peut décaler le début si les données nécessaires manquent. Vérifiez journal, période réellement couverte et besoins de la règle ; ne recopiez pas simplement la date demandée dans actualStart.
Faut-il retenir le résultat le plus rentable ?
Pas avant réconciliation des conditions. Des frais plus faibles améliorent mécaniquement le net sans meilleur signal. Après diagnostic, étudiez coûts réalistes, drawdown et évaluation indépendante ; le comparateur ne valide pas l’historique.
Sources et vérification
- MetaQuotes — test de stratégie
Paramètres et contexte d’une exécution du testeur ; ne démontre pas la conformité d’une archive déclarée.
- MetaQuotes — historique avant test
Section préparation et ajustement du début effectif faute d’historique. Aucun historique réel n’est téléchargé par notre comparateur.
- MetaQuotes — particularités du testeur
Sections variables globales, agents, dépendances et échanges/cache. Les variables de l’agent sont distinctes du terminal ; pas d’accusation générale contre le cache.
Les calculs reposent sur des hypothèses explicites. Ils ne remplacent ni les données actuelles du marché ni les conditions de l’intermédiaire.
