Repository navigation
docs: phase 2 du plan réécrite (cœur + poche active + satellite, LLM/TimesFM au centre) - #104
Conversation
… 10 %, satellite pétrole, cadence hebdomadaire) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
|
||
| La barre à battre est connue. Sur 5 ans (09/2021 → 09/2026), le buy & hold fait **SXRV.DE +113 % (drawdown max −31 %)** et **CRUDP.PA +152 % (drawdown max −25 %)**. Pour justifier son existence, un système moyen/long terme doit **capter l'essentiel de cette hausse avec un drawdown plus faible**, net de frais et d'impôts. Sinon, le buy & hold l'emporte par défaut. | ||
|
|
||
| > **Mise à jour du 2026-09-29 (soir) : le cap a changé.** Après l'étude des stops (`docs/STOPS_ET_VISION_MOYEN_LONG_TERME_2026-09-29.md`), l'utilisateur a tranché : **cœur Nasdaq-100 conservé sans stop broker, poche active de 10 % du capital pilotée par l'ensemble de modèles (LLM et TimesFM au centre du projet), satellite pétrole tactique, décisions hebdomadaires, entrée en une fois, alerte à −35 % depuis le pic.** Les §2, phase 2, phases 3 et 4, §4, §5 et §7 ci-dessous ont été réécrits en conséquence. Les §1, phase 0 et §6 restent l'historique factuel du run démo 2 ; le mode actuel du démo (« legacy », un stop GTC par position) reste régi par le GO-gate 2 tant que la phase 2 n'est pas livrée. |
There was a problem hiding this comment.
WARNING: The study this update is based on does not exist in the repository
docs/STOPS_ET_VISION_MOYEN_LONG_TERME_2026-09-29.md is not present anywhere in the repo (checked docs/, and a repo-wide grep for STOPS_ET_VISION), yet this line presents it as a completed study that justifies the whole "cap a changé" decision. A reader (or a future agent restarting from this file) cannot verify the decision's premise. Either add the document in this PR or state clearly that it is a planned/unpublished artifact.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| - **Prérequis bloquant** : une source de prix fiable (CRUDP.PA : flux Yahoo gelé à 82 %). À instruire : autre ETC/ETF pétrole coté et disponible chez T212, ou contrat de référence (CL=F, BZ=F) pour le signal et un ETC pour l'exécution (risque de base et de roll à mesurer). Décision après mesure du roll et du contango sur l'instrument réel. | ||
| - **Rôle** : tactique, exposition 0 / 50 / 100 % de sa part, décision hebdomadaire, voix = oil_bench, TimesFM sur la série pétrole, LLM vision et texte. Testé selon le §2.3. | ||
| - **Plafond** : au plus la moitié de la poche par défaut (hypothèse à confirmer : la poche de 10 % inclut-elle le pétrole ?). | ||
| - **Protection** : la décision « pas de stop » concerne le cœur. Pour le satellite, très volatil, un **stop très large** est une variante à mesurer avec `scripts/stop_study.py` ; décision à prendre sur le résultat. |
There was a problem hiding this comment.
WARNING: scripts/stop_study.py does not exist and has no owner in the PR plan
scripts/ currently contains only backtest_ensemble_10y.py, backtest_hmm_10y.py and install_watchdog_task.ps1; a repo-wide grep for stop_study finds only this line. The satellite stop decision ("décision à prendre sur le résultat") therefore depends on a tool that nobody is assigned to write, and the §2.6 decomposition (PR 2-a … 2-g) does not mention it. Add it to one of the PRs (or to the phase 1 tranche B banc) so the decision is reachable.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| | R5 | **Cœur non vendable par le logiciel** (§2.2) | Test : SELL `core` refusé | | ||
| | R6 | **Réconciliation hebdomadaire** état local ↔ broker ; un écart (vente ou achat manuel) est signalé, jamais « corrigé » par un ordre automatique | Test avec broker simulé | | ||
| | R7 | **Watchdog conscient du rôle** : « position sans stop » n'est critique que pour un livre déclaré protégé ; le cœur est attendu sans stop | Test du watchdog | | ||
| | — | **Restent en vigueur** : GO-gates 1 (idempotence des ordres), 3 (fill confirmé), 4 (volatilité quotidienne), 5 (fraîcheur des données), 6 (verrou du scheduler), 7 (equity FIFO) | Suite existante | |
There was a problem hiding this comment.
WARNING: GO-gate 1 is mischaracterized as "idempotence des ordres"
Per AGENTS.md §2.2, GO-gate 1 exists precisely because the market-order endpoint is not idempotent: POSTs must go through post_order_market and the broker position is re-checked before any retry, because a blind retry double-posts. Labelling the gate "idempotence des ordres" (also in progress.md:20, but this line is the one the new risk layer will be implemented against) risks an implementer reading it as "order POSTs are safe to retry" and reintroducing the exact double-order the gate forbids.
| | — | **Restent en vigueur** : GO-gates 1 (idempotence des ordres), 3 (fill confirmé), 4 (volatilité quotidienne), 5 (fraîcheur des données), 6 (verrou du scheduler), 7 (equity FIFO) | Suite existante | | |
| | — | **Restent en vigueur** : GO-gates 1 (POST par `post_order_market` + réconciliation broker, **jamais de retry aveugle**), 3 (fill confirmé), 4 (volatilité quotidienne), 5 (fraîcheur des données), 6 (verrou du scheduler), 7 (equity FIFO) | Suite existante | |
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
|
|
||
| - **Cœur (≈ 90 %)** : Nasdaq-100 acheté en une fois et conservé. **Aucun stop broker, aucune vente décidée par un modèle.** Le filtre MA200 et le momentum ne pilotent pas le cœur : ils servent de **comparateurs** que la poche active doit battre. | ||
| - **Poche active (10 % du capital, soit 3 000 €)** : c'est ici que vivent les modèles. L'ensemble décide chaque semaine son niveau d'exposition (0 / 50 / 100 % de la poche). Elle n'est adoptée que si elle bat, hors échantillon et nette de frais et d'impôt, à la fois le buy & hold et la règle MA200. Sinon elle reste passive, et le cœur n'en souffre pas. | ||
| - **Satellite pétrole** : tactique, jugé séparément, prélevé **dans** la poche (hypothèse à confirmer, voir §2.4). Bloqué tant qu'il n'y a pas de source de prix fiable. |
There was a problem hiding this comment.
SUGGESTION: Dead cross-reference: the §2.x subsections live in section 3
Subsections 2.1 … 2.7 are defined under ## 3. Plan par phases → Phase 2, not under ## 2. Principe directeur. So references like voir §2.4 (line 97), coupe-poche (§2.5) (line 147), §2.7 (line 176) and §2.2 (line 146) point to a section that does not exist; only line 134 uses the correct §3, phase 2.3 form. Suggest normalizing to §3 phase 2.x so the links resolve.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| - Restent à la main du propriétaire : canal d'alerte + installation de la tâche watchdog, exécution du runbook PROD/DEV, accord pour la sonde `check_t212_stops.py`, revue et fusion des PR. | ||
|
|
||
|
|
||
| ## [2026-09-29] gen | Plan de passage en réel : phase 2 réécrite (cœur Nasdaq-100 + poche active 10 % + satellite pétrole) |
There was a problem hiding this comment.
SUGGESTION: progress.md not synced with the phase 2 rewrite
AGENTS.md §1.2 (sync phase) requires the sprint dashboard to be updated when the state files change. progress.md "Prochaine Action Immédiate" (lines 106-107) still announces the superseded order — "Phase 2 refonte moyen terme → Phase 4 réel progressif" — and knows nothing about the new mode core_sleeve, the 10 % sleeve, the weekly cadence or the −35 % alert. An agent restarting from progress.md would resume the old plan. A one-line addition pointing to the new §2 / §9 would keep the four files consistent.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Code Review SummaryStatus: 5 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (2 files)
Fix these issues in Kilo Cloud Reviewed by free · Input: 0 · Output: 0 · Cached: 0 |
Intègre les décisions du 2026-09-29 : pas de stop sur le cœur, poche active 10 %, Nasdaq-100 obligatoire, cadence hebdomadaire, alerte -35 %, LLM et TimesFM au centre avec test équitable. §9 liste les points restant à confirmer. Aucun code modifié ; AGENTS.md (GO-gate 2) sera mis à jour dans la PR qui livre la couche de risque.
🤖 Generated with Claude Code