Catégorie
Technique
Niveau
Intermédiaire
Utilisé pour
BacktestingÉvaluation d'EA

Données de ticks

Les données de ticks sont l'enregistrement de chaque changement de prix d'un symbole — horodaté, avec son propre bid et son propre ask — et c'est ce que MT5 rejoue dans son modèle « chaque tick basé sur les ticks réels » au lieu d'inventer un trajet entre les bougies.

aussi : historique des ticks, données de ticks réelles

Mis à jour · Révisé

En termes simples

Les données de barres conservent quatre prix par bougie : ouverture, plus haut, plus bas et clôture. Les données de ticks conservent tout ce qui se trouve entre eux — chaque changement de prix, dans l'ordre, portant le spread qui régnait à cet instant. L'écart entre les deux ne décide de quelque chose que lorsqu'une transaction s'ouvre et se ferme à l'intérieur d'une bougie, c'est-à-dire précisément là où vit l'essentiel du marketing des EA.

Pourquoi c'est important

Un backtest ne peut négocier que les prix qu'on lui fournit. Les données de barres en fournissent quatre par bougie au testeur et le laissent inventer le trajet entre eux : toute stratégie qui entre et sort à l'intérieur de la bougie répond donc d'un parcours que personne n'a enregistré. Les données de ticks remplacent l'invention par l'enregistrement. Nos propres exécutions ajoutent ensuite un deuxième constat inconfortable : l'endroit d'où viennent les ticks déplace le résultat bien plus que le passage des ticks inventés aux ticks enregistrés.

  • Elles fixent l'ordre des événements à l'intérieur de la bougie. Si le trajet réel a touché le stop avant l'objectif, un trajet inventé qui les touche dans l'autre sens inverse le signe de la transaction.
  • Elles portent le spread qui régnait réellement à chaque instant. Sur une exécution USD/JPY sur ticks réels publiée ici, le fichier de ticks contenait 227 valeurs de spread distinctes entre 10 et 350 points, et aucun chiffre fixe ne tient lieu d'une telle amplitude.
  • Elles exigent un vrai stock dans le terminal. Les onze exécutions sur ticks réels publiées ici ont toutes eu besoin d'un symbole personnalisé construit à partir d'une archive importée ; aucun symbole natif du courtier de ce catalogue n'a jamais atteint le modèle sur ticks réels.
  • Ce n'est pas le levier le plus puissant. Changer la source de données à modèle constant a fait passer l'une de nos exécutions d'un facteur de profit de 1,35 à 1,13 ; faire passer cette même source des ticks générés aux ticks réels ne l'a ensuite déplacé que de 0,02 de plus.

S'en servir pour valider une stratégie

Où on l'utilise

  • Testeur de stratégie → Réglages → Modélisation, où « chaque tick basé sur les ticks réels » (Every tick based on real ticks, modèle 4) rejoue le trajet enregistré tandis que le simple « chaque tick » (Every tick, modèle 0) en fabrique un à partir des bougies M1.
  • Affichage → Symboles (View → Symbols, Ctrl+U) → onglet Ticks, où l'on demande l'historique de ticks d'un symbole sur une plage de dates avant que le testeur puisse y toucher.
  • La création d'un symbole personnalisé à partir d'une archive de ticks importée, la voie par laquelle chaque exécution sur ticks réels de ce catalogue a obtenu ses données.
  • La relance d'une stratégie finalisée sur une deuxième source de ticks, pour savoir si le résultat appartient aux règles ou aux données.

À quoi ressemble un résultat fiable

  • La fiche nomme la source des ticks et le modèle du testeur d'un même souffle, si bien qu'un lecteur peut reproduire l'exécution au lieu de la croire.
  • L'historique de ticks couvre réellement la fenêtre. Chaque exécution publiée ici démarre le 2019-01-01 sauf une, sur des sources qui remontent jusque-là.
  • Le bid et l'ask survivent tous deux à l'import, si bien que le testeur exécute au spread enregistré plutôt qu'à une constante mise à sa place.
  • Une deuxième source reproduit le résultat — et quand ce n'est pas le cas, la fiche dit laquelle a échoué.

Signaux d'alerte

  • « Données de ticks réelles » sans fournisseur nommé. Le fournisseur se révèle être la moitié de l'affirmation qui décide du résultat.
  • Un pourcentage de qualité d'historique brandi comme preuve de ticks réels. Une exécution en modèle 0 de ce catalogue a affiché 100 %.
  • Une fenêtre de test qui commence avant les ticks de la source, ce qui rend discrètement les premières années à l'interpolation.
  • Un spread fixe configuré par-dessus des données de ticks. En modèle 4, le testeur ignore de toute façon ce champ : le réglage trompe donc l'auteur plus que le lecteur.

Backtest et trading réel

  • Les données de ticks fixent le trajet des prix et ne touchent pas à l'exécution. Latence, requotes, exécutions partielles et politique propre au courtier restent tous hors du testeur.
  • Le spread enregistré appartient à celui qui l'a enregistré. Un autre courtier cotant le même instant peut en différer sensiblement, surtout en dehors des sessions principales.
  • Le slippage n'entre jamais dans le fichier. Le testeur exécute au prix enregistré ; un ordre réel arrive une fraction de seconde plus tard et prend ce qui s'y trouve.
  • Attendez-vous à ce que l'écart restant concerne l'exécution plutôt que les prix — un écart plus étroit et bien plus prévisible que celui que laissent les données de barres.

Méthode de validation recommandée

  1. 1Demandez d'abord l'historique de ticks du symbole pour toute la fenêtre, puis lisez l'onglet Ticks pour confirmer que la plage renvoyée la couvre réellement.
  2. 2Notez le numéro de modèle à côté du nom de la source. « Chaque tick » et « chaque tick basé sur les ticks réels » sont séparés d'une ligne dans la même liste déroulante et décrivent deux expériences différentes.
  3. 3En modèle 4, laissez tranquille le champ de spread du testeur et ajoutez plutôt la commission à la main. Lancer Spread=10 contre Spread=100 a produit ici des spreads identiques tick par tick.
  4. 4Relancez sur une deuxième source avant de croire le chiffre. Le désaccord entre sources est le résultat, pas une gêne.

Exemple

Un EA, une fenêtre, trois exécutions. TidewellSlack traite le GBP/JPY en M15 depuis le 2019-01-01, et nous l'avons lancé de trois façons pour séparer les deux choses que les fiches confondent habituellement : d'où viennent les ticks, et si le testeur les rejoue ou les invente.

Historique M1 du courtier, modèle 0 (l'exécution publiée)
PF 1,35, drawdown maximal 9,92 %
303 transactions, qualité d'historique 99 %, et elle passe notre seuil.
Ticks importés, toujours en modèle 0
PF 1,13, drawdown maximal 18,18 %
351 transactions. Seule la source a changé.
Ticks importés, modèle 4 sur ticks réels
PF 1,11, drawdown maximal 18,20 %
345 transactions. Seul le modèle a changé.

Deux des trois exécutions échouent à notre propre seuil, et la survivante est celle sur ticks générés. C'est pourquoi la fiche publie son symbole et son numéro de modèle plutôt que l'adjectif « réels ».

Calcul Changement de source : −0,22 de facteur de profit et +8,26 points de drawdown. Le passage aux ticks réels par-dessus : −0,02 et +0,02.

Résultat La source de données a déplacé le résultat onze fois plus loin que le modèle de ticks

Comment l'interpréter

Lisez les données de ticks d'abord au regard de la durée de détention, ensuite au regard de la source. Plus votre objectif est fin par rapport à la bougie, plus le trajet a décidé du résultat — mais c'est la source qui décide de la part de ce résultat qui voyagera ailleurs.

Plage Ce que cela signifie
EA intraday ou de scalping, ticks réels, fournisseur nommé Le cas défendable. Le trajet est enregistré et un inconnu peut reproduire l'exécution à partir de la seule fiche.
Système swing tenu plusieurs jours, sur ticks générés depuis les bougies Généralement suffisant. Le trajet interne d'une bougie décide rarement d'une transaction tenue une semaine.
Ticks réels, mais depuis une source unique Une demi-réponse. Notre exécution GBP/JPY a passé le seuil sur une source et échoué sur une autre, à règles et fenêtre identiques.
« Ticks réels » sans fournisseur ni numéro de modèle Invérifiable, et les deux champs manquants sont précisément les deux qui décident du chiffre.
  • Confirmez la plage renvoyée par l'onglet Ticks avant de choisir un modèle. Une fenêtre qui s'ouvre avant les ticks de la source revient à l'interpolation pour les premières années et n'annonce quand même qu'un seul chiffre pour toute l'exécution.
  • Conservez le bid et l'ask. En modèle 4, le testeur prend le spread dans le fichier de ticks et ignore le nombre saisi — 227 valeurs distinctes entre 10 et 350 points sur une exécution USD/JPY, dont aucune n'est celle configurée.
  • Comptez à quel point le spread est rarement mesuré. Exactement une des 23 exécutions publiées ici porte une moyenne mesurée, 19,14 points relevés dans le testeur, et cette exécution utilise le modèle 0.
  • Traitez une deuxième source comme l'expérience plutôt que comme la corvée. L'accord promeut un backtest sur ticks au rang de preuve ; le désaccord vous apprend davantage.

Onze des 23 exécutions publiées ici utilisent le modèle 4 et douze le modèle 0, et chaque exécution en modèle 4 porte un suffixe _DUKA dans le nom de son symbole, parce que des ticks importés ne peuvent vivre que sur un symbole personnalisé. Dix de ces onze manifestes nomment encore l'historique M1 du courtier dans leur champ de source de prix, reliquat de la lignée dont ils ont migré. Lisez le numéro de modèle et le symbole ; la prose qui les entoure vieillit plus vite.

Erreurs fréquentes

Acheter le modèle de ticks et ignorer la source des ticks

Le modèle est une ligne d'une liste déroulante, la source est l'enregistrement d'un tout autre marché. Sur l'exécution GBP/JPY ci-dessus, changer la source a coûté 0,22 de facteur de profit et doublé le drawdown, tandis que le passage aux ticks réels sur la même source a coûté 0,02. Une fiche qui nomme son modèle mais pas son fournisseur vous a dit la plus petite moitié.

Lire un chiffre de qualité d'historique comme une preuve de ticks réels

Le pourcentage mesure à quel point l'historique a couvert la fenêtre, pas quel modèle l'a produit. L'exécution fantôme en modèle 0 derrière KestrelHover a affiché 100 % — le même chiffre que sa jumelle sur ticks réels. Un nombre que les deux modèles peuvent atteindre ne peut pas les distinguer.

Configurer un spread fixe par-dessus des données de ticks

En modèle 4, le testeur exécute à partir de l'ask moins le bid du fichier de ticks lui-même et ignore totalement le champ ; lancer un test USD/JPY à Spread=10 puis à Spread=100 a renvoyé des spreads identiques tick par tick. Le réglage ne change rien à l'exécution et change discrètement ce que l'auteur croit que l'exécution a mesuré.

Tester une fenêtre que les ticks ne couvrent pas

Un test depuis 2015 sur une source dont les ticks commencent en 2019 interpole les premières années, rejoue les suivantes et rapporte les deux comme un seul résultat. L'onglet Ticks indique la plage qu'il détient ; le testeur ne vous avertit jamais que votre fenêtre l'a dépassée.

Attendre des ticks réels qu'ils comblent l'écart avec le trading réel

Ils comblent la moitié « prix » et laissent intacte la moitié « exécution ». Latence, requotes, exécutions partielles et politique du courtier restent hors de la simulation : une exécution sur ticks réels demeure un compte rendu optimiste de ce qu'auraient été les remplissages — simplement un compte rendu optimiste bâti sur un trajet qui a réellement eu lieu.

En détail

Trois exécutions, une variable à la fois

TidewellSlack — GBP/JPY, M15, depuis le 2019-01-01TransactionsFacteur de profitDrawdown max.Qualité d’historiqueNotre seuil
Historique M1 du courtier, modèle 0 (publiée)3031,359,92 %99 %PASS
Ticks importés, modèle 03511,1318,18 %99 %FAIL
Ticks importés, modèle 4 sur ticks réels3451,1118,20 %100 %FAIL

De la première à la deuxième ligne, seules les données changent : mêmes règles, même fenêtre, même modèle de testeur. Le facteur de profit perd 0,22 et le drawdown double à peu près. De la deuxième à la troisième ligne, seul le modèle change — les ticks générés cèdent la place aux ticks enregistrés de la même archive — et le facteur de profit perd 0,02 tandis que le drawdown bouge de deux centièmes de point. Les deux lignes sur ticks importés échouent à notre seuil ; la survivante est l’exécution sur ticks générés.

Cet ordre n’a rien d’universel, et c’est la part honnête de l’affaire. KestrelHover est allé dans l’autre sens : 291 transactions et un facteur de profit de 1,33 sur ticks réels, contre 292 transactions et 1,30 sur les ticks générés du courtier, les deux exécutions passant le seuil. Parfois la source est toute l’histoire, parfois elle n’est que du bruit — et on ne le découvre qu’en lançant deux fois. Lisez la fiche de TidewellSlack à côté de celle-là et la démonstration se fait toute seule.

Les ticks réels vous coûtent un symbole personnalisé

Onze des 23 exécutions publiées ici utilisent le modèle 4 et douze le modèle 0. Chaque exécution en modèle 4 traite un symbole dont le nom se termine par _DUKA, parce que des ticks importés ne peuvent pas vivre sur le symbole propre du courtier — on crée un symbole personnalisé dans la fenêtre Symboles et on y importe l’archive. Aucun symbole natif de courtier de ce catalogue n’a jamais atteint le modèle sur ticks réels, ce qui est la raison pratique pour laquelle tant de backtests publiés ne l’utilisent pas : le mode est gratuit, le stock qui le nourrit ne l’est pas.

Cela casse aussi le raccourci habituel qui consiste à faire confiance à un pourcentage. L’exécution fantôme en modèle 0 derrière KestrelHover a affiché 100 % de qualité d’historique, le même chiffre que sa jumelle sur ticks réels : le nombre ne peut donc pas distinguer les deux. La qualité de modélisation répond à une autre question — à quel point l’historique a couvert la fenêtre — et y répond pour les deux modèles.

Le spread est la moitié que personne ne vérifie

Le deuxième cadeau des données de ticks, ce sont le bid et l’ask enregistrés, et c’est celui qu’on jette le plus souvent. En modèle 4, le testeur exécute à partir de l’ask moins le bid de chaque tick et ignore le spread que vous avez configuré : lancer un test USD/JPY à Spread=10 puis à Spread=100 a produit des spreads identiques tick par tick, 227 valeurs distinctes allant de 10 à 350 points. Le champ ressemble à une commande et se comporte comme un commentaire.

Presque personne ne mesure non plus le coût qui en résulte. Exactement une des 23 exécutions publiées ici annonce une moyenne de spread mesurée — 19,14 points, relevés à l’intérieur du testeur — et cette exécution utilise le modèle 0, pas des ticks réels. La lecture honnête de la plupart des affirmations sur les ticks réels, y compris plusieurs des nôtres, est donc que le trajet a été enregistré et que le coût pour le parcourir n’a jamais été totalisé.

Questions fréquentes

Ai-je besoin de données de ticks réelles pour backtester un EA ?
Cela dépend de la durée de détention de la stratégie. Tout ce qui ouvre et ferme dans la journée devrait utiliser des ticks réels, parce que le trajet intra-bougie décide de trop de ses transactions pour être supposé. Un système swing tenu plusieurs jours le remarque à peine. Dans les deux cas, nommez la source : sur notre test GBP/JPY, le changement de source a déplacé le facteur de profit de 0,22 et le passage aux ticks réels de 0,02.
D'où viennent les données de ticks de MT5 ?
De deux endroits. Les courtiers MetaTrader stockent l'historique de ticks sur leurs serveurs et le terminal le télécharge depuis Affichage → Symboles (View → Symbols, Ctrl+U) → Ticks, pour un symbole et une plage de dates. Des fournisseurs indépendants publient des archives de ticks, que l'on importe sur un symbole personnalisé. Chaque exécution sur ticks réels de ce catalogue a pris la deuxième voie, ce qui explique le suffixe _DUKA dans le nom de son symbole.
Pourquoi deux sources de ticks donnent-elles des résultats de backtest différents ?
Parce que chaque source est l'enregistrement d'une seule place de marché, et que les prix — surtout les spreads — diffèrent d'une place à l'autre. Le même EA GBP/JPY sur la même fenêtre a obtenu un facteur de profit de 1,35 sur l'historique propre du courtier et de 1,13 sur une archive importée, le drawdown maximal passant de 9,92 % à 18,18 %. Comparer deux sources est le test de robustesse le moins cher qui existe.
Les données de ticks réelles rendent-elles un backtest exact ?
Elles rendent la série de prix fidèle, ce qui n'est pas la même chose. L'exécution reste en dehors du testeur, et la source choisie domine toujours. Nos deux EA lancés des deux façons ont atterri à l'opposé l'un de l'autre : l'un n'a presque pas bougé — 291 transactions et un facteur de profit de 1,33 sur ticks réels contre 292 transactions et 1,30 sur ticks générés — tandis que l'autre a échoué à son seuil dès que la source a changé.
Comment savoir quelles données de ticks un backtest publié a utilisées ?
Trois champs, dans l'ordre : le nom du modèle imprimé par le testeur, le symbole traité par l'exécution et le fournisseur derrière ce symbole. Un nom de symbole personnalisé est en général le signe que les ticks ont été importés. Si une fiche affiche un pourcentage et un adjectif mais aucun de ces trois éléments, traitez l'affirmation comme non vérifiée plutôt que comme fausse.