Tester une stratégie de trading : de l’observation aux règles de challenge

Écrivez ce que vous avez observé, transformez-le en règle, testez-la avec ses coûts et examinez le chemin du capital sous des règles de challenge explicites. Parcourez un exemple interactif avant de choisir le replay, l’exécution manuelle ou une stratégie armée.

Senzoukria · Guides · Mis à jour en septembre 2026


Une courbe de capital verte répond à une seule question, étroite : que s’est-il passé sous les hypothèses qui l’ont produite ? Elle ne dit pas si votre règle était définie avant le test, si les exécutions étaient atteignables, ni si le compte a survécu au chemin parcouru. Gardez ces questions séparées.

Ce que vous produisez : une hypothèse écrite, une règle versionnée, un test aux coûts explicites, un rapport de règles de challenge et une décision sur ce qu’il faut examiner ensuite. Un résultat perdant est utile quand il désigne l’hypothèse qui a lâché.

Partez d’une observation vérifiable

Par exemple : « Sur un niveau marqué au préalable, la vente agressive a augmenté alors que la barre close suivante n’a pas prolongé le plus bas. » Notez l’instrument, la place de marché, la session, la taille des barres, le fuseau horaire et la couverture disponible. Enregistrez les barres qui entourent le moment, pas seulement l’instant séduisant.

Le footprint regroupe les transactions exécutées par prix et par côté agresseur. Une heatmap de liquidité exige des observations de profondeur distinctes. Les transactions seules ne montrent pas les ordres qui ont attendu, disparu ou été rechargés. Une vente lourde sans progression vers le bas peut être un candidat à l’absorption ; cela n’identifie aucun participant et ne prouve pas la direction suivante.

  • Disponible : prix des barres closes, volume exécuté au bid et à l’ask, horodatages et couverture réellement chargée.
  • Non établi : réserve cachée, intention d’un participant, prix futur, ou position historique dans la file d’attente.
  • Contrôle : marquez le niveau avec l’information disponible avant le signal. Un niveau découvert grâce au profil du lendemain introduit un biais d’anticipation.

Demandez une règle testable, pas une réponse gagnante

Fournissez l’observation et ses limites. Demandez à l’assistant de distinguer la preuve de l’explication, puis d’énumérer les champs qu’une règle exigerait. L’assistant footprint peut proposer une configuration de graphique que vous appliquez ; l’assistant heatmap explique les traces enregistrées pour une zone sélectionnée. Leurs contextes sont différents.

« Voici l’instrument, la session, les barres closes et mon niveau marqué à l’avance. Décris ce qui est observé sans attribuer d’intention cachée. Propose une condition d’entrée déterministe n’utilisant que ces champs. Précise la fenêtre de lecture, l’invalidation, le moment de l’entrée, les conditions de sortie et les données manquantes susceptibles d’invalider le test. »

Ceci est un exemple de prompt, pas une réponse de modèle enregistrée. Confrontez la proposition aux données. L’assistant Scripting peut aider à éditer et exécuter un brouillon, mais un brouillon exécutable ne prouve pas un trading rentable.

Écrivez la règle complète avant de regarder les résultats

Une spécification de recherche minimale pourrait dire : évaluer un niveau marqué à l’avance uniquement sur une barre close ; exiger que cette barre clôture de nouveau au-dessus du niveau ; entrer à l’ouverture de la barre suivante ; utiliser un stop et un objectif fixes ; autoriser une seule position et aucune nouvelle entrée après une heure de coupure définie. Fixez la fenêtre de lecture et le seuil de signal exacts avant de tester. C’est un modèle de recherche, pas une configuration recommandée.

Spécification de recherche — pseudocode, pas une API Senzoukria

À chaque nouvelle barre close :
  vérifier que les données requises sont présentes
  n’utiliser que le niveau fixé avant cette barre
  évaluer le signal déclaré et le filtre de session
  si aucune position et toutes les conditions réunies :
    demander l’entrée à l’ouverture de la barre SUIVANTE
    attacher le stop, l’objectif et la taille déclarés

Enregistrer chaque modification comme une nouvelle version de stratégie.

Les stratégies JavaScript et Python disposent de chemins de backtest historique dans l’application desktop. Python a besoin de son runtime embarqué. Les scripts C++ utilisent un runtime WebAssembly à interface limitée et n’ont pas de backtest historique. Choisissez le langage selon l’opération visée ; ce ne sont pas des environnements d’exécution interchangeables.

Utilisez d’abord Run pour détecter les erreurs de syntaxe, les champs manquants et les sorties invalides sur des barres synthétiques. Enregistrez ensuite une version et testez-la sur un intervalle historique déclaré. N’appelez pas ce premier passage synthétique un backtest.

Rendez visibles les coûts et les limites des règles

Les résultats historiques dépendent du modèle d’exécution. Le backtest de stratégie du desktop décide sur barres closes, entre à l’ouverture suivante et modélise les sorties avec les prix de la barre et les coûts configurés. Il ne reconstruit pas la file d’attente d’une place de marché. Documentez l’hypothèse retenue quand le stop et l’objectif peuvent être touchés dans la même barre.

L’exemple ci-dessous isole la question suivante : que se passe-t-il quand des résultats quotidiens rencontrent les contraintes d’un compte ? Ses huit journées ont été délibérément inventées. Elles ne sont ni générées par la règle ci-dessus, ni tirées d’un compte réel.

Hypothetical teaching example

Same days. Different constraints.

Eight invented days, two round trips per day. Change the size, costs or rules. The path stops at its first pass or breach.

Account balanceLoss floorProfit target
Hypothetical balance and loss floor after each evaluated day. Values are available in the table below.49.25k50.00k52.00kDay 1Day 2Day 3Day 4Day 5Day 6Day 7Day 8
Pass in this modelEvery modeled condition is met.
Net result
$2,190
Max close drawdown
$670
Costs charged
$160
Days evaluated
8 / 8
Inspect the inputs and day-by-day arithmetic

Gross P&L per one contract: Day 1: $500; Day 2: $450; Day 3: -$650; Day 4: $800; Day 5: -$200; Day 6: $650; Day 7: $350; Day 8: $450. Each day contains two completed round trips. No market data or fitted strategy produced this sample.

Evaluated days only; later days are not charged after a terminal result.
DayGrossCostsNetBalanceFloor
Day 1$500$20$480$50,480$49,730
Day 2$450$20$430$50,910$50,160
Day 3-$650$20-$670$50,240$50,160
Day 4$800$20$780$51,020$50,270
Day 5-$200$20-$220$50,800$50,270
Day 6$650$20$630$51,430$50,680
Day 7$350$20$330$51,760$51,010
Day 8$450$20$430$52,190$51,440

Fictional $50,000 account; at least three trading days. Equality with a loss limit is a breach. Drawdown uses closed daily balances, with no intraday excursions or trailing-floor freeze. This is a teaching model, not a firm’s rules, a backtest, or a probability of future success.

Trois expériences à mener

  1. Réinitialisez, puis ramenez le drawdown maximal à 600 $. Le jour 3 franchit le plancher glissant sur clôtures. Passez à un plancher fixe : les trois mêmes premiers jours restent au-dessus. La règle a changé, pas les résultats de marché.
  2. Réinitialisez, puis augmentez le nombre de contrats. Les résultats bruts et les coûts par contrat grandissent ensemble. Une position plus large peut atteindre un seuil de perte avant même d’atteindre l’objectif.
  3. Réinitialisez, puis changez l’ordre des journées. Une permutation peut déplacer le premier dépassement ou le jour de qualification. C’est un test de sensibilité sur des résultats existants, pas une prévision ni une probabilité calibrée.

Vérifiez l’arithmétique

Avec un contrat et 10 $ par aller-retour, chaque journée à deux trades coûte 20 $. Les trois premières journées nettes valent 480 $, 430 $ et −670 $. Le solde atteint 50 910 $, puis 50 240 $ : un drawdown maximal de clôture à clôture de 670 $. Avec une tolérance glissante de 600 $, le plancher est à 50 310 $ et la troisième journée le franchit. Un plancher fixe à 49 400 $ n’est pas franchi.

Un modèle sur clôtures quotidiennes ne peut pas détecter un dépassement intrajournalier récupéré avant la clôture. Une vraie règle peut utiliser l’équité latente, un plafond de plancher glissant, d’autres bornes de session, une activité minimale, des clauses de régularité ou des restrictions de retrait. N’entrez que des règles vérifiées et signalez chaque clause manquante avant d’interpréter un rapport de challenge du desktop.

Attaquez le résultat avant de changer la règle

  • Réservez les données les plus récentes. Choisissez les périodes de développement et d’évaluation avant d’ajuster les paramètres. Optimiser de façon répétée sur la période réservée la transforme en données d’entraînement.
  • Changez une hypothèse à la fois. Augmentez les coûts, modifiez le filtre de session, examinez les valeurs de paramètres voisines et inspectez les trades perdants.
  • Gardez le dénominateur. Notez combien de variantes de stratégie vous avez essayées, pas seulement celle que vous avez retenue. Un résultat spectaculaire après de nombreuses tentatives exige des preuves plus solides.
  • Séparez le solde des flux de trésorerie. Frais d’évaluation, resets, phases financées et délais de paiement obéissent à leurs propres règles. Le petit modèle pédagogique ci-dessus ne les modélise pas.

L’application desktop propose recherche de paramètres, walk-forward et rapports de robustesse pour les tests historiques pris en charge, ainsi qu’un simulateur de challenge avec cycle de vie et coûts modélisés. Ces rapports résument leur protocole et les données fournies. Une étiquette favorable ne certifie aucun avantage futur.

Choisissez l’exécution délibérément

Utilisez le replay pour inspecter les décisions et le comportement simulé du compte avant de décider si une stratégie a sa place dans un compte connecté. Analyse seule, exécution manuelle et stratégie armée sont trois choix d’exploitation distincts.

Senzoukria prend en charge le routage d’ordres et l’automatisation optionnelle des stratégies via un compte Rithmic compatible. L’autopilote exige un armement explicite, les permissions du compte, des limites configurées, un graphique monté et l’application desktop en fonctionnement. Vérifiez les règles en vigueur de votre firme et de votre compte. L’agent IA général ne peut pas l’armer à votre place. Les flux d’analyse crypto n’impliquent aucun routage d’ordres Binance ou Bybit.

STOP désarme la stratégie et demande l’aplatissement ; contrôlez la réponse du broker et les positions réelles. Une demande n’est pas une exécution garantie, et les limites applicatives n’éliminent ni le slippage ni le risque de connexion. Gardez une procédure écrite pour les déconnexions et les ordres rejetés.

Tenez un registre de recherche

Enregistrez la version de la règle, la source et la couverture, les dates de test, les coûts, les hypothèses d’exécution, les règles du compte, les contrôles échoués et la raison de votre décision suivante. Puis changez une seule chose que vous savez nommer. Ce registre est plus utile qu’une capture d’écran affichant un gros P&L final.

Poursuivez avec la vérification du logiciel et des permissions de compte, ou revenez au parcours d’apprentissage pour renforcer l’observation qui fonde votre règle.

Questions fréquentes

L’exemple interactif est-il un vrai backtest de stratégie ?
Non. Ses huit résultats quotidiens sont inventés à des fins pédagogiques. Il applique des coûts visibles et des règles fictives à ces résultats. Il n’utilise pas de prix historiques, n’optimise aucune stratégie, n’identifie aucune prop firm et n’estime aucune probabilité de réussite future.
Peut-on backtester des stratégies JavaScript, Python et C++ dans Senzoukria ?
Le backtest historique de stratégies prend en charge JavaScript et Python dans l’application desktop. Le scripting C++ utilise WebAssembly et ne dispose d’aucun chemin de backtest historique. Exécuter un brouillon de l’éditeur sur des barres synthétiques est un contrôle d’exécution distinct, pas un test de performance.
Que signifie un challenge simulé réussi ?
Cela signifie que les résultats fournis satisfaisaient les règles réellement modélisées pour ce passage. Des données intrajournalières manquantes, des clauses non modélisées, des coûts ou des hypothèses d’exécution peuvent changer la conclusion. Ce n’est ni une probabilité de réussite future, ni un statut de compte, ni une garantie de paiement.
L’IA peut-elle passer des ordres ou armer ma stratégie ?
L’agent IA général lit le contexte de l’application et peut utiliser les outils web configurés ; il ne passe pas d’ordres et n’arme pas l’autopilote. Une stratégie enregistrée peut emprunter le chemin distinct de l’autopilote Rithmic après un armement explicite de votre part, avec l’application desktop ouverte, une connexion compatible et les permissions du compte.