diff --git a/GeoOptions_Documentation_Complete.html b/GeoOptions_Documentation_Complete.html index 3746cdf..d6c34e5 100644 --- a/GeoOptions_Documentation_Complete.html +++ b/GeoOptions_Documentation_Complete.html @@ -109,10 +109,11 @@ li { margin-bottom: 4px; font-size: 9.5pt; } Phase 3 · Portfolio & Risk Phase 4 · IA Probabiliste Phase 5 · Cycle Context & Intelligence + Phase 6 · Specialist Desks & Calibration
@@ -180,6 +181,26 @@ li { margin-bottom: 4px; font-size: 9.5pt; }GeoOptions Intelligence est un cockpit de trading d'options à usage personnel, conçu pour un trader individuel opérant sur Interactive Brokers avec des positions de l'ordre de 1 000 € par trade et un horizon moyen de 3 mois. Le système fusionne en temps quasi-réel trois flux d'information hétérogènes — données de marché financières (prix, volatilité implicite, open interest), signaux géopolitiques (flux RSS de presse internationale, scores de tension par région) et analyse macroéconomique (régime macro dominant parmi 4 états : Expansion, Stagflation, Récession, Stress Géopolitique) — pour générer des suggestions de patterns de trading options avec probabilités de succès, tailles de position ajustées au risque, et contre-thèses d'invalidation. L'ensemble tourne sur un VPS Linux sous FastAPI (backend) et React (frontend), avec SQLite comme base de données persistante et GPT-4o comme moteur de raisonnement.
+GeoOptions Intelligence est un cockpit de trading d'options à usage personnel, conçu pour un trader individuel opérant sur Interactive Brokers avec des positions de l'ordre de 1 000 € par trade et un horizon moyen de 3 mois. Le système fusionne en temps quasi-réel trois flux d'information hétérogènes — données de marché financières (prix, volatilité implicite, open interest), signaux géopolitiques (flux RSS de presse internationale, scores de tension par région) et analyse macroéconomique (régime macro dominant parmi 8 états : Goldilocks, Désinflation, Soft Landing, Reflation, Stagflation, Choc Inflationniste, Récession, Crise de Liquidité) — pour générer des suggestions de patterns de trading options avec probabilités de succès, tailles de position ajustées au risque, et contre-thèses d'invalidation. L'ensemble tourne sur un VPS Linux sous FastAPI (backend) et React (frontend), avec SQLite comme base de données persistante et GPT-4o comme moteur de raisonnement.
Ces données sont encodées dans le méga-prompt de l'Étape 5.
Input : Table asset_class_configs (7 desks) + specialist_reports + report_desk_links
Traitement : Pour chaque desk actif, le système charge les fondamentaux, la sensibilité macro par régime, les seuils de prix significatifs/extrêmes, et les 5 prochains rapports planifiés triés par date et importance.
+Output : Un bloc de contexte structuré par desk, injecté dans deux prompts distincts :
+Input : Base de données Knowledge Base (patterns historiques), trades des 90 derniers jours, insights récents avec scores de fiabilité
@@ -1757,6 +1915,37 @@ Seuil : confidence > 0.75 → ALERTE INVALIDATION générée dans l'UIOnglet Options — Parameters : IV Gate thresholds (Alert / Extreme), exit defaults (target % / stop-loss %), indicateurs techniques à activer par horizon, skew threshold pour alertes directionnelles.
Ne jamais modifier le modèle GPT en production sans tester sur un cycle complet. Ne jamais baisser le Kelly fraction en dessous de 1/4 (tailles trop petites pour couvrir les frais IBKR).
+La page Patterns est le cœur opérationnel de GeoOptions. Voici le flux de travail typique d'un trader après chaque cycle :
+| Fonctionnalité | Ce qu'elle fait | Quand l'utiliser |
|---|---|---|
| Filtres class d'actif | Filtrage par forex/metals/agri/energy/indices/crypto/bonds | Tous les jours, pour ne voir que les patterns pertinents au marché actif |
| Tri Score IA / Date / Probabilité | Reclasse les patterns par score du dernier cycle (desc), date de création, ou bayesian_win_rate | Après cycle — trier par Score IA pour voir quels patterns le système juge les plus opportuns aujourd'hui |
| MaturityBadge | Affiche pour chaque pattern : source (Pure AI → Data-driven), poids calibration, WR bayésien, AI estimate vs calibré | Avant de décider de logger un trade — savoir si le G dans l'EV vient de l'IA ou de données réelles |
| Find Similar (ScanSearch) | Appelle GPT-4o-mini pour comparer le pattern à tous les autres. Retourne : doublon à fusionner / contre-scénario / pattern unique | Après chaque cycle qui ajoute des nouveaux patterns — évite l'accumulation de quasi-doublons |
| Merge (Fusionner) | Fusion transactionnelle : union historical_instances, somme backtest hits, remapping de 6 tables enfants | Quand Find Similar retourne "merge_as_instance" — ne jamais fusionner des directions opposées |
| Éditeur complet | Modifier name, description, triggers, expected_move_pct, trades suggérés, historical_instances | Pour corriger un pattern généré par l'IA qui contient des erreurs de libellé ou de paramètres |
| Suggestion IA manuelle | Déclenche le prompt suggest_patterns à la demande (hors cycle) | Quand le marché évolue significativement en intra-journée et qu'on veut de nouvelles idées immédiatement |
| Vue grille / liste | Grille : aperçu rapide de nombreux patterns. Liste : détail complet avec toutes les métriques visibles | Grille pour le matin (scan rapide) · Liste pour la décision finale d'un trade |
NO DATA (ni prix d'entrée ni prix actuel disponible), NO ENTRY (prix d'entrée absent), NO LIVE (prix actuel non récupéré). Signale que le monitoring MtM est impossible pour ce trade.Chaque étape du cycle automatique est documentée ici avec ses formules, données entrantes, et sorties — aucun calcul masqué, aucune boîte noire.
+ +Simulation d'un trade Bull Call Spread WTI du cycle du 23 juin 2026. Chaque valeur est calculable à la main.
+ +| Article âgé de 8h | factor = 0.630 | −37% vs brut |
| Article âgé de 24h | factor = 0.250 | −75% |
| Article âgé de 48h | factor = 0.063 | −94% (plancher 0.30 appliqué) |
| Stagflation | 72 pts — DOMINANT ✓ | Brent↑, Or↑, courbe plate, cuivre↓ |
| Choc Inflationniste | 58 pts | Écart <15pts → résistance au switch |
| Récession | 43 pts | Courbe inversée mais VIX encore modéré |
| Goldilocks | 21 pts | S&P200j OK mais VIX élevé |
| P1 — News & Géo (max 30) | |
| geo (max 12) | 10 — 3 articles OPEC/Russie pertinents |
| eco/macro (max 10) | 8 — Stagflation bullish+ énergie |
| volume/récence (max 8) | 5 — 2 articles >6h (decay actif) |
| P1 Total → 23/30 | ✓ |
| P2 — Calendrier (max 20) | |
| banques centrales (max 10) | 6 — BCE dans 8j |
| macro releases (max 10) | 7 — EIA dans 2j (catalyseur proche) |
| P2 Total → 13/20 | ✓ |
| P3 — Prix multi-actifs (max 35) | |
| énergie/commod (max 7) | 7 — WTI+2.3%, OVX=42 modéré |
| taux & bonds (max 7) | 5 — TLT stable |
| forex (max 7) | 4 — DXY neutre |
| indices (max 7) | 4 — XLE+1.8% |
| VIX/IV (max 7) | 5 — VIX=18, SKEW=122 |
| P3 Total → 25/35 | ✓ |
| P4 — Risk/Reward (max 15) | |
| asymétrie R/R (max 10) | 8 — spread risque défini |
| timing (max 5) | 4 — EIA dans 2j |
| P4 Total → 12/15 | ✓ |
pattern_score_history, l'EV dans trade_entry_prices, les raisons du skipped dans skipped_trades, les traces GPT dans ai_reasoning_traces. La page Cycle Report restitue l'intégralité du raisonnement après chaque cycle.
+Les Specialist Desks modélisent la réalité d'un hedge fund multi-stratégies où chaque desk (forex, metals, agri, énergie, indices, crypto, obligations) a une culture, des drivers et des rapports critiques spécifiques que le trader généraliste ne connaît pas par défaut.
+ +Trois tables nouvelles créées en Phase 6 :
+ +| Table | Rôle | Colonnes clés |
|---|---|---|
asset_class_configs | Configuration par desk (7 desks) | asset_class, display_name, icon, fundamentals (TEXT libre), macro_sensitivity (JSON), price_delta_thresholds (JSON) |
specialist_reports | Catalogue de rapports (manuel + auto) | id, name, source, cadence, next_date, importance (1–3), notes |
report_desk_links | Liaison N:N reports ↔ desks | report_id, asset_class |
7 desks pré-configurés au démarrage :
+| Desk | Drivers fondamentaux (exemples) | Rapports liés par défaut |
|---|---|---|
| 💱 Forex | Divergence politique monétaire, différentiel de taux, flux carry trade, balance des paiements | FOMC, ECB, BOJ, NFP, CPI |
| 🥇 Metals | Dollar index, tensions géopolitiques, demande EM, production minière, inflation réelle | COT, CPI |
| 🌾 Agri | Météo, USDA stocks, cycles de plantation, demande Chine, subventions gouvernementales | WASDE, COT, China PMI, USDA Export Inspections |
| ⚡ Energy | OPEC+, inventaires pétrole, demande transport, géopolitique Moyen-Orient, USD | EIA Petroleum, Baker Hughes Rig Count, COT |
| 📊 Indices | Earnings saison, Fed policy, rotation sectorielle, VIX, buybacks | FOMC, NFP, CPI, Earnings |
| ₿ Crypto | Régulation, adoption institutionnelle, flux ETF, halving BTC, risque on/off | VIX (proxy risk-off) |
| 📉 Bonds | Politique monétaire, inflation anticipée, pente de courbe, qualité de crédit | FOMC, ECB, BOJ, CPI, NFP |
Le bloc Specialist Desks est injecté à deux endroits du pipeline :
+ +| Prompt | Asset classes injectées | Contenu par desk |
|---|---|---|
score_patterns_with_context | Uniquement les asset classes présentes dans les patterns scorés ce cycle | Fondamentaux (≤300 chars), macro sensitivity (4 pairs régime→effet), price thresholds, 5 prochains rapports planifiés |
suggest_patterns_from_market_context | Tous les 7 desks systématiquement | Identique — permet à l'IA de générer des suggestions sur tous les desks même si aucun pattern existant ne les couvre |
Format du bloc injecté dans le prompt (exemple desk Agri) :
+Après chaque cycle, l'IA peut ajouter des patterns qui recoupent des patterns existants. La feature Find Similar permet de détecter et fusionner ces doublons tout en préservant toutes les données associées.
+ +Endpoint : POST /api/patterns/find-similar
| Recommandation | Condition | Action proposée |
|---|---|---|
merge_as_instance | Même régime + même instrument + même direction | Bouton "Fusionner dans [X]" avec confirmation |
counter_scenario | Même régime + même instrument + direction opposée | Appliquer le regime_tag commun — les deux patterns restent |
new_pattern | Régime ou instrument différent, pas de match structurel | Badge vert "Pattern unique" — rien à faire |
Règle critique : ne jamais fusionner des directions opposées (bullish WTI + bearish WTI = deux scénarios valides du même régime, pas un doublon).
+ +Endpoint : POST /api/patterns/merge — transaction atomique SQLite :
L'expected_move_pct est initialement une estimation de GPT-4o du rendement option (levier inclus) si la thèse est confirmée. Ce n'est pas un calcul de pricing options (pas de Black-Scholes). La calibration progressive remplace progressivement cette estimation par le rendement réellement observé sur les trades matures.
Modèle actuariel de crédibilité (Bühlmann-Straub simplifié) :
+ +Progression du poids observé :
+| n trades matures | Poids observé (w) | Source label | Interprétation |
|---|---|---|---|
| 0 | 0% | Pure AI | 100% estimation IA, aucune donnée réelle |
| 1 | 17% | Early data | Légère influence des données — encore majoritairement IA |
| 3 | 38% | Early data | Données commencent à corriger l'IA |
| 5 | 50% | Mixed | Équilibre parfait IA / observé |
| 10 | 67% | Mixed | Données majoritaires |
| 20 | 80% | Data-driven | IA en fond de correction seulement |
| 50 | 91% | Data-driven | Quasi-entièrement ancré dans le réel |
calibrated_expected_move est le G dans ev_net = p×G − (1−p). Un G trop optimiste (IA pure sur pattern nouveau) surévalue l'EV. Avec 10 trades gagnants observés à 65% en moyenne là où l'IA estimait 95%, le calibré vaut 0.67×65 + 0.33×95 ≈ 75% — l'EV recalculé est 11% plus conservateur. Cela peut faire passer un trade de "loggé" à "skipped" si le profil exige gain ≥ 80%.
+Card PatternExplorer — MaturityBadge :
+Section Calibration dans le Rapport de Cycle :
+Mise à jour automatique : update_bayesian_posteriors() est appelé à la fin de chaque cycle. Il recalcule simultanément les posteriors Beta(α,β) et les valeurs de calibration pour tous les patterns ayant des trades matures.
| Nouvelle colonne custom_patterns | Type | Description |
|---|---|---|
calibrated_expected_move | REAL | Valeur blendée utilisée comme G dans l'EV. NULL si aucun trade gagnant. |
calibration_weight | REAL 0–1 | w = n/(n+5). Stocké pour affichage frontend sans recalcul. |
observed_avg_win_pct | REAL | Moyenne des pnl_pct > 0 sur trades matures. NULL si aucun gain. |