Cadrage — Suite à donner : protocole de décision de tradabilité¶
0. Objet et statut¶
Ce document est un cadrage, pas l'ADR lui-même. Il fixe la décision de méthode, ordonne les livrables, et porte la table contractuelle des inconnues à dériver (§7). Il autorise la rédaction de l'ADR « Tradability decision protocol » (Phase 0–1) et de la pré-étude quantitative qui le verrouille. Il n'autorise aucun run de trading, aucune sélection de modèle, aucun filtering / sizing / optimisation d'exécution. Ce qui est autorisé maintenant est borné explicitement en §4.
1. Constat¶
- Le pilote cost-sensitivity (
ftf_20260608_233608_b6cc67, defi_top5) est inconclusive / sous-puissant, pas négatif : les intervalles respectant la dépendance sont compatibles avec une perte et un gain à tout niveau de coût. Conclure « pas d'edge » serait l'erreur absence-of-evidence → evidence-of-absence. - La performance est dominée par la dispersion inter-actifs : une catastrophe + quatre positifs modestes = cinq anecdotes par-actif, pas un edge de portefeuille. Avec cinq actifs, un seul fait pivoter l'agrégat dans les deux sens. C'est l'observation porteuse du constat.
-
- Observation Sortino — non actionnable en l'état. L'énoncé « Sortino centrale ≪ plancher déployable
- ~1.0 » est exploratoire et neutralisé tant que R1 n'est pas résolu (définition / périodicité /
- MAR / annualisation de la Sortino, et base du plancher). Il ne fait pas partie du constat actionnable
- il peut s'inverser. Il sera réintroduit seulement après résolution de R1 (cf. §13).
- L'historique (tracks ML-boost abandonnés, transfert AUC→f1_buy faible,
best_iter=1) fait de « encore un sweep exploratoire » la mauvaise prochaine action : c'est le terreau du garden of forking paths.
Décision de constat : ni « on arrête » (non justifié sur de la sous-puissance), ni « on continue à tâtonner » (non discipliné). On installe un protocole de décision pré-enregistré et falsifiable avant tout nouveau run.
2. Décision de cadrage¶
Adopter le protocole de décision de tradabilité : une chaîne de gates pré-enregistrés, avec un interdit structurel — aucune optimisation aval avant preuve amont. Le livrable immédiat est l'ADR Phase 0–1 + la pré-étude quantitative Phase 1. Le run Phase 2 n'est pas autorisé tant que le charter n'est pas verrouillé (D3) sur des valeurs dérivées (et non choisies).
3. Principes contractuels (non négociables)¶
- Chaîne de précédence stricte :
prédictivité → espérance brute → survie aux coûts → filtering → sizing/exécution. Pas d'aval sans gate amont franchi. - Puissance = simulation / MDE sous le modèle de dépendance retenu — jamais un « 80 % » asséné. La
simulation peut renvoyer
INFEASIBLE(le substrat ne peut détecter aucun effet économiquement plausible) : dans ce cas on ne lance pas de run, on élargit d'abord le substrat. - Deux effets minimaux distincts, l'un dérivé de l'autre :
E_econ_min= break-even économique au coût conservateur P90, pour la taille d'ordre / le régime de capacité visé (un coût mesuré hors régime de capacité n'est pas déployable).E_pred_min= effet prédictif minimal requis, dérivé deE_econ_minvia un mapping documenté métrique-prédictive → espérance économique.E_pred_minn'est jamais un « delta de f1 » choisi : il descend de l'économie. Sif1_buyne mappe pas proprement vers l'espérance, le charter doit le dire et adopter une métrique primaire plus directement économique.- Les garde-fous consomment du budget statistique (no free retry) : tout
threshold/top-k sweepse fait en validation imbriquée (politique figée avant la lecture OOS) ; touteONE-ITERATIONest pré-payée = un slot de tuple enregistré + une unité de budget multiple-testing. - Null purgé/embargé + un seul null-gate désigné avant run, le plus conservateur implémentable. Le null
principal préserve structure temporelle, base rate par actif/fold, autocorrélation, purge/embargo.
Règle conservatism-wins : si plusieurs nulls défendables existent, le null-gate principal est le
plus conservateur implémentable qui préserve la structure pertinente. Les autres nulls sont
diagnostiques uniquement. Un tuple ne peut
PROMOTEs'il ne bat que des nulls diagnostiques mais échoue au null-gate principal. - KILL hiérarchique :
KILL tuple→KILL family→KILL program thesis(budget de familles épuisé sansPROMOTE). Registre des tuples tués pour interdire la résurrection silencieuse. La thèse-programme est nommée (§5). - Le win ratio n'est pas une cible (barrières asymétriques → trompeur). La cible est l'espérance nette ajustée du risque.
- Le meta-labeling (LdP) filtre un edge ; il ne le crée pas. Interdit comme moyen de fabriquer de l'alpha à partir d'un primaire non promu.
- Le market-neutral / cross-sectionnel n'est pas une Phase 6. C'est une famille d'hypothèses séparée (label, payoff, risque, coûts, shortability, funding, construction de portefeuille changent), avec ses propres gates — ouverte après Phase 1 si l'hétérogénéité par-actif domine, pas un recyclage des gates long-only.
4. Execution boundary — autorisé maintenant & anti-snooping¶
Autorisé avant le verrouillage Phase 0 (D3) :
- rédiger l'ADR et le decision charter (D1) ;
- mesurer et documenter le modèle de coût conservateur (P90, par venue, à la taille d'ordre visée) ;
- dériver le mapping prédictif → économique et
E_econ_min→E_pred_min; - concevoir la simulation de puissance et le modèle de dépendance ;
- sélectionner le null-gate principal ;
- préparer les registres (tuples, FDR, holdout, tuples tués) ;
- résoudre les blockers de définition de métrique — dont R1 (périodicité / MAR / annualisation de la Sortino, plancher de déployabilité).
Anti-snooping (load-bearing). La Phase 1 ne doit pas inspecter de résultats prédictifs ou de trading spécifiques à un tuple pour choisir features, labels, horizons, classe de modèle, actifs, seuils ou politique d'action. Si une telle inspection a lieu, le choix inspecté devient partie d'un tuple enregistré et consomme le budget de test correspondant. La pré-étude reste hors budget tant qu'elle n'utilise que des coûts réalisés indépendants, la structure de dépendance, des simulations sous hypothèses et des données agrégées non utilisées pour sélectionner le tuple. Une « pré-étude » n'autorise aucun sweep.
5. Thèse-programme nommée¶
À inscrire explicitement dans le charter (D1) — sans elle, on ne sait pas ce qu'un KILL program thesis
abandonne. Candidate :
Thèse-programme. Il existe un edge directionnel long-only, économiquement tradable au coût conservateur P90 (à la taille d'ordre / capacité visée), porté par le signal d'entrée ML sur l'univers de contrôle (defi_top5), avec la famille de label actuelle (triple-barrière ATR, horizon H4) et la classe de modèle actuelle (GBT).
KILL program thesis = budget de familles épuisé sans PROMOTE ⇒ cette thèse est abandonnée / sortie de
la roadmap active, et toute bascule (p. ex. vers une thèse cross-sectionnelle) devient une décision
explicite avec son propre charter, pas un glissement.
6. Chaîne de gates (synthèse — détaillée dans l'ADR)¶
| Gate | Question décidable | Sorties |
|---|---|---|
| Phase 2 — prédictivité | information OOS exploitable au-delà du base rate, battant le null-gate principal d'au moins E_pred_min (dérivé de E_econ_min), sous le critère d'incertitude/FDR enregistré ? |
PROMOTE / ONE-ITERATION / KILL tuple / KILL family / INFEASIBLE |
| Phase 3 — espérance brute (coût 0) | espérance brute OOS > 0, politique d'action figée en validation imbriquée ? Si skill mais espérance ≤ 0 : distinguer label mal spécifié vs politique d'action/calibration/ranking mauvaise, puis retour ciblé encadré (cf. §9) | continue / retour ciblé (consomme un slot) |
| Phase 4 — survie au coût | espérance nette > 0 au coût conservateur P90 (pas au coût moyen), à la capacité visée, + sensibilité au stress cost ? | continue / KILL |
| Phase 5 — filtering / meta-label | le meta-label améliore-t-il l'edge établi (espérance nette / Sortino / drawdown / trade-count), vs primaire seul ? | continue / stop |
| Phase 6 — sizing / exécution / portefeuille | edge net réellement déployable (sizing, limites, exécution, capacité) ? | — |
7. Table « unknowns to derive » (cœur contractuel)¶
Aucune valeur n'est posée au doigt mouillé. Chaque inconnue est dérivée en Phase 1, verrouillée en Phase 0 — et la colonne « si non verrouillable » est un gate : si elle se déclenche, pas de run.
| Inconnue | Définition opérationnelle | Méthode de dérivation (Phase 1) | Artefact source | Condition de verrouillage | Si non verrouillable |
|---|---|---|---|---|---|
| Coût P90 | coût round-trip conservateur (P90), par venue, à la taille d'ordre / régime de capacité visé | étude mesurée : fees maker/taker, spread, slippage base + impact marché, latence, tail de slippage — fin des placeholders | dump compte/exchange + cost_model.py |
distribution + P90 round-trip documentés à la capacité visée | pas de Phase 2 ; construire l'instrumentation coût d'abord |
E_econ_min |
break-even économique au coût P90, à la capacité visée | inversion du backtest sur le label retenu | note de dérivation | valeur break-even documentée | INFEASIBLE ; revoir label/capacité |
Mapping prédictif → éco ⇒ E_pred_min |
fonction métrique-prédictive → espérance ; E_pred_min dérivé de E_econ_min |
mapping analytique/simulé ; expliciter precision/recall/trade-freq, payoff conditionnel, asymétrie | note de dérivation | mapping + métrique primaire figés | changer la métrique primaire (économique) ou INFEASIBLE si instable |
| Modèle de dépendance | clustering/blocs pour la simulation (clusters actifs, blocs folds, autocorrélation, régime, purge/embargo) | spécification du modèle | spec de simulation | modèle figé | pas de simulation valide → pas de run |
| MDE actuel | plus petit effet détectable, univers courant (5×3), sous le modèle de dépendance | simulation de puissance | rapport de puissance | MDE rapporté | si MDE > E_pred_min à univers faisable → INFEASIBLE / élargir |
| Univers minimal | actifs × folds requis pour détecter E_pred_min à la puissance cible |
même simulation, univers/folds variables | rapport de puissance | univers/folds minimaux | si > faisable → INFEASIBLE |
| Null-gate principal | null unique, le plus conservateur implémentable, préservant temporel + base rate + autocorrélation + purge/embargo | choix + justification ; nulls diagnostiques listés à part | spec du null | un seul null-gate nommé avant run | non implémentable avec purge/embargo → pas de run |
| Budget de tuples (familles) | nb max de tuples (features × label × horizon × modèle × univers) avant KILL program thesis |
décision de roadmap + budget statistique | charter | entier N + règle KILL-programme |
non défini → pas de run |
| Budget FDR / holdout | méthode de contrôle + taille de famille déclarée + holdout final verrouillé + règle « ONE-ITERATION = un slot » | choix méthodologique | charter | méthode + budget + politique de holdout figés | non défini → pas de run |
8. Séquencement et livrables¶
L'ordre est imposé par la logique : on ne peut figer E_econ_min avant le break-even, ni l'univers
avant le MDE. La Phase 1 n'est pas une phase après le charter ; c'est l'analyse qui alimente son
verrouillage, et elle est de l'analyse (pas un run) → ne consomme aucun test, sous réserve de
l'anti-snooping (§4).
| # | Livrable | Contenu | Propriétaire | Gate de revue |
|---|---|---|---|---|
| D1 | ADR « Tradability decision protocol » (brouillon Phase 0) | chaîne de gates, unité d'inférence, thèse-programme nommée (§5), frontière long-only / cross-sectionnel, placeholders des valeurs dérivées, règles KILL / ONE-ITERATION / PROMOTE / INFEASIBLE |
Dominique | revue méthodo (peer) |
| D2 | Pré-étude quantitative Phase 1 | remplit la table §7 : coût P90 (capacité) → E_econ_min → mapping → E_pred_min ; simulation → MDE / univers minimal ; null-gate ; budgets |
Dominique | comité |
| D3 | Verrouillage du charter (Phase 0 lock) | injection des valeurs D2 ; gel ; toute modif ultérieure = nouveau tuple | Dominique | sign-off conjoint & explicite : opérateur/owner scientifique + revue méthodologique + risk owner (ou équiv. risk-review). Séparation des rôles : le charter ne peut être verrouillé par la seule personne qui veut lancer le run. Trace immuable OP/ADR. |
| D4 | Protocole Phase 2 (exécutable) | première application : test prédictif contre le null-gate verrouillé, critère E_pred_min/FDR, sorties |
Dominique | comité (avant run) |
9. Issues de décision (définitions)¶
PROMOTE— l'edge prédictif bat le null-gate principal d'au moinsE_pred_minsous le critère d'incertitude/FDR enregistré (battre seulement des nulls diagnostiques ne suffit pas) → autorise la phase suivante pour ce tuple seulement.ONE-ITERATION— uniquement si pré-payée (un slot tuple + une unité FDR), signal proche du seuil et diagnostic pointant une cause précise ; une seule modification ; jamais features + label + modèle + coût simultanément.- Retour ciblé Phase 3 — si skill mais espérance brute ≤ 0 : le retour (label vs politique d'action)
consomme un slot
ONE-ITERATIONou ouvre un nouveau tuple ; un seul axe modifié ; pas de réutilisation du holdout final ; pré-enregistré avant relance. (Sinon Phase 3 devient un re-tuning économique post-hoc.) KILL tuple— le tuple échoue ; retiré, inscrit au registre des tuples tués.KILL family / program thesis— budget de familles épuisé sansPROMOTE→ la thèse-programme nommée (§5) est abandonnée / sortie de la roadmap active.INFEASIBLE— le substrat ne peut détecterE_pred_minà puissance crédible → pas de run ; élargir d'abord l'univers/les folds.
10. Hors périmètre (interdits jusqu'à franchissement des gates)¶
- Tout run de trading / sélection de modèle avant verrouillage du charter (D3).
- Tout meta-labeling / filtering avant
PROMOTEPhase 2 et survie au coût Phase 4. - Tout sizing / optimisation d'exécution / construction de portefeuille avant un edge net survivant aux coûts.
- Toute promotion sur cherry-pick actif/fold, ou tout changement post-hoc du charter sans nouveau tuple.
- Tout usage du holdout final hors du moment
PROMOTE(touché une seule fois). - Tout sweep sous couvert de « pré-étude » (cf. §4).
11. Registres à tenir¶
- registre des tuples enregistrés ;
- registre des tuples tués (anti-résurrection) ;
- ledger budget de familles ;
- ledger budget FDR / multiple-testing ;
- ledger holdout final (chaque accès daté) ;
- conditions de réouverture d'une thèse tuée.
12. Critère de complétude du cadrage¶
Le cadrage est satisfait lorsque D1–D3 existent, que la table §7 est entièrement renseignée et
verrouillée (aucune cellule « si non verrouillable » déclenchée), et que D3 a reçu le sign-off conjoint
— ou qu'un verdict INFEASIBLE est enregistré (la suite est alors l'élargissement du substrat, pas un
run). D4 n'est rédigé qu'après D3.
13. Points encore ouverts¶
- R1 — définition de la Sortino (blocker du constat Sortino). Périodicité / MAR / annualisation, et base du plancher ~1.0. Neutralisé dans le constat (§1) ; à résoudre en §4 (autorisé maintenant). L'énoncé « sub-floor » ne sera réintroduit comme constat actionnable qu'après résolution, sur base commune.
- Mapping
f1_buy→ espérance : validé en D2 ; s'il est mauvais → métrique primaire économique. - Faisabilité du substrat : sortie possible
INFEASIBLE— décision à assumer, pas échec.