docs: update documentation to v5.0 — Phase 5, 19 pages, IV Gate, Pattern Convergence

Major additions since v4.4:
- Cover/version bump to v5.0 (5 phases, 19 pages)
- Section 1.4: pages table updated 15→19 (VaR Analysis, Position History, Backtest, Calendar, System Logs)
- Step 1 macro engine: 50 signals table (vol surface, sector rotation XLK/XLF/XLP/XLU, EM/carry EEM/EMB/USDJPY, silver, 5 derived metrics)
- New Section 2b: Cycle Context Engine (delta temporal, news decay, context snapshot, FRED, technical indicators by horizon, price discovery, replay, weekend-aware scheduler)
- Section 3: IV Gate (2-level threshold, formula, rationale) + dynamic IV Watchlist (3 types, bootstrap)
- New Section 5b: Pattern Convergence (8 categories, signal_direction, conviction_score, Trade Ideas tab, IBKR ticket auto-calc)
- Section 8: 6 new tables (system_logs, iv_watchlist, context_snapshots, iv_history, pnl_snapshots, var_snapshots) + new columns in existing tables
- Section 9: Journal updated to 7 tabs, guide pages 14–19 (VaR, Position History, Backtest, Calendar, System Logs, Config v5)
- Section 10: 5 new design decisions (IV Gate, watchlist DB, weekend scheduler, indicators by horizon, context snapshot)
- Section 11: 14 new glossary terms (cycle_meta, news decay, IV Gate, signal direction, conviction score, IBKR ticket, DTE, vol surface regime, watchlist dynamique, etc.)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OpenSquared
2026-06-22 09:40:46 +02:00
parent dcbc9f19fc
commit 4423ad91db

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GeoOptions Intelligence — Manuel Complet v4.4</title>
<title>GeoOptions Intelligence — Manuel Complet v5.0</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Georgia', 'Times New Roman', serif; font-size: 10.5pt; line-height: 1.65; color: #1a1a2e; background: #fff; max-width: 960px; margin: 0 auto; padding: 40px 48px; }
@@ -108,10 +108,11 @@ li { margin-bottom: 4px; font-size: 9.5pt; }
<span class="badge badge-p2">Phase 2 · Fiabilité &amp; Calibration</span>
<span class="badge badge-p3">Phase 3 · Portfolio &amp; Risk</span>
<span class="badge badge-p4">Phase 4 · IA Probabiliste</span>
<span class="badge" style="background:#d1fae5;color:#065f46;">Phase 5 · Cycle Context &amp; Intelligence</span>
</div>
<div class="meta">
Version 4.0 · Juillet 2026 · 4 Phases · FastAPI + React + SQLite + GPT-4o<br>
Confidentiel — Usage interne trader uniquement
Version 5.0 · Juin 2026 · 5 Phases · FastAPI + React + SQLite + GPT-4o<br>
19 pages · 50 signaux macro · IV Gate · Pattern Convergence · IBKR Ticket
</div>
</div>
@@ -130,11 +131,20 @@ li { margin-bottom: 4px; font-size: 9.5pt; }
<li><a href="#s2-steps">2.1 Les 9 étapes du cycle (Étapes 08)</a></li>
<li><a href="#s2-gpt">2.2 Exemple de sortie GPT-4o simulée</a></li>
</ul>
<li><a href="#s2b">2b. Phase 5 — Cycle Context Engine (Phases 15)</a></li>
<ul class="toc-list toc-indent">
<li><a href="#s2b-1">2b.1 Phase 1 — Delta Temporel &amp; Decay News</a></li>
<li><a href="#s2b-2">2b.2 Phase 2 — Snapshot Contexte &amp; Releases FRED</a></li>
<li><a href="#s2b-3">2b.3 Phase 3 — Indicateurs Techniques par Horizon</a></li>
<li><a href="#s2b-4">2b.4 Phase 4+5 — Price Discovery &amp; Replay</a></li>
</ul>
<li><a href="#s3">3. Phase 1 — Volatilité Implicite &amp; Structure Marché</a></li>
<ul class="toc-list toc-indent">
<li><a href="#s3-1">3.1 IV Rank &amp; IV Percentile</a></li>
<li><a href="#s3-2">3.2 Term Structure &amp; Skew</a></li>
<li><a href="#s3-3">3.3 Options Flow &amp; Open Interest</a></li>
<li><a href="#s3-4">3.4 IV Gate — Blocage par IVR</a></li>
<li><a href="#s3-5">3.5 Watchlist IV Dynamique</a></li>
</ul>
<li><a href="#s4">4. Phase 2 — Fiabilité &amp; Calibration</a></li>
<ul class="toc-list toc-indent">
@@ -151,6 +161,13 @@ li { margin-bottom: 4px; font-size: 9.5pt; }
<li><a href="#s5-4">5.4 HHI &amp; Score de Diversification</a></li>
<li><a href="#s5-5">5.5 Drawdown attendu</a></li>
</ul>
<li><a href="#s5b">5b. Pattern Convergence Engine</a></li>
<ul class="toc-list toc-indent">
<li><a href="#s5b-1">5b.1 8 Catégories Thématiques</a></li>
<li><a href="#s5b-2">5b.2 Signal Direction &amp; Conviction Score</a></li>
<li><a href="#s5b-3">5b.3 Trade Ideas — Onglet Journal</a></li>
<li><a href="#s5b-4">5b.4 IBKR Ticket Auto-Calculé</a></li>
</ul>
<li><a href="#s6">6. Phase 4 — IA Probabiliste &amp; Apprentissage</a></li>
<ul class="toc-list toc-indent">
<li><a href="#s6-1">6.1 Mise à jour Bayésienne</a></li>
@@ -227,26 +244,30 @@ li { margin-bottom: 4px; font-size: 9.5pt; }
<strong>IA :</strong> GPT-4o (modèle principal), GPT-4o-mini (résumés rapides, 5x moins cher)
</div>
<h3 id="s1-4">1.4 Les 15 Pages du Cockpit</h3>
<h3 id="s1-4">1.4 Les 19 Pages du Cockpit</h3>
<table>
<thead><tr><th>#</th><th>Page</th><th>Description</th><th>Fréquence d'usage</th></tr></thead>
<tbody>
<tr><td>1</td><td><strong>Dashboard</strong></td><td>Vue synthétique : KPIs macro, dernière analyse IA, signaux marché du jour</td><td>Plusieurs fois/jour</td></tr>
<tr><td>2</td><td><strong>Radar Géopolitique</strong></td><td>Carte interactive des tensions mondiales par région, score géo global 0100</td><td>Quotidien</td></tr>
<tr><td>3</td><td><strong>Marchés</strong></td><td>Prix temps réel : actions, ETF, matières premières, crypto, forex avec variations</td><td>Quotidien</td></tr>
<tr><td>4</td><td><strong>Régime Macro</strong></td><td>État actuel (Expansion/Stagflation/Récession/Stress Géo), scores, historique</td><td>Hebdomadaire</td></tr>
<tr><td>5</td><td><strong>Options Lab</strong></td><td>IV Rank, IV Percentile, Term Structure, Skew, Open Interest pour tous tickers</td><td>Avant chaque trade</td></tr>
<tr><td>6</td><td><strong>Patterns IA</strong></td><td>Suggestions du cycle en cours avec scores, tailles Kelly, contre-thèses</td><td>À chaque cycle (6h)</td></tr>
<tr><td>7</td><td><strong>Portefeuille</strong></td><td>Positions ouvertes, P&L, concentration, alertes risque cluster</td><td>Quotidien</td></tr>
<tr><td>8</td><td><strong>Journal de Bord</strong></td><td>Trades ouverts (MtM + alertes cible/stop) · Trades fermés (P&L réalisé, win rate) · <strong>Risque Sim.</strong> (conflits directionnels, concentration par classe d'actif, recommandations IA) · Fermeture 1-clic avec motif</td><td>Quotidien</td></tr>
<tr><td>9</td><td><strong>Rapport IA</strong></td><td>Texte complet de la dernière analyse GPT-4o, raisonnement visible</td><td>À chaque cycle</td></tr>
<tr><td>10</td><td><strong>Super Contexte</strong></td><td>Texte narratif enrichi injecté dans le méga-prompt : patterns matures, historique récent</td><td>Lecture mensuelle</td></tr>
<tr><td>11</td><td><strong>Analytics</strong></td><td>Win rate par pattern, PnL cumulé, distribution des scores, calibration Brier</td><td>Mensuel</td></tr>
<tr><td>12</td><td><strong>Analytics Avancées</strong></td><td>Clustering K-Means, matrices de transition, embeddings, déduplications sémantiques</td><td>Mensuel</td></tr>
<tr><td>13</td><td><strong>Risk Dashboard</strong></td><td>HHI, drawdown attendu, alertes concentration facteur, Kelly par position</td><td>Avant chaque trade</td></tr>
<tr><td>14</td><td><strong>Config</strong></td><td>Paramètres système : seuils Kelly, capital, intervalles cycle, clé API, tickers · Objectif de gain/stop-loss par défaut (exit defaults)</td><td>Initial + rare</td></tr>
<tr><td>15</td><td><strong>Knowledge Base</strong></td><td>Base de patterns manuels, demi-vie, tags géopolitiques, édition directe</td><td>Mensuel</td></tr>
<tr><td>1</td><td><strong>Dashboard (Cockpit)</strong></td><td>Vue synthétique : KPIs macro, ticker IBKR, dernière analyse IA, signaux marché, Top trades, patterns récents, macro regime jauges</td><td>Plusieurs fois/jour</td></tr>
<tr><td>2</td><td><strong>Geopolitical Radar</strong></td><td>Flux RSS enrichi IA : score géo 0100, flèches directionnelles par classe d'actif, badge contre-signal, pertinence pattern</td><td>Quotidien</td></tr>
<tr><td>3</td><td><strong>Markets &amp; Prices</strong></td><td>Prix temps réel : actions, ETF, matières premières, forex avec graphiques 5D/1M/3M/6M/1Y/2Y</td><td>Quotidien</td></tr>
<tr><td>4</td><td><strong>Macro Regime</strong></td><td>50 signaux institutionnels · 8 scénarios · vol surface (SKEW/VVIX) · rotation sectorielle · EM/carry · scores lissés Bayésiens</td><td>Hebdomadaire</td></tr>
<tr><td>5</td><td><strong>Options Lab</strong></td><td>IV Rank, Term Structure, Skew, watchlist dynamique (builtin/auto/manuel), IV Gate, bootstrap 1 an</td><td>Avant chaque trade</td></tr>
<tr><td>6</td><td><strong>Patterns (Editor)</strong></td><td>Bibliothèque patterns : filtres classe d'actif · tri Score IA/Date/Prob · vue grille/liste · suggestion IA · éditeur complet</td><td>À chaque cycle</td></tr>
<tr><td>7</td><td><strong>Portfolio</strong></td><td>Positions ouvertes IBKR avec valorisation Black-Scholes, grecs live, alertes cluster, P&amp;L consolidé</td><td>Quotidien</td></tr>
<tr><td>8</td><td><strong>Trading Journal</strong></td><td>7 onglets : <em>AI Cycles · Macro Regimes · Trade Ideas · Open (MtM) · Closed · Geo Alerts · Not Logged</em> — fermeture 1-clic, ticker IBKR</td><td>Quotidien</td></tr>
<tr><td>9</td><td><strong>Cycle Report</strong></td><td>Rapport auto-généré à chaque cycle : raisonnement IA, delta vs cycle précédent, snapshot PnL/VaR, signaux déterminants, validation technique</td><td>À chaque cycle</td></tr>
<tr><td>10</td><td><strong>Super Context</strong></td><td>Base de connaissances évolutive injectée dans le méga-prompt : synthèse GPT-4o, entrées KB validées par catégorie</td><td>Lecture mensuelle</td></tr>
<tr><td>11</td><td><strong>Analytics</strong></td><td>Win rate par pattern, calibration Brier, score fiabilité, analyse par régime</td><td>Mensuel</td></tr>
<tr><td>12</td><td><strong>Advanced Analytics</strong></td><td>Bayésien par pattern, clustering K-Means, matrice transition, embeddings sémantiques</td><td>Mensuel</td></tr>
<tr><td>13</td><td><strong>Risk Dashboard</strong></td><td>HHI, drawdown attendu, alertes concentration facteur, mode Réel/Simulé, courbe P&amp;L cumulée, corrélations patterns</td><td>Avant chaque trade</td></tr>
<tr><td>14</td><td><strong>VaR Analysis</strong></td><td>Value at Risk delta Black-Scholes : historique / paramétrique / Monte Carlo stressé · Kupiec backtest · rolling VaR 30j</td><td>Hebdomadaire</td></tr>
<tr><td>15</td><td><strong>Position History</strong></td><td>Snapshots PnL horodatés · diff A/B entre deux snapshots · sparkline évolution · colonnes Entrée/Prix actuel</td><td>Hebdomadaire</td></tr>
<tr><td>16</td><td><strong>Backtest</strong></td><td>Simulation historique par stratégie/sous-jacent/période · courbe d'équité · win rate · table derniers trades</td><td>Mensuel</td></tr>
<tr><td>17</td><td><strong>Calendar</strong></td><td>Calendrier macro-économique (NFP, CPI, FOMC) + alertes géopolitiques + fenêtres d'opportunité options</td><td>Hebdomadaire</td></tr>
<tr><td>18</td><td><strong>System Logs</strong></td><td>Logs structurés de tous les événements système (cycle, erreurs, IA calls) · filtre par source/niveau · AI Context tab avec replay de cycle</td><td>Debug / audit</td></tr>
<tr><td>19</td><td><strong>Configuration</strong></td><td>Capital, Kelly fraction, IV Gate thresholds, exit defaults (target/stop), paramètres indicateurs techniques, clé OpenAI, watchlist tickers</td><td>Initial + trimestriel</td></tr>
</tbody>
</table>
@@ -298,8 +319,20 @@ li { margin-bottom: 4px; font-size: 9.5pt; }
</div>
<div class="step-block">
<div class="step-num">Étape 1 — Calcul du Régime Macro</div>
<p><strong>Input :</strong> ~50 indicateurs de marché (yfinance batch) couvrant 6 blocs : Liquidité, Crédit, Énergie, Métaux, Croissance, Dérivés.</p>
<div class="step-num">Étape 1 — Calcul du Régime Macro (50 Signaux Institutionnels)</div>
<p><strong>Input :</strong> 50 signaux de marché (yfinance batch, ThreadPoolExecutor 20 workers) couvrant 6 blocs + 5 métriques dérivées :</p>
<table class="sim-table" style="font-size:8.5pt;">
<thead><tr><th>Bloc</th><th>Tickers principaux</th><th>Nouveaux signaux v5.0</th></tr></thead>
<tbody>
<tr><td><strong>💧 Liquidité mondiale</strong></td><td>DXY, UST3M, UST10Y, TLT, TIPS (TIP), Pente 10Y-3M</td><td>TLT (long bonds), EM bond (EMB)</td></tr>
<tr><td><strong>⚡ Crédit &amp; Stress</strong></td><td>HYG, VIX, LQD, IEF</td><td>VVIX (vol de vol), SKEW (tail risk)</td></tr>
<tr><td><strong>🛢 Énergie</strong></td><td>Brent (BZ=F), Gaz naturel (NG=F)</td><td>OVX (crude vol), GVZ (gold vol)</td></tr>
<tr><td><strong>🥇 Métaux stratégiques</strong></td><td>Or (GLD), Cuivre (HG=F)</td><td>Argent (SLV), ratio Argent/Or</td></tr>
<tr><td><strong>🌍 Croissance mondiale</strong></td><td>S&amp;P 500 (SPY vs MA200)</td><td>EEM (marchés émergents), FXI (Chine), USDJPY (carry)</td></tr>
<tr><td><strong>📊 Rotation sectorielle</strong></td><td></td><td>XLK (tech), XLF (finance), XLP (consommation), XLU (utilities)</td></tr>
</tbody>
</table>
<p><strong>Métriques dérivées calculées :</strong> <code>silver_gold_ratio</code> (appétit spéculatif vs refuge), <code>xlk_xlp_momentum</code> (risk-on/off sectoriel), <code>xlf_spx_ratio</code> (leadership finance), <code>eem_spx_ratio</code> (risque EM), <code>vol_surface_regime</code> (classification composite : calm / elevated_vol / extreme_skew / backwardation_stress).</p>
<p><strong>Algorithme en 3 couches :</strong></p>
<p><strong>Couche 1 — Signaux multi-périodes (anti-bruit) :</strong> Chaque variation est un blend pondéré pour éliminer le bruit intraday.</p>
<div class="formula-box">
@@ -533,6 +566,85 @@ final_relevance = clamp(base_relevance + ai_alignment, 0, 100)
<div class="page-break"></div>
<!-- SECTION 2b -->
<h2 id="s2b">2b. <span class="badge" style="background:#d1fae5;color:#065f46;">Phase 5</span> — Cycle Context Engine</h2>
<p>La Phase 5 regroupe cinq sous-phases qui enrichissent le contexte transmis à l'IA à chaque cycle, passant d'un prompt statique à un contexte temporellement conscient, calibré par les indicateurs techniques et les données macro institutionnelles.</p>
<h3 id="s2b-1">2b.1 Phase 1 — Delta Temporel &amp; Decay News</h3>
<p>À chaque cycle, le système calcule un <strong>cycle_meta</strong> : métadonnées temporelles injectées dans tous les prompts IA pour que GPT-4o sache "où il en est" dans la journée et la semaine.</p>
<div class="formula-box">
cycle_meta = {
hours_since_last_cycle : heures depuis le cycle précédent complété
completed_cycles_today : nombre de cycles finalisés dans les 24h
cycle_number_today : numéro du cycle actuel (1er, 2e, 3e…)
market_session : "pre_market" | "regular" | "after_hours" | "weekend"
}
</div>
<div class="callout blue">
<div class="label">Utilité dans le prompt</div>
Si <code>hours_since_last_cycle = 18</code>, l'IA sait qu'il y a eu une longue pause et doit réévaluer les thèses depuis zéro. Si <code>hours_since_last_cycle = 6</code>, elle peut se concentrer sur les nouvelles marginales. Si <code>market_session = "pre_market"</code>, elle privilégie les stratégies d'ouverture.
</div>
<p><strong>Decay des news par ancienneté :</strong> <code>_partition_news_by_age()</code> divise les news en deux buckets. Les news récentes (&lt;6h) reçoivent un poids plein. Les news "aged" (624h) voient leur impact_score multiplié par un facteur de déclin, évitant que des nouvelles de la veille dominent le contexte.</p>
<div class="formula-box">
decay_factor(age_hours) = max(0.3, 1.0 - 0.07 × (age_hours - 6))
Exemple :
news à 6h → decay = 1.00 (poids plein)
news à 10h → decay = 0.72
news à 18h → decay = 0.16
news à 24h → decay = 0.30 (plancher — jamais complètement ignorée)
</div>
<h3 id="s2b-2">2b.2 Phase 2 — Snapshot Contexte &amp; Releases FRED</h3>
<p>À la fin de chaque cycle, un snapshot complet du contexte transmis à l'IA est persisté dans la table <code>context_snapshots</code>. Ce snapshot enregistre : l'état exact du méga-prompt, les news transmises, les indicateurs macro, les patterns sélectionnés et le cycle_meta. Il est consultable dans l'onglet <strong>AI Context</strong> de la page System Logs avec un bouton "Replay this cycle" qui reporte exactement les conditions d'entrée du cycle historique.</p>
<div class="callout amber">
<div class="label">Releases FRED intégrées</div>
Le système surveille les publications macro institutionnelles (NFP, CPI, FOMC) via le calendrier économique. Quand une release majeure est attendue dans les 48h, une note est ajoutée au cycle_meta : <code>"⚠ CPI release in 6h — elevated vol probable"</code>. GPT-4o reçoit ce signal et peut ajuster ses suggestions vers des stratégies de vol (straddles) ou réduire les positions directionnelles.
</div>
<h3 id="s2b-3">2b.3 Phase 3 — Indicateurs Techniques par Horizon</h3>
<p>Pour chaque pattern suggéré, un agent technique calcule les indicateurs calibrés selon l'horizon de l'option (horizon_days). La logique d'adaptation :</p>
<div class="formula-box">
horizon ≤ 30 jours → RSI14, MA20, MA50, Bollinger 20
horizon ≤ 90 jours → RSI21, MA50, MA100
horizon > 90 jours → RSI28, MA100, MA200
Signal RSI :
RSI &lt; 30 → "oversold — reversal likely"
RSI &gt; 70 → "overbought — caution on longs"
RSI 4555 → "neutral — momentum absent"
Signal Bollinger (20 périodes, 2σ) :
Prix &gt; bande sup → "upper band breakout — momentum"
Prix &lt; bande inf → "below lower band — potential bounce"
Prix entre bandes → "range-bound"
</div>
<p>Ces signaux sont injectés dans la section "Validation Technique" du prompt de scoring, permettant à GPT-4o de downranker un pattern bullish dont le sous-jacent est déjà en zone de surachat (RSI28 &gt; 70 pour horizon 90j).</p>
<h3 id="s2b-4">2b.4 Phase 4+5 — Price Discovery &amp; Replay Historique</h3>
<p><strong>Price Discovery (Phase 4) :</strong> Le système détecte si le prix d'entrée utilisé pour chaque trade est "frais" (<code>entry_price_fresh = True</code> si récupéré dans les 30 dernières minutes) ou estimé (prix de clôture J-1). Ce flag est affiché dans l'onglet Ouverts du Journal comme badge <code>⚠ ENTRY STALE</code> et transmis à l'IA dans le contexte de scoring.</p>
<p><strong>Replay Historique (Phase 5) :</strong> Depuis l'onglet AI Context de System Logs, le trader peut sélectionner un snapshot de cycle passé et cliquer "Replay this cycle" pour re-exécuter le méga-prompt avec exactement le contexte du moment historique (même news, même macro, même régime). Utile pour comprendre pourquoi l'IA a suggéré telle stratégie à tel moment, ou pour tester une modification de prompt sur des données passées.</p>
<div class="callout green">
<div class="label">Scheduler Weekend-Aware</div>
Le cycle automatique (APScheduler) ne tourne pas les samedi et dimanche — les marchés options sont fermés. Les heures de cycle sont configurables dans Config (défaut : 02:00, 08:00, 14:00, 20:00 UTC). Cette logique évite les appels API inutiles et les suggestions sur des données de vendredi soir considérées comme "live".
</div>
<div class="page-break"></div>
<!-- SECTION 3 -->
<h2 id="s3">3. <span class="badge badge-p1">Phase 1</span> — Volatilité Implicite &amp; Structure Marché</h2>
@@ -712,6 +824,50 @@ Long Gamma Dealer (Gamma &gt; 0) :
En période de gamma short (dealers court gamma), les mouvements de marché de ±1% peuvent rapidement devenir ±3%. C'est pourquoi les options sont soudainement sous-évaluées juste avant un mouvement violent — le marché n'anticipe pas l'amplification mécanique du dealer hedging.
</div>
<h3 id="s3-4">3.4 IV Gate — Blocage par IVR</h3>
<p>L'IV Gate est un filtre dur qui bloque ou pénalise les trades avant leur log dans le cycle, selon l'IV Rank du sous-jacent au moment de la suggestion. Il opère sur deux niveaux :</p>
<table>
<thead><tr><th>Condition</th><th>Action</th><th>Seuil défaut</th></tr></thead>
<tbody>
<tr><td>IVR &gt; <code>ivGateHigh</code></td><td>ALERT — warning sur le pattern, taille Kelly réduite ×0.7</td><td>60%</td></tr>
<tr><td>IVR &gt; <code>ivGateExtreme</code> pour strategies d'achat de vol (Long Call, Long Put, Straddle)</td><td>BLOCKED — le pattern n'est pas logué. Affiché en rouge dans Trade Ideas.</td><td>80%</td></tr>
<tr><td>IVR &gt; <code>ivGateExtreme</code> pour Straddle/Strangle</td><td>ALERT automatique — pénalité multiplicateur ×1.3 sur le coût estimé</td><td>80%</td></tr>
</tbody>
</table>
<div class="formula-box">
Décision IV Gate :
if strategy in ("long_call", "long_put", "straddle", "long_straddle"):
if ivr > ivGateExtreme → BLOCKED
elif ivr > ivGateHigh → ALERT (taille ×0.7)
elif strategy in ("straddle", "strangle"):
if ivr > ivGateExtreme → ALERT (coût estimé ×1.3)
</div>
<div class="callout amber">
<div class="label">Rationale</div>
Acheter un long straddle avec IVR = 85% signifie payer la volatilité dans le 85ème percentile annuel de son historique. La probabilité de mean reversion est élevée — le temps travaille contre la position dès l'entrée. Le Gate ne bloque pas les strategies de <em>vente</em> de vol (short strangle, iron condor) qui bénéficient au contraire d'un IVR élevé.
</div>
<p>Les seuils sont configurables dans Config → onglet <em>Options — Parameters</em> avec des curseurs visuels. Deux seuils distincts : <strong>IVR Alert</strong> (jaune, avertissement) et <strong>IVR Extreme</strong> (rouge, blocage).</p>
<h3 id="s3-5">3.5 Watchlist IV Dynamique</h3>
<p>La watchlist IV est stockée en base de données (table <code>iv_watchlist</code>) et non plus hardcodée. Elle supporte 3 types de tickers :</p>
<table>
<thead><tr><th>Type</th><th>Couleur badge</th><th>Source</th><th>Bootstrap auto</th></tr></thead>
<tbody>
<tr><td><strong>Builtin</strong></td><td>Gris</td><td>18 tickers préconfigurés à l'initialisation (GLD, SPY, XLE, TLT…)</td><td>Non (déjà bootstrappés)</td></tr>
<tr><td><strong>Auto</strong></td><td>Bleu</td><td>Détectés automatiquement par le cycle : nouveaux <code>underlying</code> dans les suggestions IA non encore en watchlist</td><td>Oui — 1 an d'historique en background</td></tr>
<tr><td><strong>Manual</strong></td><td>Vert</td><td>Ajoutés manuellement par le trader via le WatchlistManager dans Options Lab</td><td>Oui — 1 an d'historique en background</td></tr>
</tbody>
</table>
<p>L'ajout d'un ticker déclenche immédiatement un bootstrap en arrière-plan (1 an de données yfinance pour l'IV historique). Une fois bootstrappé, l'IV Rank devient fiable. Avant bootstrap : affiché en orange avec mention <em>"Insufficient IV history"</em>.</p>
<div class="page-break"></div>
<!-- SECTION 4 -->
@@ -1003,6 +1159,99 @@ Seuil d'alerte Risk Committee : &gt; 25% → ici 16.4% = zone acceptable
<div class="page-break"></div>
<!-- SECTION 5b -->
<h2 id="s5b">5b. Pattern Convergence Engine</h2>
<p>Le Pattern Convergence Engine enrichit chaque suggestion IA avec une direction de signal et un score de conviction calculés par convergence multi-source (géopolitique + macro + technique). Il alimente l'onglet <strong>Trade Ideas</strong> du Trading Journal.</p>
<h3 id="s5b-1">5b.1 Les 8 Catégories Thématiques</h3>
<p>Chaque pattern et chaque trade idea est classé dans l'une des 8 catégories signal et 8 catégories de déclencheur :</p>
<table>
<thead><tr><th>Catégorie signal</th><th>Description</th><th>Exemples de patterns typiques</th></tr></thead>
<tbody>
<tr><td>⚔️ <strong>Military</strong></td><td>Escalades militaires, conflits armés, déploiements de forces</td><td>Middle East Military Escalation, Taiwan Strait Tensions</td></tr>
<tr><td>🚫 <strong>Sanctions</strong></td><td>Sanctions économiques, embargos, restrictions de commerce</td><td>Russia Energy Sanctions, Iran Oil Embargo</td></tr>
<tr><td>🗳️ <strong>Elections</strong></td><td>Élections majeures, changements de pouvoir, instabilité politique</td><td>US Election Volatility, EM Political Risk</td></tr>
<tr><td>🌪️ <strong>Disaster</strong></td><td>Catastrophes naturelles, disruptions infrastructure critique</td><td>Gulf Hurricane Season, Earthquake Supply Chain</td></tr>
<tr><td>🏥 <strong>Health</strong></td><td>Crises sanitaires, pandémies, disruptions pharmaceutiques</td><td>Pandemic Risk Premium, Pharma Supply Squeeze</td></tr>
<tr><td>⚠️ <strong>Resources</strong></td><td>Pénuries matières premières, disruptions supply chain, pricing power</td><td>Copper Scarcity, LNG Supply Crunch</td></tr>
<tr><td>🤝 <strong>Trade</strong></td><td>Guerres commerciales, tarifs, accords bilatéraux</td><td>US-EU Trade Tensions, ASEAN Trade Realignment</td></tr>
<tr><td>💬 <strong>Speech</strong></td><td>Discours de banquiers centraux, déclarations politiques, Fed pivots</td><td>Fed Hawkish Surprise, ECB Pivot Signal</td></tr>
</tbody>
</table>
<h3 id="s5b-2">5b.2 Signal Direction &amp; Conviction Score</h3>
<p>Chaque pattern reçoit un <strong>signal_direction</strong> et un <strong>conviction_score</strong> calculés à l'issue du scoring IA :</p>
<div class="formula-box">
signal_direction : "bullish" | "bearish" | "volatility" | "neutral"
bullish → expected_move &gt; 0 et stratégie directionnelle haussière
bearish → expected_move &lt; 0 et stratégie directionnelle baissière
volatility → straddle / strangle / long vol — parie sur l'amplitude, pas la direction
neutral → iron condor / calendar spread — range-bound
conviction_score (0100) :
= (score_ia / 100 × 40) — poids score IA
+ (alignment_score / 25 × 30) — poids alignement news IA
+ (reliability_score / 3 × 20) — poids fiabilité historique
+ (tech_confirmation × 10) — bonus si RSI + MA confirment
</div>
<table class="sim-table">
<thead><tr><th>Pattern</th><th>Direction</th><th>Conviction</th><th>Score IA</th><th>Alignement</th><th>Fiabilité</th></tr></thead>
<tbody>
<tr><td>US-Iran Diplomatic Shift</td><td>📊 Volatility</td><td class="val-green">78</td><td>60</td><td>+18</td><td>2.27</td></tr>
<tr><td>Iran Strait Tensions</td><td>🐂 Bullish</td><td class="val-green">71</td><td>60</td><td>+12</td><td>1.87</td></tr>
<tr><td>China Economic Slowdown</td><td>🐻 Bearish</td><td class="val-amber">55</td><td>55</td><td>-5</td><td>1.04</td></tr>
<tr><td>Fed Hawkish Surprise</td><td>🐻 Bearish</td><td class="val-amber">50</td><td>55</td><td>+0</td><td>0.55</td></tr>
</tbody>
</table>
<h3 id="s5b-3">5b.3 Trade Ideas — Onglet Journal</h3>
<p>L'onglet <strong>Trade Ideas</strong> du Trading Journal présente les suggestions du dernier cycle scorées, avec des filtres avancés :</p>
<ul>
<li><strong>Filtre classe d'actif</strong> — ⚡ Energy · 🥇 Metals · 🌾 Agri · 📈 Equities · 📊 Indices · 💱 Forex</li>
<li><strong>Filtre thématique</strong> — ⚔️ Geopo · 🏦 Macro · 📐 Technical · 🛢 Supply · 🌩 Risk-off · 💸 Flows · 🌐 Geo-eco · 💳 Credit</li>
<li><strong>Top N</strong> — Top 5 / 10 / 20 / All avec tri par conviction score</li>
<li><strong>Score patterns</strong> — bouton qui relance le scoring IA sur les patterns du cycle actuel</li>
</ul>
<p>Chaque ligne affiche : pattern name · signal_direction badge · stratégie · score IA · EV + move + max/target · profil de risque · alignement macro · date d'entrée · durée barre visuelle. Un bouton 🔍 ouvre le détail complet et un bouton 🔒 loggue le trade directement.</p>
<h3 id="s5b-4">5b.4 IBKR Ticket Auto-Calculé</h3>
<p>Pour chaque trade idea ou trade ouvert dans le Journal MtM, le système génère automatiquement un ticket Interactive Brokers avec tous les paramètres pré-remplis :</p>
<div class="example-box">
<div class="ex-header">Exemple — Ticket IBKR pour "US-Iran Diplomatic Shift → Long Straddle ^GSPC"</div>
<div class="ex-body" style="font-family:'Courier New',monospace;font-size:8.5pt;line-height:1.8;">
UNDERLYING : ^GSPC (S&amp;P 500)<br>
STRIKE : $7,500 (ATM — calculé depuis prix spot au moment du trade)<br>
EXPIRY : 2026-09-19 (vendredi le plus proche à 90 jours)<br>
<br>
LEG 1 : BUY 1 CALL $7,500 · 2026-09-19 · LIMIT<br>
LEG 2 : BUY 1 PUT $7,500 · 2026-09-19 · LIMIT<br>
<br>
BUDGET : 1,000€ / 2 legs = 500€ par leg (budget Kelly calculé)<br>
TARGET : +30% (config exit default)<br>
ORDER TYPE : LIMIT (jamais market)
</div>
</div>
<p>Le <strong>strike ATM</strong> est calculé à partir du prix spot le plus récent. L'<strong>expiry</strong> est le vendredi le plus proche de <code>today + horizon_days</code>. Ce ticket est affiché dans le Dashboard (card Latest Logged Trades) et dans l'onglet Open du Journal en expand d'un trade. Il ne déclenche aucune exécution — copier-coller dans TWS.</p>
<div class="callout blue">
<div class="label">Colonnes Strike et DTE dans le Journal MtM</div>
L'onglet Open du Journal affiche deux colonnes supplémentaires : <strong>Strike</strong> (guidance ATM calculée à l'entrée) et <strong>DTE</strong> (jours restants avant expiration, calculé en temps réel). Ces colonnes permettent de voir en un coup d'œil si le trade approche de l'expiration et si le strike a de la valeur.
</div>
<div class="page-break"></div>
<!-- SECTION 6 -->
<h2 id="s6">6. <span class="badge badge-p4">Phase 4</span> — IA Probabiliste &amp; Apprentissage</h2>
@@ -1344,10 +1593,30 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<tr><td><code>bayesian_estimates</code></td><td>pattern_id, alpha, beta, prior_gpt, posterior_mean, posterior_ic95_low, posterior_ic95_high, n_updates, last_updated</td><td>Posteriors bayésiens par pattern — le cœur de l'apprentissage</td></tr>
<tr><td><code>regime_clusters</code></td><td>timestamp, cluster_id, cluster_label, centroid_json, features_json, distance_to_centroid, is_anomaly</td><td>Historique du clustering K-Means avec coordonnées</td></tr>
<tr><td><code>brier_tracking</code></td><td>cycle_id, pattern_id, predicted_proba, actual_outcome, brier_contrib, bucket</td><td>Données brutes pour calcul du score de Brier</td></tr>
<tr><td><code>config</code></td><td>key, value, description, updated_at</td><td>Paramètres système (seuils Kelly, capital, demi-vie KB)</td></tr>
<tr><td><code>config</code></td><td>key, value, description, updated_at</td><td>Paramètres système (seuils Kelly, capital, demi-vie KB, IV Gate thresholds)</td></tr>
</tbody>
</table>
<h3>Groupe 5 — Phase 5 (Cycle Context &amp; Observabilité) — Nouvelles Tables v5.0</h3>
<table>
<thead><tr><th>Table</th><th>Colonnes Clés</th><th>Rôle</th></tr></thead>
<tbody>
<tr><td><code>system_logs</code></td><td>id, timestamp, level (DEBUG/INFO/WARNING/ERROR), source (auto_cycle / portfolio_monitor / iv_engine / scheduler…), cycle_id, ticker, message, details_json</td><td>Journal structuré de tous les événements système. Alimenté par DBLogHandler (tous les WARNING+) et log_system_event() pour les événements manuels. Rétention : purge automatique des entrées &gt;30 jours. Affiché en temps réel dans la page System Logs.</td></tr>
<tr><td><code>iv_watchlist</code></td><td>id, ticker, added_by (builtin/auto/manual), is_active, added_at, last_bootstrapped</td><td>Watchlist des tickers IV dynamique. Remplace la constante hardcodée. Seed initial de 18 tickers builtins. Tickers "auto" ajoutés par le cycle quand il détecte un nouveau sous-jacent dans les suggestions. Bootstrap 1 an déclenché à l'ajout.</td></tr>
<tr><td><code>context_snapshots</code></td><td>id, cycle_id, timestamp, macro_context_json, news_transmitted_json, patterns_scored_json, cycle_meta_json, regime, geo_score, prompt_tokens</td><td>Snapshot complet du contexte transmis à l'IA pour chaque cycle. Permet le replay historique exact depuis l'onglet AI Context de System Logs.</td></tr>
<tr><td><code>iv_history</code></td><td>ticker, date, iv_estimated, iv_rank, iv_percentile, term_structure_json, skew_pts, source (live/bootstrap)</td><td>Historique journalier de l'IV par ticker. Alimenté par le bootstrap initial (1 an) et mis à jour à chaque cycle. Base de calcul pour IV Rank et IV Percentile fiables.</td></tr>
<tr><td><code>pnl_snapshots</code></td><td>id, timestamp, regime, capital_eur, pnl_pct, pnl_eur, open_positions, closed_positions, positions_json</td><td>Snapshots horodatés du P&amp;L total du portefeuille simulé. Alimenté par le scheduler VaR/PnL. Base de la page Position History et de la courbe P&amp;L dans le Dashboard.</td></tr>
<tr><td><code>var_snapshots</code></td><td>id, timestamp, confidence, horizon_days, var_historical, var_parametric, var_monte_carlo, cvar_hist, positions_count, capital_eur, portfolio_json</td><td>Snapshots VaR calculés par le scheduler. Un snapshot par calcul (bouton Compute ou scheduler). Historique consultable dans VaR Analysis.</td></tr>
</tbody>
</table>
<div class="callout blue">
<div class="label">Colonnes ajoutées aux tables existantes (v5.0)</div>
<code>analyses_ia</code> : + <code>signal_direction</code> (bullish/bearish/volatility/neutral), <code>conviction_score</code> (0100), <code>thematic_category</code><br>
<code>trade_entry_prices</code> : + <code>strike_guidance</code> (strike ATM calculé), <code>expiry_days_at_entry</code> (DTE à l'entrée), <code>entry_price_fresh</code> (bool — prix &lt;30min)<br>
<code>knowledge_base</code> : + <code>signal_direction</code>, <code>thematic_category</code>, <code>horizon_days</code>
</div>
<div class="callout blue">
<div class="label">Relations Clés</div>
<code>portfolio.id</code><code>trades.portfolio_id</code> · <code>knowledge_base.id</code><code>pattern_performance.pattern_id</code> · <code>knowledge_base.id</code><code>bayesian_estimates.pattern_id</code> · <code>analyses_ia.id</code><code>brier_tracking.cycle_id</code>
@@ -1404,9 +1673,11 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<p><strong>Regarder en premier :</strong> Alertes de cluster (facteur saturé) en rouge. Puis P&L des positions matures (&gt;60% horizon).</p>
<p><strong>Quand agir :</strong> Position mature en profit +15% → prise de bénéfices partielle. Perte &gt;20% avec trigger d'invalidation détecté → fermer immédiatement.</p>
<h3>Page 8 — Journal de Bord</h3>
<h3>Page 8 — Trading Journal</h3>
<p>Le Journal comporte <strong>6 onglets</strong> : <strong>Cycles IA</strong> · <strong>Régimes Macro</strong> · <strong>Risque Sim.</strong> · <strong>Ouverts</strong> · <strong>Fermés</strong> · <strong>Alertes Géo</strong>.</p>
<p>Le Journal comporte <strong>7 onglets</strong> : <strong>AI Cycles</strong> · <strong>Macro Regimes</strong> · <strong>Trade Ideas</strong> · <strong>Open</strong> · <strong>Closed</strong> · <strong>Geo Alerts</strong> · <strong>Not Logged</strong>.</p>
<p><strong>Onglet Trade Ideas :</strong> Voir section 5b.3 — filtre par classe d'actif + catégorie thématique + Top N. Le ticker IBKR est accessible en expand de chaque ligne.</p>
<p><strong>Onglet Risque Sim. — Surveillance du Portefeuille Simulé :</strong></p>
<ul>
@@ -1457,8 +1728,34 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<p><strong>Regarder en premier :</strong> Alertes rouges (saturation facteur, drawdown élevé). Puis tableau Kelly par position.</p>
<p><strong>Quand agir :</strong> OBLIGATOIREMENT avant toute nouvelle position. Vérifier que l'ajout ne fait pas monter HHI &gt; 0.35 ou un facteur &gt; 50%.</p>
<h3>Page 14 — Config</h3>
<p>Révision trimestrielle : capital total, fraction Kelly, seuils de concentration. Ne jamais modifier le modèle GPT en production sans tester sur un cycle complet.</p>
<h3>Page 14 — VaR Analysis</h3>
<p><strong>Regarder en premier :</strong> Les 3 cartes VaR (Historical / Parametric / Monte Carlo stressé) avec horizon 1d et confiance 95%. La VaR "stressée ×1.5" (Monte Carlo) est le pire cas — viser qu'elle reste en dessous de 2% du capital.</p>
<p><strong>Kupiec Backtest :</strong> Vérifier que le taux de violations réel (jours où la perte dépasse la VaR) reste proche du taux attendu (5% pour confiance 95%). Un taux de violations &gt;10% → le modèle sous-estime le risque → ajuster le lookback ou la volatilité par défaut.</p>
<p><strong>Quand agir :</strong> Rolling VaR en hausse sur 3 semaines consécutives → réduire les positions ouvertes ou augmenter les stops. VaR Monte Carlo &gt; 3% du capital → Risk Committee recommande de ne pas ouvrir de nouveau trade.</p>
<h3>Page 15 — Position History</h3>
<p><strong>Usage :</strong> Comparer l'état du portefeuille simulé à deux instants distincts (A/B diff). Utile pour isoler l'impact d'un cycle IA : quelles positions ont été ajoutées, lesquelles ont été clôturées, quel est l'écart de P&L.</p>
<p><strong>Quand agir :</strong> Si le diff montre des positions fermées automatiquement sans votre action → vérifier les logs système. Si une position "disparaît" entre deux snapshots → bug de cohérence à investiguer dans System Logs.</p>
<h3>Page 16 — Backtest</h3>
<p><strong>Usage :</strong> Tester la performance historique d'une stratégie options sur un sous-jacent et une période donnés. La simulation utilise les données yfinance réelles et calcule le P&L d'une position roulante.</p>
<p><strong>Limites :</strong> Le backtest ne modélise pas les coûts de transaction IBKR ni le slippage. Il simule l'achat à l'ouverture et la vente à l'expiration. Utile pour valider un pattern sur le passé, pas pour projeter le futur.</p>
<h3>Page 17 — Calendar</h3>
<p><strong>Regarder en premier :</strong> Les événements "Major" (rouge ●●●) dans les 7 prochains jours — NFP, CPI, FOMC. Ces événements font monter l'IV dans les 4872h précédentes puis la font s'effondrer après la publication (IV crush).</p>
<p><strong>Opportunity Windows :</strong> Le panneau droit liste des fenêtres d'opportunité options pré-calculées (ex: "Pre-FOMC -3d → Straddle SPY · IV rises ahead of decision"). Ces fenêtres sont statiques — à utiliser comme point de départ, pas comme signal automatique.</p>
<p><strong>Quand agir :</strong> Si un événement Major arrive dans 35 jours ET un pattern directeur sur l'indice est actif → envisager un straddle pour jouer la vol (achat avant event, vente juste avant publication).</p>
<h3>Page 18 — System Logs</h3>
<p><strong>Usage principal :</strong> Diagnostiquer les cycles qui ont échoué, les erreurs API OpenAI, les timeouts yfinance.</p>
<p><strong>Onglet System Logs :</strong> Filtre par <em>Level</em> (WARNING+/ERROR), <em>Source</em> (auto_cycle, iv_engine, portfolio_monitor), <em>Cycle ID</em>, <em>Ticker</em>, et plage de dates. Les lignes rouges = erreurs bloquantes à corriger. Les lignes orange = warnings à surveiller.</p>
<p><strong>Onglet AI Context :</strong> Sélectionner un snapshot de cycle dans la liste de gauche pour voir exactement le contexte transmis à l'IA : macro (21 champs), news transmises (top impact), patterns scorés, cycle_meta. Bouton "Replay this cycle" re-exécute le méga-prompt sur ce contexte historique.</p>
<p><strong>Quand agir :</strong> Si un cycle a produit des suggestions anormales → ouvrir le snapshot correspondant dans AI Context et analyser les inputs (régime? geo score? news dominante?). Si erreur répétée sur un ticker → vérifier si le ticker est retiré ou renommé sur yfinance.</p>
<h3>Page 19 — Configuration</h3>
<p>Révision trimestrielle : capital total, fraction Kelly, seuils de concentration.</p>
<p><strong>Onglet Options — Parameters :</strong> IV Gate thresholds (Alert / Extreme), exit defaults (target % / stop-loss %), indicateurs techniques à activer par horizon, skew threshold pour alertes directionnelles.</p>
<p>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).</p>
<div class="page-break"></div>
@@ -1480,6 +1777,11 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<tr><td><strong>GPT-4o-mini pour prompts simples</strong></td><td>GPT-4o pour tout</td><td>Scoring RSS et surveillance triggers ne nécessitent pas le raisonnement avancé de GPT-4o. GPT-4o-mini = 5× moins cher et suffisant pour classification et correspondance. Économie : ~60% du coût IA total.</td></tr>
<tr><td><strong>Demi-vie KB de 180 jours</strong></td><td>Poids constant, demi-vie 365j</td><td>Les événements géopolitiques ont des cycles de vie naturels. Une crise qui dure &gt; 6 mois soit se normalise soit évolue structurellement. 180 jours = délai médian empirique entre émergence d'un événement géopolitique et intégration dans les prix.</td></tr>
<tr><td><strong>4 régimes macro</strong></td><td>2 régimes (Risk-On/Off), 6 régimes</td><td>2 régimes simplifient trop (ignorent stagflation vs récession = stratégies options radicalement différentes). 6+ régimes = sous-groupes trop petits pour matrices de transition statistiquement significatives. 4 régimes = quadrants classiques macro avec historique suffisant.</td></tr>
<tr><td><strong>IV Gate blocage dur vs warning</strong></td><td>Warning seul / blocage total</td><td>Warning seul = traders ignorent souvent les alertes visuelles sous pression. Blocage total (strategy + IVR &gt; extreme) = trop restrictif, rate des opportunités valides. Deux seuils configurables (Alert / Extreme) permettent de forcer la réflexion sans interdire totalement.</td></tr>
<tr><td><strong>Watchlist IV en DB vs hardcodée</strong></td><td>Liste de constantes Python</td><td>Liste hardcodée = déploiement requis pour ajouter un ticker. DB = ajout en 1 clic depuis l'UI. L'auto-ajout (cycle détecte un nouveau sous-jacent) réduit la maintenance manuelle. Le bootstrap asynchrone évite de bloquer le cycle.</td></tr>
<tr><td><strong>Scheduler weekend-off</strong></td><td>Cycle 6h continu 24/7</td><td>Options expirent vendredi soir. Les marchés rouvrent dimanche soir (futures) mais les options classiques ne tradent pas le weekend. Cycles weekend = appels API inutiles sur données stales + suggestions sur marché fermé. Économie : ~28% du coût API hebdomadaire.</td></tr>
<tr><td><strong>Indicateurs techniques par horizon</strong></td><td>Indicateurs fixes pour tous horizons</td><td>RSI14 est optimal pour horizons &lt;30j. Pour 90j, il produit trop de faux signaux (fenêtre trop courte). RSI28 + MA100 sont calibrés pour horizons trimestriels. Appliquer le bon indicateur selon l'horizon = signal plus robuste et moins de recommandations contradictoires.</td></tr>
<tr><td><strong>Context Snapshot vs prompt dynamique</strong></td><td>Re-calculer le contexte en live à chaque lecture</td><td>Re-calculer en live = impossible de reproduire exactement les conditions d'un cycle passé (les données de marché changent). Snapshot persisté = audit exact, replay fidèle, debugging précis. Coût stockage : ~5 Ko par cycle → 7 Mo/an → négligeable en SQLite.</td></tr>
</tbody>
</table>
@@ -1522,6 +1824,19 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<tr><td><strong>Cosine Similarity</strong></td><td>cos(θ) = (A·B)/(|A|×|B|). De -1 (opposés) à +1 (identiques). Mesure la direction (le sens) indépendamment de la norme. Seuil GeoOptions : &gt;0.75 = doublon.</td></tr>
<tr><td><strong>Jaccard Similarity</strong></td><td>|A∩B|/|AB|. Mesure les mots communs entre deux textes. Simple mais aveugle aux synonymes et au sens sémantique. Seuil GeoOptions : &gt;0.30 = doublon.</td></tr>
<tr><td><strong>DBSCAN</strong></td><td>Algorithme de clustering alternatif qui découvre des clusters de forme arbitraire et identifie les outliers. Non utilisé dans GeoOptions (K-Means suffisant pour 4 régimes fixes).</td></tr>
<tr><td><strong>Cycle Context Engine</strong></td><td>Ensemble des mécanismes (Phases 15) qui enrichissent le contexte IA : delta temporel (cycle_meta), decay des news par ancienneté, snapshot contexte, releases FRED, indicateurs techniques par horizon, price discovery. Objectif : passer d'un prompt "aveugle" à un prompt temporellement et techniquement conscient.</td></tr>
<tr><td><strong>cycle_meta</strong></td><td>Dictionnaire injecté dans chaque prompt IA contenant : hours_since_last_cycle, completed_cycles_today, cycle_number_today, market_session. Permet à GPT-4o de savoir si c'est le premier cycle de la journée ou le troisième, si le marché est ouvert, et depuis combien de temps le dernier cycle a tourné.</td></tr>
<tr><td><strong>News Decay</strong></td><td>Mécanisme de pondération temporelle des news : les articles &gt;6h voient leur impact_score multiplié par un facteur decay(age) décroissant (plancher 0.30). Évite qu'un article de la veille ne domine les suggestions du cycle actuel.</td></tr>
<tr><td><strong>IV Gate</strong></td><td>Filtre dur sur l'IV Rank avant log d'un trade. Deux seuils : Alert (jaune, taille réduite) et Extreme (rouge, blocage complet pour achat de vol). Configurable dans Config → Options Parameters. Évite d'acheter de la volatilité dans son 85ème percentile historique.</td></tr>
<tr><td><strong>Signal Direction</strong></td><td>Classification de la direction d'un pattern : bullish (expected_move &gt; 0, trade directionnel haussier), bearish (baissier), volatility (straddle/strangle — amplitude sans direction), neutral (iron condor — range-bound). Stocké dans analyses_ia.signal_direction.</td></tr>
<tr><td><strong>Conviction Score</strong></td><td>Score composite 0100 calculé par convergence de 4 sources : score IA (40%), alignement news IA (30%), fiabilité historique (20%), confirmation technique RSI/MA (10%). Utilisé pour trier les Trade Ideas dans le Journal.</td></tr>
<tr><td><strong>Pattern Convergence</strong></td><td>Moteur qui fusionne les signaux géopolitiques, macro et techniques pour produire un signal_direction et un conviction_score par pattern. Remplace le simple score IA comme critère de priorité dans les Trade Ideas.</td></tr>
<tr><td><strong>Vol Surface Regime</strong></td><td>Classification composite de l'état de la surface de volatilité : calm (SKEW normal, VVIX bas), elevated_vol (VIX &gt; 20, VVIX élevé), extreme_skew (SKEW &gt; 140 = achat massif de protection tail risk), backwardation_stress (IV30 &gt; IV90 sur plusieurs actifs). Utilisée comme 5ème bloc du macro engine.</td></tr>
<tr><td><strong>IBKR Ticket</strong></td><td>Ticket Interactive Brokers auto-calculé à partir du pattern : underlying, strike ATM (prix spot arrondi), expiry (vendredi le plus proche de today + horizon_days), legs BUY/SELL CALL/PUT, order type LIMIT, budget Kelly. Affiché dans Dashboard et Journal MtM. Copier-coller dans TWS — aucune exécution automatique.</td></tr>
<tr><td><strong>DTE (Days to Expiration)</strong></td><td>Jours restants avant la date d'expiration estimée d'un trade. Calculé en temps réel dans l'onglet Open du Journal : DTE = expiry_date - today. Affiché en rouge si DTE &lt; 14 (theta decay accéléré). Distinct de horizon_days (durée planifiée à l'entrée).</td></tr>
<tr><td><strong>Context Snapshot</strong></td><td>Enregistrement complet du contexte transmis à l'IA pour un cycle donné : 21 champs macro, news triées par impact, patterns scorés, cycle_meta. Stocké dans context_snapshots. Consultable dans AI Context tab de System Logs. Sert de base au replay historique.</td></tr>
<tr><td><strong>Watchlist IV Dynamique</strong></td><td>Table iv_watchlist en base de données remplaçant la liste hardcodée de tickers IV. Trois types : builtin (seed initial), auto (détectés par le cycle), manual (ajoutés par le trader). L'ajout déclenche un bootstrap 1 an en background.</td></tr>
<tr><td><strong>Weekend-Aware Scheduler</strong></td><td>L'APScheduler ne déclenche pas de cycle le samedi et le dimanche. Heures configurables dans Config. Évite les appels API inutiles sur des données de marché stales et les faux signaux sur des prix de vendredi soir.</td></tr>
<tr><td><strong>Straddle</strong></td><td>Achat (ou vente) simultanée d'un call et d'un put de même strike et expiration. Long straddle = parie sur un mouvement important. Short straddle = parie sur la stabilité.</td></tr>
<tr><td><strong>Strangle</strong></td><td>Comme le straddle mais avec des strikes différents (call OTM + put OTM). Moins cher à acheter. Short strangle = stratégie de vente de vol populaire en IV Rank élevé.</td></tr>
<tr><td><strong>Call Spread (Bull)</strong></td><td>Achat call strike bas + vente call strike élevé. Coût réduit vs call seul, profit plafonné. Idéal pour hausse modérée en IV élevée.</td></tr>
@@ -1545,9 +1860,9 @@ Seuil : confidence &gt; 0.75 → ALERTE INVALIDATION générée dans l'UI
<hr>
<div class="footer-doc">
<p>Document généré le 19 juin 2026 · GeoOptions Intelligence v4.4</p>
<p>FastAPI + React + SQLite + GPT-4o · Usage interne trader · Confidentiel</p>
<p>Sections : Architecture · Cycle complet simulé · Phase 1 IV/Structure · Phase 2 Fiabilité/Calibration · Phase 3 Risk Engine · Phase 4 IA Probabiliste · 6 Prompts IA · 14+ Tables DB · Guide 15 pages · 10 Décisions conception · Glossaire 35+ termes</p>
<p>Document généré le 22 juin 2026 · GeoOptions Intelligence v5.0</p>
<p>FastAPI + React + SQLite + GPT-4o · 19 pages · 5 phases · Usage interne trader</p>
<p>Sections : Architecture · Cycle complet simulé · Phase 5 Cycle Context Engine · Phase 1 IV/Structure + IV Gate + Watchlist · Phase 2 Fiabilité · Phase 3 Risk Engine · Pattern Convergence + IBKR Ticket · Phase 4 IA Probabiliste · 7 Prompts IA · 20+ Tables DB · Guide 19 pages · 19 Décisions conception · Glossaire 50+ termes</p>
</div>
</body>