📖 Guide — le moteur 0DTE

← Retour aux signaux

C'est quoi ? Un robot qui surveille QQQ, NVDA, TSLA, AMZN et AAPL chaque jour de bourse entre 9 h 30 et 16 h 00 ET, soit dès l'ouverture (entrées de 9 h 30 à 14 h 00 — et seulement à partir de 11 h 00 sur QQQ), cherche le setup de repli décrit dans votre carnet de trade, et publie le signal complet — sens, contrat 0DTE, prime, stop, cibles — avec une notification sur le téléphone.

C'est du papier — avec une nuance depuis le 18 août. Le moteur, lui, ne transmet toujours rien : il affiche ce qu'il aurait fait. Mais à chaque entrée il dépose désormais un billet dans la chaîne d'exécution IBKR (ibkr-exec), qui tourne en mode paper : les ordres partent sur un compte papier IBKR, jamais sur un compte réel. Passer au réel est un geste manuel, dans un autre fichier. Détail plus bas.

Comment c'est fabriqué ? Un script PowerShell calcule tout de façon déterministe : indicateurs, structure, R:R, choix du contrat, sorties. Aucun modèle de langage n'intervient dans la décision — deux exécutions sur les mêmes bougies donnent exactement le même signal.

Ce guide explique chaque condition, chaque paramètre et chaque sortie, dans l'ordre où le moteur les évalue.

👀 Lire la page 🎫 Les 4 symboles 🕐 La journée ⚙️ La chaîne 🎯 Les 5 conditions ➕ Les confluences 🎫 Le contrat 💵 La taille 🚪 Les sorties 🔗 Le pont d'exécution 🔍 Quasi-signaux 🎛️ Paramètres ⚠️ Limites 🔤 Lexique

Lire la page de signaux

Chaque carte est un trade papier. Le gros pourcentage en haut est le rendement de la prime, pas du sous-jacent.

Le bandeau du haut

QQQ xxx,xx — le dernier cours connu du sous-jacent.

Statut — « en recherche de setup », « position ouverte », « suivi seul — entrées à partir de 11:00 » (QQQ le matin), « fenêtre terminée ». Le point vert clignote quand le moteur tourne encore.

Signaux n — combien de trades ont été pris depuis l'ouverture. Plus de quota depuis le 12 août : en observation, le moteur doit montrer tous les signaux du jour.

MAJ — l'heure du dernier tour de boucle (un tour toutes les 20 secondes).

La carte d'un trade

Entrée / Prime / QQQ — l'heure du signal, la prime modélisée à cet instant, le cours du sous-jacent au même moment.

R:R — le rapport gain/risque mesuré sur le sous-jacent, jamais sur la courbe de l'option.

Stop / T1 / T2 — les trois niveaux, chacun donné en cours QQQ et en prime correspondante, pour savoir d'avance ce que vaudra le contrat une fois le niveau touché.

Pourquoi ce setup — les lignes « NOYAU » sont les conditions obligatoires — 4, plus une 5e depuis le 24 août qui rappelle où la cible a été posée, les lignes « Confluence » sont les bonus détectés en plus.

Le réflexe utile : la notification arrive au moment du signal, la page sert à relire le raisonnement. Si le R:R affiché est de 1,3 et que la prime d'entrée est déjà à 2,80, la question à se poser est celle du carnet — est-ce que le mouvement restant paie le theta d'ici la clôture ?

Les cinq symboles suivis

Le moteur traite chaque symbole indépendamment : sa propre recherche de setup, sa propre position, ses propres seuils. Le quota de 3 trades par jour est désactivé depuis le 12 août — mode observation.

SymboleJours avec 0DTEPrime retenueLiquidité minimale
QQQ
indice Nasdaq 100
entrées à partir de 11 h 00
lundi → vendredi
échéance tous les jours
0,60 à 3,50
strike le plus proche
OI ≥ 500 · volume ≥ 250
NVDA
ajouté le 9 août 2026
lundi → vendredi
échéance le jour même lun/mer/ven, celle du lendemain mardi et jeudi
0,30 à 3,00
strike le plus proche
OI ≥ 250 · volume ≥ 100
TSLA
ajouté le 10 août 2026
lundi → vendredi
échéance le jour même lun/mer/ven, celle du lendemain mardi et jeudi
0,35 à 3,50
strike le plus proche
OI ≥ 250 · volume ≥ 100
AMZN
ajouté le 10 août 2026
lundi → vendredi
échéance le jour même lun/mer/ven, celle du lendemain mardi et jeudi
0,30 à 3,00
strike le plus proche
OI ≥ 250 · volume ≥ 100
AAPL
ajouté le 1er octobre 2026
lundi → vendredi
échéance le jour même lun/mer/ven, celle du lendemain mardi et jeudi
0,30 à 3,50
strike le plus proche
OI ≥ 250 · volume ≥ 100
Pourquoi ces réglages diffèrent : une option ATM sur NVDA (220 $) vaut moins cher en valeur absolue qu'une ATM sur QQQ (723 $) — le plancher de 0,60 hérité de QQQ rejetterait tout l'ATM des actions en fin de séance.

Et surtout, l'écartement des strikes. Les quatre actions cotent leurs strikes tous les 2,50 $ : 1,14 % du sous-jacent sur NVDA, 0,90 % sur AMZN, 0,76 % sur TSLA, 0,75 % sur AAPL — contre 0,17 % sur QQQ. À quelques heures de l'expiration, le delta saute de 0,19 à 0,84 d'un strike au suivant : la bande de delta 0,45-0,55 (le mode d'origine) est tout simplement vide, et aucun contrat ne peut être retenu. Les actions sélectionnent donc le strike le plus proche du cours (strikeMode: nearest) parmi ceux qui passent la liquidité, la prime et le spread. QQQ les a rejointes le 25 août : les cinq titres sont désormais en nearest — voir « Le choix du strike ».

Conséquence à connaître : le contrat retenu sera souvent légèrement dans ou hors de la monnaie (delta 0,3 ou 0,7 plutôt que 0,5), selon le côté du strike où se trouve le cours. La transposition cours → prime reste fiable, mais le levier varie d'un signal à l'autre. C'est le prix à payer pour des strikes espacés.
AAPL, ajouté le 1er octobre 2026 : mêmes réglages neutres que NVDA et TSLA (aucun plancher de stop, pas de contre-attaque, entrées dès l'ouverture). Rejeu 60 séances fait le jour même, échelle 5 min : 27 % de gagnants, médiane −16 %, −9 % sans les 3 meilleurs — dans la même zone que NVDA et TSLA, ni meilleur ni pire. AAPL bouge moins que les autres (ATR 5 min 0,24 % du cours, contre 0,33 % NVDA et 0,42 % TSLA) : il est plus souvent refusé pour « jambe trop courte ».
Les chiffres
RejeuAAPLNVDATSLA
5 min · jours d'échéance (60 séances)48 trades · 27 % · moy. +18,5 · méd. −15,8 · sans top 3 −8,738 · 26 % · +26,5 · −22,1 · −12,145 · 20 % · +19,0 · −19,2 · −17,9
5 min · toutes séances (60)72 · 26 % · +12,1 · −15,8 · −5,954 · 35 % · +48,1 · −19,7 · +11,775 · 21 % · +13,9 · −23,0 · −9,6
1 min · toutes séances (7)21 · 24 % · −4,6 · −9,3 · −10,319 · 32 % · −0,6 · −7,7 · −10,118 · 11 % · −13,8 · −16,2 · −19,0

En % de prime par trade. Les trois titres dans un seul rejeu, puisqu'ils ont exactement les mêmes réglages : c'est la seule comparaison propre, le banc rechargeant Yahoo à chaque exécution. Cible = dernier plus haut, clôture 15 h 55. Le banc garde 3 trades/jour et 5 min de pause pour rester comparable aux mesures antérieures.

Mardi et jeudi, NVDA, TSLA, AMZN et AAPL prennent l'échéance du lendemain (maxDte: 1, décidé le 10 août 2026). Mardi ils achètent l'échéance du mercredi, jeudi celle du vendredi. Ils sont donc négociables tous les jours de bourse, comme QQQ. Le calendrier n'est pas codé en dur : le moteur lit l'échéance réelle dans la chaîne CBOE et refuse tout ce qui dépasse un jour.

Deux réglages s'adaptent automatiquement ces jours-là. À 9 h 50 un mardi, il reste 1 810 minutes avant l'échéance du mercredi au lieu de 370 pour un 0DTE : une option au cours vaut donc environ 2,2 fois plus cher. Les bornes de prime sont mises à l'échelle en racine du temps restant — sans quoi le plafond de 3,50 sur TSLA rejetterait tout le voisinage du cours et le moteur ne prendrait jamais position. Et le seuil d'intérêt ouvert est divisé par quatre : l'OI s'accumule sur la vie d'un contrat, donc une échéance qui vient d'ouvrir n'en a presque pas. Relevé du 10 août sur les PUT AMZN du mercredi : OI de 80 à 240 autour du cours pour un seuil à 250, donc aucun contrat retenu, alors que le volume du jour était de 2 900 à 6 200 et le spread de 6 à 9 %. Sur une échéance non courante, la liquidité se juge au volume et au spread, pas à l'OI.

La position est soldée à 15 h 55 comme les autres — rien n'est gardé pour la nuit, même quand l'échéance est le lendemain.
Ces trades du mardi et du jeudi ne sont adossés à aucune mesure. Le rejeu sur 60 séances ne porte que sur des échéances du jour, avec une volatilité modélisée pour du 0DTE. Le comportement d'une option à un jour — theta plus lent, gamma plus faible, sensibilité au gap d'ouverture — n'a pas été rejoué. C'est la deuxième partie du moteur dans ce cas, avec le balayage 1 min.

Une journée type

Tout est piloté par la tâche planifiée Windows QQQ 0DTE Signaux, du lundi au vendredi. Aucune intervention manuelle.

Heure ETCe qui se passe
9:28La tâche démarre le script. Il attend en veille, par pas de 15 secondes.
9:30Ouverture de la fenêtre, à la cloche. Depuis le 12 août, le suivi et les prises de position commencent à l'ouverture (c'était 9 h 50). Les indicateurs sont préchauffés sur les séances précédentes ; seule la structure du jour doit encore se former.
9:30 → 14:00Boucle toutes les 20 secondes : mise à jour des cours, gestion des positions ouvertes, et — à chaque fois qu'une bougie de 5 min ou de 1 min vient de clôturer — recherche d'un nouveau setup, symbole par symbole. Le site est redéployé toutes les 3 minutes (immédiatement en cas d'entrée ou de sortie).
11:00QQQ seulement : première entrée autorisée (entryStart, posé le 24 août). Avant 11 h, QQQ est suivi et compté dans l'entonnoir, mais aucun setup ne peut devenir un trade. Les trois actions, elles, entrent dès 9 h 30.
14:00Dernière entrée. Plus aucun nouveau signal n'est cherché, sur aucun symbole. Une position déjà ouverte n'est pas touchée : elle continue d'être gérée normalement.
14:00 → 15:55Gestion seule. La position restante vit sa vie : stop, cible, force /4, runner. Toujours une boucle de 20 secondes et un déploiement toutes les 3 minutes.
15:55Clôture forcée. Ce qui est encore ouvert est soldé 5 minutes avant la cloche — un 0DTE ne se garde pas jusqu'à l'expiration.
16:00Fin de la fenêtre : bilan de la séance par symbole envoyé sur le téléphone, dernier déploiement, arrêt du script.
Entrée et sortie découplées le 10 août 2026. Un seul réglage faisait les deux jusque-là : à 14 h 00, le moteur arrêtait de chercher et soldait tout. Une position ouverte à 13 h 55 était donc coupée cinq minutes plus tard sans avoir eu le temps d'aller chercher sa cible. Désormais lastEntry (14 h 00) ferme la porte aux nouvelles entrées, et hardClose (15 h 55) solde ce qui reste. Attention : les mesures sur 60 séances du tableau plus bas ont toutes été faites avec une sortie forcée à 14 h 00 — elles ne décrivent plus exactement le comportement actuel, qui laisse davantage de place aux runners.
Fenêtre allongée le 9 août 2026 (elle s'arrêtait à 11 h 55). C'est le seul changement qui fasse basculer les mesures : sur 60 séances rejouées, la moyenne passe de −16,2 % à +10,6 % sur QQQ et de −12,5 % à +7,8 % sur NVDA, simplement parce que la cible a le temps d'être atteinte (T1 atteignable : 31 % → 34 % sur QQQ, 15 % → 35 % sur NVDA). Voir les réserves en bas de page.
Pourquoi seulement sur bougie clôturée ? Un signal évalué en cours de bougie change de valeur toutes les 20 secondes : le RSI oscille, le MACD croise puis décroise, et le stop « sous la bougie » n'existe pas encore puisque son plus-bas n'est pas connu. Le moteur ne regarde donc que des bougies complètement fermées — mais sur deux échelles, 5 min et 1 min : la première qui produit un setup prend le trade, et l'échelle est enregistrée dessus pour que ses sorties soient jugées à la même maille. En pratique, au plus un signal par minute et par titre.

La chaîne, de bout en bout

1 · Sous-jacent
Bougies 1 min (Yahoo)
5 jours de bougies 1 min, agrégées en 5 min. Les séances précédentes servent à préchauffer EMA, RSI, MACD et ATR — sans elles, à l'ouverture il n'y aurait aucune bougie dans la journée. Le hors-séance est exclu. C'est ce préchauffage qui rend possible le démarrage à 9 h 30 : les indicateurs sont déjà chauds à la cloche, seule la structure de la séance (pivots, jambe d'impulsion) doit encore se former.
→
2 · Options
Chaîne 0DTE (CBOE)
Strikes, bid/ask, IV, delta, theta, intérêt ouvert et volume de l'échéance du jour — ou du lendemain les mardis et jeudis sur NVDA, TSLA, AMZN et AAPL (maxDte: 1). Flux gratuit, donc différé d'environ 15 minutes — d'où la modélisation qui suit. Rechargé au maximum toutes les 3 minutes.
→
3 · Décision
PowerShell déterministe
Structure, R:R, choix du contrat, transposition sous-jacent → prime en Black-Scholes, gestion des sorties. Zéro avis, que du calcul.
→
4 · Diffusion
ntfy + Cloudflare Pages
Notification mobile immédiate à l'entrée et à chaque sortie, et publication du site sur qqq-0dte.pages.dev.
Pourquoi la prime est modélisée et non recopiée de la chaîne

Le flux CBOE gratuit est différé d'environ 15 minutes. Recopier son bid/ask reviendrait à afficher le prix d'un contrat tel qu'il était il y a un quart d'heure — sur du 0DTE, c'est une éternité.

Le moteur fait donc l'inverse : il part du mid coté de la chaîne, en rétro-calcule la volatilité implicite par bissection à l'instant exact de l'instantané, puis réévalue la prime en Black-Scholes au cours QQQ live, avec le temps restant réel jusqu'à 16 h 00. Le champ « IV » brut de la chaîne n'est pas utilisé tel quel : il correspond lui aussi à l'instant de l'instantané.

Conséquence à garder en tête : c'est un prix théorique. Il ne tient pas compte du spread réel au moment d'entrer, ni d'un éventuel décalage d'IV. Les vrais bid/ask cotés sont conservés dans le journal du trade à titre de repère.

Le noyau : 5 conditions, toutes obligatoires

C'est la méthode du carnet, dans l'ordre exact où le moteur la vérifie. Si une seule condition manque, le côté testé (CALL puis PUT) est abandonné pour cette bougie.

#ConditionRègle exacte
1 Tendance
séance en cours
Le sens vient de la direction de la séance depuis son ouverture de 9 h 30 (trendMode: intraday). Au-dessus de l'ouverture haussier → CALL seulement ; en dessous baissier → PUT seulement ; à moins de 0,25 × ATR de l'ouverture, la séance est jugée sans direction et aucun sens n'est autorisé. Le biais peut donc basculer en cours de journée, et c'est voulu. Un repli vers un support dans une séance haussière n'est jamais une occasion de PUT : c'est le repli qui prépare le CALL.
2 Pullback
MACD 8-13-9
Les lignes MACD et signal du MACD court doivent avoir croisé dans le sens de la tendance sur l'une des 3 dernières bougies (macdCrossLookback). C'est le point de reprise après le repli.
3 Excès
RSI-5
Pendant le repli, le RSI-5 doit être descendu sous 40 (pour un CALL) ou monté au-dessus de 60 (pour un PUT) — rsiExtreme, passé de 30 à 40 le 12 août. Dans votre méthode, 30/70 est la zone de départ, pas un seuil à franchir : en repli sain le RSI-5 n'y descend quasiment jamais (médiane à 50), et un CALL QQQ a été refusé ce jour-là pour un RSI arrêté à 31. Le repli est délimité par le croisement inverse précédent du MACD court, dans la limite de 40 bougies et sans remonter à la veille.
4 Structure
pivots + fibo
Il faut une jambe d'impulsion exploitable (A→B sur pivots fractals 2-2), d'au moins 0,62 × ATR d'amplitude, et il doit rester au moins 0,8 × ATR de place jusqu'au dernier plus haut. Le R:R qui en découle doit atteindre 1,0 minimum. Du 24 au 27 août, la cible effective a été déplacée à 1,5 × le risque ; depuis le 28 août elle est revenue au dernier plus haut — voir l'encadré plus bas.
5 Zone
ajouté le 9 août 2026
L'entrée doit être adossée à un niveau important — sinon le setup est refusé, même parfait par ailleurs. Détail ci-dessous.
La contre-attaque (12 août). Le biais « séance en cours » interdit par construction toute reprise dans une journée rouge : le 12 août, QQQ n'a pas fermé une seule bougie de 5 min au-dessus de son ouverture (0 sur 84), et la remontée de 11 h 30 à 13 h 05, lue à l'œil comme un CALL, était injouable dès la 1re porte. Le sens interdit est donc rouvert, mais seulement quand la jambe du biais est finie et payée : l'extrême de séance date d'au moins 30 min sur QQQ / 20 min sur AMZN (biasReversalMinutes ; désactivé sur NVDA et TSLA, où la mesure ne suit pas), et le cours en est revenu d'au moins 0,75 × ATR. Les quatre autres portes restent entières, zone clé comprise.

📍 La zone : d'où viennent les niveaux

Le moteur reconstruit les niveaux que vous tracez à la main, et exige que le prix d'entrée soit à moins de 0,5 × ATR de l'un d'eux, du bon côté (un plancher sous un CALL, un plafond au-dessus d'un PUT — une résistance sous un CALL n'est pas un support) :

  • Veille : plus haut, plus bas, clôture
  • Ouverture : haut et bas des 30 premières minutes
  • Profil de volume : POC, bornes de la zone de valeur, nœuds de volume
  • EMA 200 du timeframe de signal — le niveau dynamique
  • Pivots du graphique 1 heure, comptés seulement une fois confirmés (2 heures après leur formation), sans quoi le moteur lirait le futur

Le niveau retenu est affiché sur la carte du signal et dans la notification : vous savez quel niveau justifie l'entrée.

💡 Pourquoi cette condition existe

Elle vient de vos propres annotations. Le 29 juin : « je me suis appuyé sur une mauvaise zone de support… j'ai pris position uniquement sur un FOMO de vouloir acheter au plus bas ». Le 7 août sur NVDA : « la trade était bonne mais rentré trop tôt, le prix aura redescendu dans la zone d'intérêt + EMA 200 ».

Dans les deux cas le setup était bon et l'entrée était au-dessus de la zone, pas dedans. C'est exactement ce que ce filtre refuse.

Mesuré sur 60 séances : sur NVDA, la réussite passe de 35 à 43 %, la moyenne de +7,8 à +19,7 %, la médiane de −29,9 à −18,1 %, et la dépendance aux 3 meilleurs trades s'effondre (−10,8 % → −2,1 %). Sur QQQ, l'effet est neutre — un indice respecte moins les niveaux horizontaux qu'un titre isolé.

🎯 D'où viennent les cibles

T1 = le dernier plus haut de la jambe d'impulsion (le point B) — votre règle de sortie n° 1, celle du carnet.

Parenthèse du 24 au 27 août : la cible a été posée à 1,5 × le risque (targetRMult), sur un rejeu 60 séances qui l'améliorait partout. Retirée le 28 août après trois séances vécues — voir l'encadré juste dessous.

T2 = l'extension fibo 127,2 % de la jambe A→B reportée depuis le creux C. C'est la cible du runner, uniquement quand la poussée est jugée intacte à T1 (voir plus bas), et seulement si elle est réellement au-delà de T1.

Les pivots ne sont considérés comme confirmés que 2 bougies plus tard — sans ce décalage, un rejeu ferait fuiter le futur et les résultats seraient faux.

🛑 D'où vient le stop

Le stop est structurel, sur le sous-jacent — jamais un pourcentage de la prime.

Il est placé sous le plus-bas de la bougie de signal et de la précédente (au-dessus du plus-haut pour un PUT), moins un tampon de max(0,08 ; 0,15 × ATR).

Deux bornes l'encadrent : jamais plus loin que 1,2 × ATR, et — depuis le 13 août — jamais plus près qu'un plancher propre à chaque titre : QQQ 1,5 × ATR, AMZN 1,0, NVDA, TSLA et AAPL sans plancher (AAPL n'a encore aucune mesure qui en justifierait un).

La prime correspondante à ce niveau est calculée à l'avance : c'est le stop premium affiché sur la carte.

La cible à 1,5 × le risque : posée le 24 août, retirée le 28

Rejeu de 60 séances au pas de 5 min, configuration gelée, clôture 15 h 55, le multiple balayé à l'intérieur d'un même rejeu. À 1,5 R, la moyenne hors les 3 meilleurs trades monte sur les sept échantillons sans une exception : QQQ +91,1 → +113,9 ; NVDA +5,7 négatif → +1,6 (jours d'échéance) et −3,1 → +2,1 (toutes séances) ; TSLA −5,3 → −2,2 et +6,1 → +7,5 ; AMZN −18,8 → −15,5 et −2,0 → +1,0.

Le mécanisme n'est pas « on coupe les gagnants plus tôt » : le taux d'atteinte de T1 monte (TSLA 31 → 50 %). Le runner ne s'arme qu'après T1, et 64 % des positions mouraient au stop sans jamais l'armer. Conséquence assumée : la médiane monte beaucoup, la moyenne baisse parfois — moins de coups de loterie, beaucoup moins de pertes sèches.

Pourquoi pas 2,0 R. QQQ fait mieux encore à 2,0 (hors top 3 +130,8) mais s'effondre à 2,5 (médiane −17, T1 43 → 18 %) : le sommet est à l'intérieur du balayage, donc c'est un vrai optimum — sur QQQ seul. On retient 1,5 partout : un réglage valide sur les quatre titres vaut mieux qu'un réglage par titre valide à un endroit.

Réserve dite le jour même. Banc 5 min uniquement, alors que 111 des 148 positions réellement vécues sont des signaux 1 min.

Ce que les trois séances vécues ont donné (25, 26, 27 août, 32 positions), et pourquoi c'est retiré. La moitié du mécanisme est arrivée, l'autre pas. Inchangés par rapport aux 6 séances précédentes : gagnantes 41 % contre 41 %, cible atteinte 38 % contre 40 %, perdante moyenne −192 $ contre −182 $. Ce qui a bougé : la gagnante moyenne, +400 $ → +256 $, et +482 $ → +256 $ sur les seules sorties à la cible — alors que le mouvement continuait autant qu'avant après la sortie (médiane 1,84 → 2,31 × ATR). Le coût mesuré au banc est donc arrivé, la contrepartie (plus de cibles atteintes, moins de stops secs) non — exactement là où la réserve ci-dessus le laissait craindre : 27 des 32 positions étaient des signaux 1 min. Le net des trois séances (−319 $ contre +5 732 $ sur les six précédentes) ne prouve rien à lui seul — 32 positions, écart-type 235 $ par position ; c'est la gagnante divisée par deux à taux d'atteinte inchangé qui tranche, parce qu'elle est mécanique et non statistique.

Le plancher de stop : pourquoi un stop trop serré coûte trois fois

Sans plancher, le stop suit le bas d'une seule bougie. En 1 minute, ça descend au niveau du bruit. Deux exemples du 13 août :

  • AMZN 9 h 37 — stop à 0,23 pt, soit 0,49 × ATR : touché en 29 secondes. Le prix a ensuite dépassé la cible trois minutes plus tard.
  • TSLA 10 h 27 — stop à 0,15 pt, soit 0,28 × ATR : survit parce que le plus-bas est passé 0,002 pt au-dessus. Pas de la gestion, de la chance.

Et le défaut ne s'arrête pas au stop touché. Il coûte trois fois :

  1. La position se fait sortir par le va-et-vient normal, alors que la direction était bonne.
  2. Le filtre R:R récompense le défaut au lieu de le punir : le R:R vaut distance-à-la-cible ÷ risque, donc plus le stop est serré, plus il monte. Le TSLA de 10 h 27 affichait R:R 7,18 uniquement parce que le dénominateur était minuscule.
  3. La taille vaut risque ÷ risque-par-contrat, donc un stop serré gonfle la position. Toujours le 13 août, un TSLA avec un stop de 0,13 pt a demandé 39 contrats, soit 13 221 $ immobilisés pour 200 $ de risque affiché.

Pourquoi seulement deux titres sur quatre. Le plancher a été balayé sur les deux échelles de signal — 5 min sur 60 séances, 1 min sur 7 jours (le maximum que Yahoo serve à cette échelle). C'est ce qui manquait à la mesure du 11 août, faite en 5 min seulement alors que tous les stops pathologiques étaient des signaux 1 min. Règle retenue : on ne pose un plancher que là où les deux échelles disent la même chose.

Titre5 min / 60 séances1 min / 7 séancesRetenu
QQQ1,5 — tout s'améliore1,5 — tout s'améliore1,5
AMZN1,0 (1,5 est le pire)1,0 (1,5 est le pire)1,0
NVDA1,5 améliore la queue1,5 est le pire0 — contradictoires
TSLA1,5 est le meilleur0 est le meilleur0 — contradictoires

Ce que ça ne fait pas. Le plancher retenu sur AMZN (1,0) n'aurait pas sauvé le trade du 13 août : il fallait 1,48 × ATR. Le réglage qui le sauvait (1,5) est le pire mesuré sur AMZN aux deux échelles. On ne règle pas le moteur sur un trade.

La contrepartie. Sur NVDA et AMZN, le plancher améliore la queue de la distribution et alourdit le trade typique — la médiane empire. Sur QQQ, non : là, toutes les colonnes montent ensemble.

Ce qui a été mesuré — et pourquoi certaines règles « évidentes » ont été retirées

Le « croisement RSI » du carnet est le croisement RSI-5 / RSI-based MA, pas le franchissement du 30 ou du 70 : en repli sain, le RSI-5 ne descend quasiment jamais à 30, sa médiane est à 50. Déclencher l'entrée sur ce croisement plutôt que sur le contact de zone donnait un R:R médian de 0,47 — inexploitable.

« MACD du bon côté de zéro » ne se produisait que 2 % du temps et vidait complètement l'entonnoir.

Le filtre VWAP a été retiré à votre demande : seules les EMA 9 / 21 restent calculées, en observation.

Ces trois points ne sont pas des approximations : ils viennent d'un balayage sur 60 séances (Test-Calibrate.ps1, Test-Funnel.ps1). Les remettre « au feeling » referait tomber le nombre de signaux à zéro.

Les confluences

Une fois les 4 conditions du noyau réunies, le moteur compte les éléments d'appui. Il en faut au moins 1 (minConfluences). Elles ne créent jamais un signal à elles seules — elles le qualifient.

ConfluenceQuand elle est comptée
Divergence RSI-5Les 4 types comptent : régulière (retournement, fin du repli) et cachée (continuation — le cœur du setup de pullback). Détectée par deux méthodes (pivot à pivot et pente de régression) sur deux échelles (5 min et 1 min). Une divergence de continuation ajoute une ligne supplémentaire au compte : elle pèse double.
Profil de volumeUn niveau du profil (POC, VAH, VAL ou nœud de volume élevé) se trouve du bon côté du prix et à moins de 0,6 × ATR — donc un vrai support sous un CALL, une vraie résistance au-dessus d'un PUT.
RSI qui se retourneLe RSI-5 remonte (CALL) ou redescend (PUT) par rapport à la bougie précédente : le retournement est effectif, pas seulement attendu.
Chandelle de rejetMarteau (longue mèche du bon côté, petit corps) ou chandelle englobante sur le niveau.
VolumeLe volume de la bougie de signal est au moins égal à la moyenne des 20 dernières.
Élan de fondL'histogramme du MACD long se renforce par rapport à la bougie précédente : la tendance de fond accélère au moment de l'entrée.
Croisement fraisLe croisement du MACD court a eu lieu sur la bougie courante ou la précédente — on entre tôt dans la reprise.
Pourquoi la divergence est cherchée aussi en 1 min : la divergence tracée à la main sur TSLA le 7 août n'existait qu'en 1 minute. En 5 minutes, la pente du RSI restait positive et elle passait inaperçue. Une même divergence vue par les deux méthodes ou les deux échelles n'est comptée qu'une fois par type, pour ne pas gonfler artificiellement le score.
La règle de divergence utilisée (la vôtre, pas celle des manuels)

Un couple de pivots ne compte comme divergence que si au moins un des deux pivots RSI est hors de la zone 70/30, et si le RSI est repassé par le 50 entre les deux. Sans ces deux filtres, n'importe quelle oscillation de RSI-5 produit une « divergence » toutes les trois bougies.

La méthode par pentes ajuste une droite des moindres carrés sur le prix et une sur le RSI, sur la même fenêtre, et compare les signes — c'est la transposition littérale du trait tracé à la main. Elle exige un déplacement minimum de 0,3 point de prix et 6 points de RSI pour éviter le bruit.

Le choix du contrat

Le signal donne le sens et les niveaux ; il reste à choisir quel contrat 0DTE acheter. La règle vient de vos propres trades.

Le choix du strike

Les cinq titres prennent le strike le plus proche du cours (strikeMode: nearest) parmi ceux qui passent la liquidité, la prime et le spread. QQQ a rejoint les trois actions le 25 août : il était le dernier en mode « bande de delta ».

Ce que ça change. Le contrat est au plus près de la monnaie : la transposition « le sous-jacent va à X, la prime vaut Y » reste fiable, le levier en pourcentage est plus faible qu'un OTM, et le moteur dispose de plusieurs candidats au lieu d'un seul.

Le mode « bande de delta » (0,45-0,55 ATM, 0,33-0,42 quand la cible dépasse 1,2 × ATR) existe toujours dans le code, mais plus aucun symbole ne l'utilise. La carte affiche « strike le plus proche du cours ».

Les garde-fous de liquidité

Un contrat n'est retenu que s'il passe tous ces filtres — sinon le spread mange le rendement avant même que le trade commence :

  • Intérêt ouvert et volume du jour au-dessus du seuil du symbole (QQQ 500 / 250, les trois actions 250 / 100)
  • Spread ≤ 12 % du mid
  • Prime dans la fourchette du symbole (QQQ 0,60 – 3,50, NVDA et AMZN 0,30 – 3,00, TSLA 0,35 – 3,50, AAPL 0,30 – 3,50)
  • IV cohérente (entre 1 % et 300 %)

Parmi les survivants, le moteur prend le plus proche du cours, avec un léger bonus pour l'intérêt ouvert et le volume. Si aucun contrat ne passe, le signal est annulé et consigné comme rejet — un bon setup sur un contrat illiquide n'est pas un bon trade.

Pourquoi QQQ a quitté la bande de delta le 25 août

1. Le banc mesurait un contrat que le moteur n'achetait pas. Test-Symbols.ps1, qui a fixé le plancher de stop à 1,5 et la cible à 1,5 R sur 60 séances, price au strike égal au cours d'entrée — une ATM parfaite de delta 0,50, soit le comportement de nearest, pas celui de la bande OTM. Toute la calibration de QQQ portait donc sur un autre contrat que celui retenu en direct.

2. Un seul candidat au lieu de quatre. Rejeu de la chaîne du 25 août à 12 h 50, cours 710,41 : en mode « delta », un seul strike passe les filtres ; en nearest, il y en a quatre. Avec un seul candidat, n'importe quel accroc sur ce strike — OI, volume, spread — tue l'entrée entière : c'est le profil des quatre refus PUT de 12 h 49 à 13 h 00 ce jour-là, le meilleur mouvement de la journée.

Ce que ça coûte. Moins de levier : ce 25 août, le PUT 710 (choix « delta ») faisait +143 % au plus bas contre +118 % pour le PUT 711 (choix nearest). Ce que ça rapporte : un contrat qui garde sa valeur — à la clôture, −99 % pour le 710 contre −62 % pour le 711 — et plusieurs candidats au lieu d'un.

Depuis le 25 août, chaque refus de contrat est journalisé strike par strike, avec le verdict de chacun (delta, prime, OI, volume, spread). Aucun comportement de sélection n'a changé : on écrit ce que la fonction décidait déjà en silence.

La taille de position

Deux plafonds, à ne pas confondre : 200 $ de risque par trade, et 5 000 $ de capital immobilisé en même temps.

💵 Risque et capital, ce n'est pas la même chose

Le risque est ce qu'on accepte de perdre si le stop est touché : plafonné à 200 $ par trade.

Le capital est ce qu'il faut sortir du compte pour ouvrir la position : une option longue se paie d'avance, prime × 100 × contrats. Plafonné à 5 000 $ en même temps, tous titres confondus.

Le second est toujours le plus gros — et il ne découle pas du premier. La page du jour affiche les deux : Risque sur chaque carte, Capital engagé à côté, et Capital nécessaire pour la journée entière.

Le calcul

Risque par contrat = prime d'entrée − prime au stop (les deux calculées en Black-Scholes, donc le vrai risque du trade, pas une estimation).

Nombre de contrats = 200 $ ÷ (risque par contrat × 100), arrondi à l'entier inférieur, avec un minimum de 1.

C'est un plafond dur. Si un seul contrat risque déjà plus de 200 $ — une prime d'entrée à 3,00 avec un stop à 0,50, par exemple — le trade est refusé, pas arrondi à un contrat. Le motif apparaît dans les rejets.

Le champ Risque de la carte affiche le montant réellement engagé, qui peut donc être un peu inférieur à 200 $ — ou supérieur si un seul contrat coûte déjà plus cher que le budget.

Puis la taille est rabotée pour que le capital reste sous 5 000 $, en comptant ce qui est déjà immobilisé sur les autres titres. Si un seul contrat ne rentre plus, le setup est refusé — et le rejet dit lequel des deux plafonds a bloqué.

Les limites de la journée

  • L'arrêt après 2 trades perdants est DÉSACTIVÉ depuis le 12 août (maxLosingTradesPerDay à 0). Le moteur est en simulation : il doit montrer tous les signaux de la journée, pas seulement ceux d'avant la 2ᵉ perte. Le 11 août, l'arrêt était tombé à 10 h 56 — une minute avant le meilleur setup de la séance. La règle des 2 pertes reste en vigueur dans la stratégie de trading réelle : c'est le banc d'observation qui est ouvert, pas la discipline qui est abandonnée. Remettre la valeur à 2 la réactive.
  • Le plafond de 3 trades par séance et par symbole est DÉSACTIVÉ depuis le 12 août (maxTradesPerDay à 0), même motif : en simulation, on veut voir tous les signaux. Il reste dans la stratégie de trading réelle.
  • Une seule position ouverte par symbole — mais les quatre peuvent être en position en même temps, soit 800 $ de risque simultané. Le capital, lui, reste borné à 5 000 $ quel que soit le nombre de positions ouvertes.
  • Plus de pause après une sortie (cooldownMinutes à 0). Les 5 minutes d'attente venaient du moteur, pas de la méthode : elles ont été retirées le 12 août. Une bougie donnée n'est de toute façon évaluée qu'une seule fois, donc le moteur ne peut pas réentrer sur celle qui vient de le sortir.
  • Plus aucune entrée après 14 h 00 — une position déjà ouverte continue jusqu'à 15 h 55
Le plafond de capital : pourquoi 200 $ de risque pouvaient demander 13 000 $

Le nombre de contrats vaut risque ÷ risque-par-contrat. Donc plus le stop est serré, plus la position est grosse — le risque reste à 200 $, mais la mise, elle, enfle.

Le 13 août, un TSLA avec un stop de 0,13 pt a demandé 39 contrats à 3,39, soit 13 221 $ immobilisés pour 200 $ de risque affiché. Sur la journée entière : pic à 13 221 $, et 50 371 $ « déployés » au total.

Deux chiffres différents, à ne pas confondre. Le pic simultané est le maximum de ce qui est immobilisé en même temps : c'est le solde minimum réellement nécessaire. Le total déployé additionne toutes les entrées de la journée ; il est plus gros et ne veut rien dire comme besoin de compte, puisque deux trades qui se suivent réutilisent le même argent.

Ce que coûte le plafond. La même journée du 13 août, rejouée avec la limite à 5 000 $ : le pic tombe à 4 984 $, mais le net passe d'environ 3 300 $ à 1 550 $. Les gros gagnants du jour étaient précisément les positions surdimensionnées. Le plafond n'est pas gratuit — c'est un arbitrage assumé entre le résultat et le capital qu'il faut avoir sur le compte.

Le plancher de stop pousse dans le même sens : un stop plus large donne une position plus petite, donc moins de capital immobilisé. Avec les planchers posés sur QQQ et AMZN, la limite de 5 000 $ mord beaucoup moins souvent.

Les sorties

Vérifiées à chaque tour de boucle (20 s), pas seulement à la clôture d'une bougie : un stop ne peut pas attendre 5 minutes. Elles sont testées dans cet ordre.

DéclencheurCe que fait le moteur
StopQQQ touche le niveau structurel → sortie totale, immédiate, notification prioritaire.
T1 · dernier plus hautLe moteur ne sort pas en aveugle : il mesure d'abord la force /4 (voir ci-dessous). Force ≥ 3 → il ne solde qu'un tiers, remonte le stop au seuil d'entrée et vise T2. Force < 3 → il solde tout à la cible.
T2 · extension 127,2Le runner est soldé à l'extension fibo de la jambe. Uniquement après T1, et uniquement si l'extension est réellement au-delà de T1 — sinon la carte affiche « sans objet ici » et le runner sort sur les déclencheurs ci-dessous.
Point contraire MACDAprès T1 : croisement du MACD court dans le sens inverse → le runner est soldé. C'était le vrai signal de sortie manqué sur TSLA le 7 août à 11 h 32.
Divergence RSIAprès T1 : le prix fait un plus haut mais le RSI-5 un plus bas, avec un pivot hors 70/30 → runner soldé.
3 chandelles contrairesAprès T1 : trois bougies de 5 min consécutives contre le trade → runner soldé.
15 h 55Clôture forcée de fin de séance, quel que soit l'état de la position. Aucun 0DTE n'est gardé jusqu'à l'expiration.

⚖️ La « force /4 » à T1

C'est la décision que vous prenez à la main — monter ou abaisser le TP — transformée en checklist. 4 critères, 1 point chacun :

  • Volume : bougie dans le sens du trade et volume ≥ moyenne 20 barres
  • RSI-5 : encore en progression et au-delà de 60 (CALL) / en deçà de 40 (PUT)
  • MACD court : toujours du bon côté, aucun point contraire
  • MACD long : histogramme du bon signe et qui ne se contracte pas (≥ 95 % de sa valeur 3 bougies plus tôt)

Le seuil est 3/4 (minForceToRun). La notification liste les critères réunis quand la cible est relevée, et les critères manquants quand le moteur solde.

💡 Pourquoi ce mécanisme existe

Cas TSLA du 7 août : sortie à la première cible, 330,00, alors que le volume vert croissait, que le RSI montait et que les deux MACD étaient positifs. Le prix a continué jusqu'à 333,50.

Sortir systématiquement à la première cible tue les runners — or c'est là que vit une bonne part de l'espérance. Rejeu du 25 août : sur QQQ, les 14 stops perdent en moyenne 91 % de la prime, tandis que les 9 sorties « force faible » rendent +403 % et les 7 runners sortis sur divergence +249 %. Retirer les 3 plus gros gagnants fait tomber la moyenne de +169,1 % à +112,9 % — une forte dépendance, mais qui ne fait plus basculer le signe comme en août.

D'où le compromis : on sécurise un tiers, on remonte le stop au seuil d'entrée (le trade ne peut plus perdre), et on laisse le reste courir jusqu'à ce qu'un vrai signal de retournement apparaisse.

Le pont vers l'exécution (18 août 2026)

Le moteur n'a pas changé d'un iota : même journal, même page, mêmes notifications. Ce qui est nouveau, c'est ce qui se passe après le signal.

À chaque entrée, le moteur dépose un billet d'intention — qui périme en 90 secondes — dans ibkr-exec. Le billet passe 13 portes : journée arrêtée, pont vivant, titre autorisé, fenêtre horaire, billet frais, positions simultanées, trades du jour, pertes du jour, perte cumulée, ratio R:R, stop crédible, capital déployé, dimensionnement. Une seule suffit à l'arrêter. Ce qui survit part chez IBKR : ordre limite parent, stop conditionné au sous-jacent, T1 et liquidation horodatée à 15 h 55, le tout en OCA côté serveur.

Depuis le 25 août, la chaîne tourne au niveau du moteur. Elle avait jusque-là ses propres garde-fous, plus serrés : 125 $ de risque au lieu de 200, 2 positions au lieu de 4, 3 trades par jour, arrêt à 2 pertes, arrêt à −300 $, R:R minimum 1,5 au lieu de 1,0, et vente de la moitié à T1 au lieu d'un tiers. Résultat mesuré : les 24 et 25 août, le moteur a pris 29 positions, la chaîne en a exécuté 3. Ces plafonds sont désormais ceux du moteur. Restent propres à la chaîne les quatre portes qui ne parlent pas de stratégie mais d'intégrité : pont vivant, billet frais (90 s), titre autorisé, capital déployé (5 000 $) — et journée-arrêtée, qui ne se déclenche jamais sur une perte, seulement sur une exposition inconnue.

C'est le mode qui fait foi, et il vit dans ibkr-exec/config.json : dryrun (aucune connexion, remplissages simulés), paper (compte papier IBKR — le mode en service), live (compte réel, avec approbation manuelle billet par billet). On monte d'un cran à la main, jamais automatiquement.

Où regarder : la page Exécution papier suit la chaîne, pas la méthode — état du pont et de l'exécuteur, plafonds du jour, positions au journal, et chaque billet avec la porte qui l'a arrêté. Ce guide-ci décrit le moteur de signaux ; les deux se lisent côte à côte.
La taille n'est pas transposable au compte réel. Les 200 $ de risque par trade sont calibrés sur un compte papier. Relevé au dossier : un seul contrat QQQ représentait 116 USD de risque, soit 11,6 % du compte réel. Et le 19 août, première séance branchée, huit ordres sont partis dans le vide — pont muet, personne pour le dire. Deux correctifs depuis : battement de cœur du pont (porte « pont vivant ») et réservation de la place avant l'envoi.

Le bloc « Quasi-signaux »

En bas de la page, il indique où le moteur s'est arrêté à chaque bougie analysée, et combien de fois. C'est le diagnostic d'une journée sans signal : il dit si le marché n'offrait rien, ou si un réglage est trop serré.

LibelléTraduction
sens interdit par la tendanceLe setup allait contre la direction de la séance. C'est normalement le plus gros compteur, et c'est mécanique : à chaque bougie, un des deux sens est forcément écarté — si la séance monte depuis son ouverture, le PUT est refusé d'office. Les compteurs sont séparés par échelle (« 5 min — … » et « 1 min — … »).
pas de croisement MACD courtLa tendance était bonne, mais aucune reprise après repli sur les 3 dernières bougies. On est au milieu d'une jambe, pas à un point d'entrée.
RSI-5 pas en zone extrêmeIl y a bien eu un repli et un croisement, mais le repli était trop mou : le RSI-5 n'est jamais descendu sous 40 (ou monté au-dessus de 60).
pas de jambe exploitable / jambe trop courtePas assez de pivots confirmés pour construire une jambe A→B, ou amplitude sous 0,62 × ATR : rien à transposer en cible.
plus assez de place jusqu'au dernier plus hautLe setup est arrivé trop tard : le prix est déjà collé à sa cible. C'est le compteur à surveiller — s'il domine, c'est que les entrées sont détectées avec du retard.
R:R sous 1 / risque dégénéréTout était réuni mais le stop était trop loin de l'entrée par rapport à la distance restante. Le trade aurait risqué plus qu'il ne pouvait rapporter.
pas assez de confluencesLe noyau était complet, aucun élément d'appui détecté. Rare, puisqu'une seule confluence suffit.
avant l'heure d'entrée du titreLe setup était complet, mais l'heure de première entrée du symbole n'était pas atteinte — QQQ avant 11 h 00. Le moteur continue de scanner et de compter : c'est ce compteur qui dira ce que la borne coûte ou sauve.

Tous les paramètres

Les valeurs modifiables vivent dans config.json. Elles ne sont pas devinées : elles viennent d'un balayage sur 60 séances. Les autres sont fixées dans le code, parce que les changer change la nature de la méthode.

RéglageValeurCe qu'il change si on le touche
signalTfMinutes
unité de temps du signal
5Plus court (1-2 min) = beaucoup plus de signaux, mais du bruit et des stops très serrés. Plus long (15 min) = presque aucun signal dans une fenêtre de 2 h.
minRR
R:R minimum
1,0Le filtre le plus sensible. À 2,0 (valeur d'origine), l'entonnoir se vidait presque entièrement. Le monter réduit le nombre de trades bien plus vite qu'il n'améliore leur qualité.
minConfluences
appuis minimum
1À 2 ou 3, on ne garde que les setups parfaits — et il en passe quelques-uns par mois.
rsiExtreme
seuil de survente
40Le seuil miroir (60) en découle automatiquement. Passé de 30 à 40 le 12 août : dans votre méthode, 30/70 est la zone de départ et non un seuil à franchir, et le RSI-5 n'atteint quasiment jamais 30 en repli sain (médiane à 50). Le redescendre à 30 refermerait la porte sur la majorité des replis.
macdCrossLookback
fraîcheur du croisement
3Combien de bougies après le croisement du MACD court l'entrée reste valable. Au-delà de 3, on entre trop tard dans la reprise.
trendMode
définition de la tendance
intradayintraday = direction de la séance en cours, mesurée depuis son ouverture de 9 h 30 — le seul mode qui bascule pendant la journée, et c'est voulu · sess24 / sess48 = biais figé avant l'ouverture sur 1 ou 2 séances · macdhist = histogramme du MACD long · ema200slope = cours du bon côté de l'EMA 200 avec pente concordante. Aucune ne domine en mesure — voir l'encadré en bas de page sur le choix de intraday.
biasDeadZoneAtr
zone morte du biais
0,25 × ATRTant que le prix reste à moins d'un quart d'ATR de son ouverture, la séance est jugée sans direction et aucun sens n'est autorisé. Évite de basculer à chaque oscillation dans les premières minutes.
maxDte
échéance la plus lointaine
1 jour0 = 0DTE strict, le comportement d'origine. 1 autorise l'échéance du lendemain, ce qui rend NVDA, TSLA, AMZN et AAPL négociables les mardis et jeudis. Les bornes de prime et le seuil d'intérêt ouvert s'adaptent alors tout seuls — voir la section sur les symboles. Non mesuré : le rejeu 60 séances ne couvre que les échéances du jour.
signalTimeframes
échelles balayées
5 et 1 minChaque titre est cherché sur les deux échelles à chaque tour, la première qui produit un setup prend le trade, et l'échelle est enregistrée sur celui-ci pour que ses sorties soient jugées dessus. Ce n'est volontairement pas un réglage par titre : le 10 août, QQQ ne montrait rien en 1 min et deux setups en 5 min, tandis qu'AMZN était lisible en 1 min. Réserve : Yahoo ne sert que 7 jours d'historique en 1 minute — contrairement au reste du moteur, le balayage 1 min n'a pas de mesure sur 60 séances derrière lui.
sidesAllowedbothcall désactive tous les PUT. Attention : dans le rejeu, ce sont les PUT qui portent le résultat sur QQQ (+16 % contre 0 % pour les CALL) — les couper ramène le symbole à l'équilibre.
zoneMode · zoneTolAtr
condition d'entrée
entry · 0,5off = pas de filtre de zone (l'ancien comportement) · entry = le prix d'entrée doit être sur un niveau · tested = c'est le creux du repli qui doit avoir touché le niveau, la bougie clôturant du bon côté — on achète le rejet du support, pas sa proximité. zoneTolAtr est la tolérance en multiples d'ATR.
minLegAtr
amplitude de jambe
0,62 × ATRÉcarte les micro-structures dont la cible serait à quelques cents. Exprimé en multiples d'ATR depuis l'ajout de NVDA : les 0,9 point d'origine valaient 0,12 % du prix sur QQQ mais 0,40 % sur NVDA — trois fois plus sévère. Concrètement : ≈ 1,00 pt sur QQQ, ≈ 0,55 pt sur NVDA.
windowStart · lastEntry
hardClose · windowEnd
9:30 · 14:00
15:55 · 16:00
Les bornes de la journée. windowStart est passé à 9 h 30 le 12 août (la tâche démarre à 9 h 28 pour être en place à la cloche). lastEntry arrête les entrées, hardClose solde ce qui reste ouvert : deux choses différentes depuis le 10 août. Allonger la fenêtre a été le changement le plus déterminant mesuré à ce jour (voir « Une journée type »).
entryStart
heure de 1re entrée
QQQ 11:00
les autres : 9:30
Posé le 24 août sur QQQ seul. Le suivi commence toujours à 9 h 30 — il faut la matinée pour construire le biais, le profil de volume et le range des 30 premières minutes ; seule la porte d'entrée est fermée. Rejeu 60 séances balayant 9:30 / 9:50 / 10:30 / 11:00 / 11:30 : QQQ améliore toutes ses colonnes et de façon monotone (gagnants 51 → 56 %, médiane +23,6 → +119,0, hors top 3 +91,1 → +115,7, N 49 → 39) — une pente, pas un pic. NVDA se dégrade, TSLA et AMZN se contredisent : d'où l'absence du champ chez eux. Bémol : sur les 12 séances vécues, la borne n'aurait retiré que 9 trades QQQ pour 271 $ de pertes évitées sur 2 882 $ de dégâts du matin, et 8 de ces 9 étaient des signaux 1 min, échelle qu'aucun rejeu 60 séances ne peut mesurer.
symbols[]
bloc par symbole
QQQ, NVDA,
TSLA, AMZN,
AAPL
Chaque entrée porte ses bornes de prime, ses seuils de liquidité et ses jours d'échéance. Ajouter un symbole = ajouter un bloc. À vérifier avant tout ajout : l'écartement des strikes — au-delà de ~0,5 % du cours, il faut strikeMode: nearest, sinon la bande de delta est vide et aucun contrat n'est retenu.
targetRMult
cible en multiple du risque
0
désactivé
Posé à 1,5 le 24 août, remis à 0 le 28. À 0, T1 est le dernier plus haut — la règle du carnet. Trois séances à 1,5 R ont divisé la gagnante moyenne par deux sans améliorer le taux d'atteinte de la cible, contrairement à ce que le banc 5 min annonçait — voir l'encadré « La cible à 1,5 × le risque ».
minRoomAtr
place restante
0,8 × ATRDistance minimale jusqu'au dernier plus haut. C'est ce qui empêche d'entrer quand le mouvement est déjà fait.
maxRoomAtr
plafond de distance
0
désactivé
Le pendant de minRoomAtr : au-delà de ce plafond, on viserait le plafond plutôt que le dernier plus haut. Laissé à 0 tant que le balayage 2 / 2,5 / 3 n'est pas dépouillé (cas d'école : AMZN du 13 août, T1 à 7,31 × ATR alors que le prix n'a jamais dépassé 2,54).
biasReversalMinutes · biasReversalAtr
contre-attaque
QQQ 30 · AMZN 20
NVDA · TSLA : 0
0,75 × ATR
Ajouté le 12 août. Rouvre le sens interdit par le biais quand la jambe est finie (extrême de séance vieux d'au moins N minutes) et payée (le cours en est revenu de 0,75 × ATR). Le rejeu 60 séances ne va pas dans le même sens partout : QQQ 30 min (hors top 3 −0,7 → +42,7), AMZN 20 min, NVDA et TSLA 0 — la contre-attaque les dégrade.
strikeMode
choix du strike
nearest
sur les 5 titres
nearest = strike le plus proche du cours parmi ceux qui passent les filtres · delta = l'ancienne bande 0,45-0,55 / 0,33-0,42. NVDA, TSLA et AMZN sont en nearest depuis le 10 août (strikes espacés de 2,50 $), QQQ depuis le 25 août, AAPL dès son ajout le 1er octobre.
minForceToRun
seuil du runner
3 / 4Sous ce score à T1, tout est soldé. Le baisser à 2 laisse courir plus souvent — et rend les mauvais jours plus mauvais.
maxTradesPerDay0
désactivé
Plafond de séance par symbole, toutes issues confondues. Mis à 0 le 12 août : mode observation. Était 3.
maxLosingTradesPerDay0
désactivé
Règle d'arrêt de la journée, comptée sur les quatre titres ensemble. Mise à 0 le 12 août, donc sans effet : en simulation, on veut voir tous les signaux. À 2, la journée s'arrêtait au 2ᵉ trade perdant — le 11 août, à 10 h 56, une minute avant le meilleur setup du jour. Toute valeur supérieure à 0 la réactive.
riskPerTradeUsd200 $Risque par trade — plafond dur : détermine le nombre de contrats, et refuse le trade si un seul contrat dépasse déjà l'enveloppe.
maxCapitalUsd5 000 $Capital immobilisé en même temps, tous titres confondus. Ajouté le 13 août. Ce n'est pas le risque : une option longue se paie d'avance, et un stop serré gonfle la position. La taille est rabotée pour tenir sous ce plafond ; si un seul contrat ne rentre pas, le setup est refusé.
minStopAtrQQQ 1,5
AMZN 1,0
NVDA · TSLA · AAPL : 0
Plancher de largeur du stop, en multiples de l'ATR. Posé le 13 août après balayage des deux échelles de signal, et seulement là où 5 min et 1 min sont d'accord.
cooldownMinutes0
aucune pause
Pause après une sortie. Mise à 0 le 12 août — cette règle ne venait pas de la méthode. Était 5 min.
vpLookbackBars
profil de volume
160Combien de bougies de 5 min avant l'ouverture du jour entrent dans le profil de volume (≈ 2 séances de contexte).
divLookback · divSlopeWindow
divergences 5 min
40 · 12Fenêtre de recherche des pivots, et fenêtre de la régression de pente.
divLookbackFine · divSlopeWindowFine
divergences 1 min
60 · 60Mêmes réglages sur la série fine — 60 bougies de 1 min = une heure.
pollSeconds20Rythme de la boucle : gestion des sorties et rafraîchissement du cours.
deployEveryMinutes3Fréquence de publication du site (forcée immédiatement à chaque entrée ou sortie).
ntfyTopic—Le canal des notifications mobiles. Le changer coupe les alertes tant que le téléphone n'est pas réabonné.
execBridge
pont d'exécution
activéAjouté le 18 août. Dépose un billet dans ibkr-exec/tickets à chaque entrée, avec une limite placée à 60 % du spread. enabled: false coupe tout net. Ne pilote aucun ordre réel : c'est le champ mode de ibkr-exec/config.json qui décide (dryrun / paper / live).
Les constantes fixées dans le code (non modifiables depuis config.json)

Indicateurs : RSI 5 (lissage de Wilder), ATR 14, MACD court 8-13-9, MACD long 100-200-50, Stochastique 14-3-3, EMA 9 / 21, pivots fractals 2-2.

Stop : tampon max(0,08 ; 0,15 × ATR), plafonné à 1,2 × ATR d'écart. Contrat : spread ≤ 12 %, IV entre 1 et 300 % ; les bornes de prime, de liquidité et le mode de strike sont par symbole. Les bandes de delta 0,45-0,55 / 0,33-0,42 sont toujours dans le code mais plus aucun symbole ne les utilise depuis le 25 août.

Profil de volume : pas de 0,10 $, zone de valeur à 70 % du volume, nœuds retenus à partir de 1,3 × la charge moyenne. Black-Scholes : taux sans risque 4,3 %, expiration calée sur 16 h 00 le jour même.

Ce que valent ces chiffres

Rejeu du 25 août 2026 sur la configuration réellement en service, un passage par titre avec ses réglages. Voici ce qu'il a donné, sans arrondi favorable.

Le balayage des mèches ne servait à rien depuis le 11 août — corrigé le 28 août 2026.

Le moteur relit les bougies d'une minute pour voir si un niveau a été effleuré entre deux relevés de prix. Sauf qu'il lisait aussi la bougie de la minute en cours : Yahoo la publie dès ses premières secondes, encore presque vide. Le moteur la déclarait alors examinée et ne la relisait jamais. Preuve : sur les 174 positions du journal, la dernière bougie lue est la minute même de la sortie dans 84 % des cas. Autrement dit, la détection tournait toujours sur le relevé de prix aux 20 secondes qu'elle était censée remplacer.

Cas d'école, TSLA du 27 août — entrée 10 h 52, stop 351,54, cible 353,67. Le stop est traversé dès la bougie de 10 h 54 (plus bas 351,51) et la cible touchée à 10 h 59, 11 h 00 et 11 h 03. Ni l'un ni l'autre n'ont été vus : la position est morte à 11 h 43 sur un relevé de prix.

Ce que le correctif change, et il faut le savoir avant de lire les prochaines cartes : les stops touchés par une simple mèche sont désormais honorés. Rejoué sur les 5 séances encore disponibles à la minute (21 au 27 août, 69 positions), le journal passe de +393 $ à −1 973 $ — sept gagnantes deviennent des stops, dont TSLA du 24 août à 11 h 00 (+714 $ → −196 $ : le stop est traversé de 8 cents par le haut de 11 h 03, la cible n'arrive que sept minutes plus tard). Ce n'est pas une perte, c'est la fin d'une indulgence : avec un vrai ordre stop chez le courtier, la mèche prend la position — et c'est déjà ce que suppose le banc sur lequel tous les réglages ont été calibrés. Le comportement d'avant revenait à un stop mental vérifié aux 20 secondes, et il flattait le journal.
Deux défauts corrigés le 10 août 2026, visibles sur les trades de la matinée.

1. La prime affichée pouvait valoir 25 fois le prix réellement coté. CBOE horodate ses instantanés en UTC, et le moteur les lisait comme de l'heure de New York — 4 heures d'avance. À 11 h 44, il croyait qu'il restait 16 minutes avant l'expiration au lieu de 4 h 15 ; la volatilité implicite recalculée depuis le prix coté sortait à 191 %, et la prime modélisée à 2,45 pour un contrat que le marché cotait 0,09 / 0,10. Le delta suivait (0,386 affiché, 0,094 en réalité), donc la taille de position et le garde-fou de delta aussi. Le défaut ne mordait qu'avant 12 h 00 : après, l'heure décalée dépassait 16 h et le recalcul était sauté.

2. T2 pouvait se trouver avant T1. L'extension 127,2 se mesure depuis le creux du repli ; quand ce creux descend sous le départ de la jambe, elle retombe sous le dernier plus haut. Le moteur soldait alors la position entière en croyant avoir atteint sa cible finale, à mi-chemin de la vraie. Deux cas ce matin : NVDA sorti à 220,11 pour une cible à 221,14, et un QQQ fermé 29 secondes après son ouverture. Désormais T2 ne peut se déclencher qu'après T1, et il est neutralisé quand l'extension n'est pas au-delà du dernier plus haut.

Les mesures sur 60 séances ne sont pas touchées : le banc d'essai utilise ses propres volatilités et ne lit jamais la chaîne CBOE.
Les chiffres publiés avant le 9 août 2026 étaient faux. Ils venaient de Test-Calibrate.ps1, qui contenait une collision de variables : le nom d'une variable servant d'index de bougie était réutilisé pour le strike (PowerShell ne distingue pas la casse). L'horodatage d'entrée était donc pris sur une bougie arbitraire, et le temps restant jusqu'à l'expiration avec — ce qui gonflait les rendements. Le même bug, reproduit puis corrigé sur les mêmes données, transformait −16,2 % en +20,9 %. Tout ce qui suit vient d'un banc réécrit, Test-Symbols.ps1.
Ces lignes décrivent la configuration d'aujourd'hui — fenêtre à 9 h 30, RSI-5 à 40, contre-attaque (QQQ 30 min / AMZN 20 min), planchers de stop (QQQ 1,5 / AMZN 1,0), première entrée à 11 h sur QQQ, cible à 1,5 × le risque — retirée depuis, le 28 août, zone d'entrée obligatoire, R:R 1,0, 1 confluence, clôture 15 h 55. Chaque titre a été rejoué séparément, avec ses propres surcharges. Le tableau du 10 août, celui qui figurait ici jusqu'au 25 août, est conservé plus bas — mais les deux ne sont pas comparables ligne à ligne : le banc recharge Yahoo à chaque exécution, donc deux rejeux faits à deux dates ne portent pas exactement sur les mêmes séances.
Ce sont des rejeux, pas des résultats. Aucun de ces trades n'a été pris : remplissage parfait au prix modélisé, aucun spread payé, aucune main tremblante. Le vécu, lui, est sur la page Bilan — et il est plus dur que ces lignes.
5 min · 60 séances · configuration en serviceTrades/ séanceGagnantsMoyenneMédianeSans le top 3T1 atteint
QQQ
entrées à partir de 11 h
390,6556 %+169,1 %+135,0 %+112,9 %54 %
NVDA
jours d'échéance
351,0037 %+48,0 %−19,7 %+2,4 %34 %
NVDA
toutes séances
590,9839 %+32,1 %−19,7 %+3,1 %36 %
TSLA
jours d'échéance
401,1452 %+39,6 %+13,9 %+5,6 %52 %
TSLA
toutes séances
721,2049 %+33,9 %−7,9 %+12,5 %49 %
AMZN
jours d'échéance
501,4328 %+18,5 %−52,4 %−17,1 %28 %
AMZN
toutes séances
921,5333 %+19,1 %−51,4 %−0,4 %33 %

Deux lignes pour les trois actions : jours d'échéance seulement (lun/mer/ven) et toutes séances, puisque maxDte: 1 les rend négociables les mardis et jeudis sur l'échéance du lendemain. QQQ a une échéance tous les jours.

Et la même configuration rejouée en 1 min — là où vivent les vrais trades — donne l'inverse. Yahoo ne sert que 7 séances à cette échelle, mais c'est elle qui a produit 111 des 148 positions réellement vécues :
1 min · 7 séances · même configurationTradesGagnantsMoyenneMédianeSans le top 3
QQQ entrées à partir de 11 h2129 %−8,0 %−23,6 %−17,6 %
NVDA échéance / toutes12 / 2050 / 45 %+11,0 / +5,9 %+22,0 / −7,8 %−1,7 / −1,7 %
TSLA échéance / toutes7 / 1614 / 19 %−19,1 / −11,2 %−18,3 / −12,4 %−29,3 / −18,7 %
AMZN échéance / toutes10 / 1940 / 42 %−1,2 / +0,2 %−23,3 / −17,3 %−20,9 / −8,7 %
L'ancien tableau (configuration du 10 août), pour mémoire
60 séances · configuration du 10 aoûtTradesGagnantsMoyenneMédianeSans le top 3
QQQ4723 %+38,4 %−32,7 %−16,8 %
NVDA3135 %+64,7 %−27,9 %+1,8 %
TSLA2938 %+51,9 %−23,7 %−3,6 %
AMZN2322 %+4,4 %−30,4 %−32,3 %

Entrées 9:50-14:00 pour la recherche mais clôture 15:55, RSI-5 à 30, aucun plancher de stop, cible au dernier plus haut, pas de contre-attaque. C'est cette mesure qui a servi à poser trendMode: intraday et zoneMode: entry.

Ce que le banc ne reproduit pas de la configuration réelle, volontairement, pour que les rejeux restent comparables aux mesures antérieures : il garde un plafond de 3 trades par jour et une pause de 5 min après chaque sortie (le moteur n'en a plus), un risque de 140 $ par trade (200 $ en service), et il price une ATM parfaite à IV constante, sans spread ni slippage. Ce dernier point est moins faux qu'avant : depuis que les quatre titres prennent le strike le plus proche du cours, le contrat mesuré ressemble enfin à celui qui est acheté. Les chiffres cités ailleurs dans ce guide viennent de rejeux antérieurs, souvent avec une sortie forcée à 14 h 00 : ils servent à justifier un réglage, pas à décrire le résultat d'ensemble.
Le choix de intraday n'est pas justifié par ces chiffres. Face à l'ancien sess24, sur les mêmes 60 séances, il fait mieux sur TSLA (38 % de gagnants contre 26 %, dernière colonne −3,6 contre −21,1) et sur NVDA, mais moins bien sur QQQ (−16,8 contre +23,9 sans le top 3) et sur AMZN. Deux victoires, deux défaites, et 35 % de trades en moins.

Il a été retenu parce qu'il reproduit la lecture réelle de l'opérateur. Le 10 août, ses neuf setups lus à la main sur les quatre titres ont été confrontés au moteur : sess24 jugeait les quatre titres haussiers et interdisait 7 de ces 9 entrées dès la première étape de l'entonnoir, sans jamais regarder le RSI ni le MACD. intraday retrouve sa lecture sur QQQ, NVDA et AMZN. Le but du moteur est de jouer sa méthode, pas de gagner une rétro-mesure.

📊 Comment lire ce tableau

Ce tableau a été mesuré avec la cible à 1,5 R, retirée le 28 août. Les colonnes ci-dessous décrivent donc une configuration qui n'est plus tout à fait celle en service : à relire comme la mesure d'un état daté, pas comme la promesse d'aujourd'hui. À remesurer.

La lecture avait changé de signe le 25 août. Avec la cible à 1,5 R, le plancher de stop et la borne de 11 h, le trade typique de QQQ gagne (médiane +135 %) au lieu de perdre, et il en reste +112,9 % une fois les trois meilleurs retirés. TSLA repasse au-dessus de zéro sur les deux colonnes de queue. Ce n'est plus la même distribution : moins de coups de loterie, beaucoup moins de pertes sèches.

Le prix payé : moins de trades. QQQ tombe à 0,65 trade par séance — deux tiers de la matinée sont fermés. Une partie du gain vient donc de setups refusés, pas de setups mieux gérés.

AMZN reste le point noir, et ce n'est plus le portrait d'avant : médiane à −52 %, 28 % de gagnants les jours d'échéance, et un recul avant T1 de 1,5 ATR — le plus large des quatre, donc le stop le plus souvent pris à tort. Sa seule ligne présentable (−0,4 % hors top 3, toutes séances) tient à un unique trade sorti à +1 007 %.

Ce que coûte le stop. En ignorant tout stop, T1 serait atteint dans 51 % des cas sur QQQ, 63 % sur NVDA, 70 % sur TSLA et 48 % sur AMZN. L'écart avec la colonne « T1 atteint », c'est exactement ce que le stop retire : énorme sur NVDA (63 → 34 %), presque nul sur QQQ (51 → 54 %, où le plancher à 1,5 ATR fait son travail).

⚠️ Les limites à garder en tête

Échantillons minuscules. 35 à 92 trades par ligne en 5 min, et 7 à 21 seulement en 1 min. Une série de 5 pertes d'affilée est parfaitement compatible avec ces chiffres, et 3 trades en moins suffisent parfois à inverser le signe — c'est ce que montre la dernière colonne.

Les deux échelles ne racontent pas la même histoire. En 5 min sur 60 séances, la configuration actuelle est nettement positive sur QQQ et TSLA ; en 1 min sur 7 séances, elle est négative presque partout. Or 111 des 148 positions réellement prises sont des signaux 1 min. Tant que Yahoo ne sert que 7 jours à cette maille, l'échelle qui produit le plus de trades réels restera la moins bien mesurée — c'est la réserve la plus importante de cette page.

Papier. Aucun ordre n'est passé, aucun slippage n'est simulé, le remplissage est supposé parfait au prix modélisé. La réalité sera moins favorable, pas plus.

Prime théorique. Black-Scholes sur un flux d'options différé de ~15 min.

Gestion à la maille du signal. Le banc gère les sorties sur les bougies de l'échelle rejouée ; les mèches intra-bougie sont donc approchées, et le rejeu 5 min n'a pas les divergences 1 min dont dispose le moteur en direct.

Un rejeu par titre. Chaque ligne vient d'une exécution séparée, qui recharge Yahoo : deux lignes se lisent chacune pour elle-même, pas l'une contre l'autre.

Lexique

0DTE
« Zero days to expiration » — une option qui expire le jour même, à 16 h 00 ET. Très réactive au mouvement, mais sa valeur temps fond à vue d'œil.
Prime
Le prix de l'option. Un contrat porte sur 100 titres : une prime de 1,20 coûte 120 $.
Strike · ATM / OTM
Le prix d'exercice. ATM = au niveau du cours (delta ≈ 0,50), OTM = au-delà (moins cher, plus de levier, plus de risque).
Delta
De combien la prime bouge quand QQQ bouge de 1 $. Un delta de 0,50 = 50 cents de prime par dollar de sous-jacent.
Theta
Ce que l'option perd par simple écoulement du temps. Sur du 0DTE, il accélère en cours de journée — d'où la dernière entrée à 14 h 00 et la clôture forcée à 15 h 55.
IV (volatilité implicite)
La volatilité que le marché intègre dans la prime. Ici elle est rétro-calculée depuis le prix coté, pas lue telle quelle.
Spread
L'écart entre le bid et le ask. C'est un coût payé à l'entrée et à la sortie : au-delà de 12 % du mid, le contrat est écarté.
R:R (rapport gain/risque)
Distance jusqu'à la cible ÷ distance jusqu'au stop, mesurée sur QQQ. Un R:R de 1,5 veut dire qu'on vise 1,5 fois ce qu'on risque.
ATR
Amplitude moyenne d'une bougie sur 14 périodes. Sert d'unité de mesure : « 0,8 × ATR de place » veut dire « au moins 8 dixièmes d'une bougie type ».
Jambe A→B→C
A = départ de l'impulsion, B = son sommet (le dernier plus haut), C = le creux du repli. L'extension 127,2 se mesure depuis C.
Divergence cachée
Le prix fait un creux plus haut mais le RSI un creux plus bas : signe de continuation, pas de retournement. C'est le cœur du setup de pullback.
POC · VAH · VAL · HVN
Profil de volume : le prix le plus échangé (POC), les bornes haute et basse de la zone où s'est traité 70 % du volume (VAH / VAL), et les nœuds de forte activité (HVN). Ce sont des supports/résistances construits sur le volume, pas sur les mèches.
Runner
La fraction de position laissée courir au-delà de la première cible, pour capter les mouvements exceptionnels.
ET
Heure de l'Est (New York). La bourse ouvre à 9 h 30 et ferme à 16 h 00 ET.
Ce que ce moteur n'est pas. Il ne décide d'aucun ordre réel — ce qu'il produit peut partir sur le compte papier IBKR par la chaîne d'exécution, jamais sur un compte réel sans un changement de mode à la main. Il ne tient aucun portefeuille et ne connaît pas votre situation. Il applique une méthode — la vôtre — à quatre sous-jacents, sur une tranche de séance, et affiche le résultat. La décision, le dimensionnement et le risque restent entièrement les vôtres, et un signal à 4 confluences peut parfaitement partir au stop. Au vu des mesures ci-dessus, ces signaux sont à observer, pas à suivre les yeux fermés.