Backtest automatique : faire tourner une stratégie scriptée sur les barres en cache

Le mode Backtest automatique de l'écran Replay fait tourner une stratégie enregistrée sur des semaines à des années de barres en cache, avec des coûts de transaction obligatoires, en appliquant les mêmes règles d'exécution conservatrices que le backtester de recherche, et enregistre le résultat dans le panneau Performance.

Senzoukria · Documentation · Mis à jour en septembre 2026


Où le trouver

Replay → Préparer → mode « Backtest automatique » (« Des mois de barres — votre stratégie tourne seule »)
Valeurs par défaut
Période 1 mois, granularité 15 minutes, valeur du point 2 $, frais aller-retour 1,24 $, slippage 1 tick
Règles d'exécution
Entrée à l'ouverture de la barre suivante plus le slippage, sorties sur les mèches, le stop l'emporte sur une barre ambiguë, frais sur chaque transaction
Profondeur de lecture
Une stratégie voit les 500 dernières barres à chaque décision

Ce qu'il fait

Là où le replay manuel joue une journée tick par tick, le backtest automatique fait tourner une stratégie écrite sur la page Scripting au-dessus des barres stockées dans le cache local. La stratégie expose decide(bars, params, ctx, state), avec les barres de la plus récente à la plus ancienne, et renvoie une action : buy, sell ou close, avec éventuellement qty, stopTicks et targetTicks. Toute la boucle tourne dans le worker du bac à sable (le protocole ofsandbox, qui porte sa propre CSP) par tranches de 300 ms pour que l'interface reste réactive ; le même texte de boucle tourne aussi dans un worker blob pour les tests et pour le site, ce qui garantit des résultats identiques.

Le panneau lit d'abord le cache pour le contrat et la granularité choisis et rapporte la couverture (« {n} séances en cache sur {n} demandées »). Les séances manquantes peuvent être téléchargées chez le broker (barres, ou historique tick footprint quand la stratégie lit les déséquilibres par niveau), et un fichier Databento ohlcv-1m peut être importé. Les barres serveur portent l'OHLC, le volume et le delta mais aucun niveau de footprint, et les barres importées ne portent aucun delta.

Réglages

Réglages de la carte Backtest automatique
RéglagePar défautCe qu'il change
Stratégie« Choisir… »Une stratégie enregistrée depuis la page Scripting ; « Modifier la stratégie » ouvre le code, un brouillon modifié tourne sans être enregistré, Ctrl+Entrée relance.
Période1 mois1 semaine, 1 mois, 3 mois, 6 mois, 1 an, 2 ans, 5 ans (7 à 1 825 jours).
Granularité15 minutes1 minute, 5 minutes, 15 minutes, 1 heure. Six mois de barres à la minute représentent environ 250 000 barres et prennent des minutes par configuration.
Valeur du point ($)2 (MNQ)Valeur en dollars d'un point plein par contrat ; minimum 0,01.
Frais aller-retour par contrat ($)1,24Soustraits de chaque transaction ; minimum 0.
Slippage (ticks)1Pénalise toujours l'entrée : les achats s'exécutent plus haut, les ventes plus bas ; minimum 0.
Walk-forwardDésactivéActive les tranches, la part d'entraînement, le critère de sélection et les axes de paramètres (voir la page walk-forward).
Lancer le backtestDémarre l'exécution ; « Interrompre » l'abandonne. L'en-tête du résultat indique « Résultat · {n} barres ».

Règles de simulation

  • Une décision est prise sur une barre close et appliquée à l'ouverture de la barre suivante : aucune exécution à un prix qui appartenait au passé au moment où la décision existait.
  • Les stops et les objectifs sont testés contre le plus haut et le plus bas de la barre, pas contre sa clôture.
  • Quand une même barre touche à la fois le stop et l'objectif, c'est le stop qui l'emporte : sans les ticks, l'ordre est inconnu, et le moteur tranche contre vous.
  • Les frais s'appliquent à chaque transaction ; l'indication sur les coûts rappelle que des coûts nuls transforment une stratégie perdante en stratégie gagnante dès qu'elle trade souvent.
  • Un signal inverse ferme d'abord la position courante (motif « inversion ») ; une action close aplatit (motif « aplatissement »).
  • Le MAE, le MFE et le risque à l'entrée (distance du stop × qty × valeur du point) sont enregistrés pour chaque transaction, pour les graphiques d'excursion et de multiples de R.
  • Les journaux de script sont conservés jusqu'à 200 lignes ; une stratégie Python tourne dans l'interpréteur installé depuis la page Scripting ; les stratégies C++ ne sont pas encore backtestables.

Limites et pièges

Le résultat est enregistré dans le panneau Performance comme une exécution « auto », avec les journées réellement couvertes, et la liste affiche « {n} j sur {req} demandés » quand la couverture est inférieure à 90 % de la fenêtre demandée. Un backtest sur une couverture partielle ne couvre que cette fenêtre, et le panneau le dit.

Les barres historiques sont un droit chez le broker : le panneau distingue « permission denied » (rp_code 13, barres non activées sur le compte) d'une archive qui ne remonte pas si loin. Aucun ordre n'est passé par un backtest ; les stratégies automatisées ne pilotent jamais que le compte d'évaluation simulé.

Cette page dans d’autres langues

Questions fréquentes

Pourquoi le backtest exécute-t-il à l'ouverture de la barre suivante ?
La décision n'existe qu'une fois la barre close. Entrer à un prix de cette même barre utiliserait une information dont vous ne disposiez pas encore, ce qui est le premier défaut des backtesters naïfs.
Puis-je mettre les frais à zéro ?
Le champ accepte 0, mais l'indication avertit qu'un backtest sans coûts ment dès que la stratégie trade souvent. La valeur par défaut de 1,24 $ est un ordre de grandeur pour un aller-retour en prop firm.
Pourquoi n'y a-t-il rien en cache pour mon contrat ?
Le cache se remplit quand vous ouvrez le contrat dans le chart à cette granularité, ou quand vous téléchargez l'historique manquant depuis le panneau de backtest. Un fichier Databento ohlcv-1m peut aussi être importé.