⚡

# OpenFin Intelligence

Architecture du Système & Logique des Prompts IA
Version 2.0 · Juin 2026 · FastAPI + React + GPT-4o

## 1. Concept Général

OpenFin Intelligence est un cockpit de trading d'options dont l'intelligence centrale repose sur un cycle itératif : collecter les signaux macro-géopolitiques, identifier les patterns d'opportunité, scorer leur pertinence en temps réel, puis apprendre des performances passées pour affiner les cycles suivants.

### 1.1 Philosophie fondamentale

Le système est construit autour d'une idée simple : les options sur dérivés géopolitiques suivent des patterns répétables. Une escalade tarifaire US-Chine génère systématiquement de la volatilité sur les semi-conducteurs. Un choc pétrolier bénéficie aux stratégies long sur l'énergie. Le défi n'est pas de créer ces patterns, mais de les détecter assez tôt pour agir avant le consensus.

L'IA (GPT-4o) joue le rôle d'un stratège senior externe qui lit les news, connaît les régimes macro, et enrichit la base de patterns — mais ce sont des règles humaines explicites qui décident si un trade est logué, si une analyse est valide, et si les leçons passées sont fiables.

Principe directeur
L'IA propose, les règles quantitatives filtrent, l'historique de performance valide. Le cycle répète et apprend.

### 1.2 Les trois mémoires du système

Mémoire | Contenu | Durée de vie | Usage
--- | --- | --- | ---
Rapport Portfolio | Analyse post-mortem des trades matures : gagnants, perdants, leçons clés | ~7–30 jours (jusqu'au prochain rapport) | Injecté dans les prompts de suggestion et scoring du cycle suivant
Super Contexte | Synthèse évolutive : régimes, patterns récurrents, erreurs, corrélations macro | Permanent — s'enrichit à chaque cycle (max 1×/6h) | Contexte de fond pour tout le raisonnement IA
Base de Connaissances (KB) | Entrées structurées par catégorie (régimes, patterns, erreurs) avec score de confiance | Permanent — géré manuellement ou auto-ajouté par synthèse | Consulté lors de la synthèse du Super Contexte

## 2. Workflow d'un Cycle Complet

Un cycle se déclenche automatiquement (toutes les N heures) ou manuellement. La durée typique est de 2 à 5 minutes pour les étapes synchrones, plus 1 à 3 minutes en background selon la disponibilité des données.

0
Chargement du contexte mémoriel DB
Charge le dernier Rapport Portfolio et le Super Contexte depuis la base de données. Ces données enrichiront tous les prompts IA du cycle courant.
↓
1
Collecte des données de marché GPT-4o-mini
Récupère les news géopolitiques (RSS, GDELT), les prix de marché (yfinance), les indicateurs macro (VIX, pente de courbe, DXY, Brent, or, cuivre, S&P vs moyenne 200j) et le calendrier économique.
→ Appel IA : GPT-4o-mini score chaque news (impact 0–100, classification géopolitique) en batch.
↓
2
Suggestion de nouveaux patterns GPT-4o
GPT-4o reçoit le contexte complet (news + prix + macro + calendrier + Super Contexte + leçons portfolio) et propose des nouvelles thèses de trading structurées.
Retourne : nom, description, thèse macro, trades suggérés, keywords, probabilité, horizon cible.
↓
3
Filtre anti-doublons (Jaccard) Règle
Chaque pattern suggéré est comparé aux patterns existants par similarité de keywords (distance de Jaccard). Si la similarité dépasse le seuil configuré (défaut : 30%), le pattern est rejeté comme doublon. Seuls les patterns vraiment nouveaux sont sauvegardés.
↓
4
Scoring de TOUS les patterns GPT-4o
GPT-4o score l'ensemble des patterns (nouveaux + existants) en les confrontant au contexte marché actuel. Retourne pour chaque pattern : score de pertinence (0–100), niveau de confiance, catalyseur clé, résumé, trade recommandé avec stratégie (call spread, put, straddle...).
↓
5
Logging et journal DB
Sauvegarde les scores en historique, log les prix d'entrée des trades passant les filtres EV/score, enregistre l'alerte géo et le régime macro. Traces de raisonnement (input/output de chaque appel IA) persistées pour audit.
↓
6
Commentaire de cycle GPT-4o
Synthèse narrative courte (4–6 phrases) expliquant pourquoi les patterns scorent ainsi aujourd'hui, quel est le risque principal, et quelle recommandation tactique pour le prochain cycle. Affiché dans l'interface.
↓ Thread background (non-bloquant)
7
Rapport Portfolio automatique GPT-4o Background
Déclenché seulement si ≥ 2 trades matures avec |P&L| > 0.1% sont disponibles. GPT-4o analyse les performances réelles des trades matures et génère un rapport structuré (headline, analyse gagnants/perdants, leçons clés, angles morts). Ce rapport sera injecté au cycle suivant.
↓
8
Mise à jour du Super Contexte GPT-4o Background
Déclenché seulement si le dernier Super Contexte a plus de 6 heures. GPT-4o agrège tous les rapports portfolio, tous les trades (90j) et la base de connaissances pour produire une synthèse évolutive riche. Nouvelles entrées KB auto-ajoutées.
Résumé des appels IA par cycle
Synchrones (systématiques) : 1× GPT-4o-mini (scoring news) + 3× GPT-4o (suggestion patterns, scoring patterns, commentaire)
Background (conditionnels) : 0–2× GPT-4o selon la disponibilité de trades matures et la fraîcheur du Super Contexte

## 3. Anatomie des Prompts IA — Ce qu'on Inclut et Pourquoi

Chaque prompt est construit pour donner à GPT-4o exactement ce dont il a besoin pour être pertinent — sans surcharge inutile qui diluerait le signal ou augmenterait le coût.

### 3.1 Scoring des news (GPT-4o-mini)

Prompt : Classification et scoring d'impact des news GPT-4o-mini
✓ Ce qui est inclus

- Titre + source + date de chaque news — le minimum nécessaire pour scorer l'impact
- Liste des catégories cibles (énergie, métaux, indices, forex, agriculture) — ancre le scoring sur nos actifs réels
- Schéma de sortie strict (score 0–100, catégorie, keywords) — pour être parsé de manière fiable

✗ Ce qui est exclu

- Corps complet des articles — le titre suffit pour scorer l'impact géopolitique ; le corps alourdit le contexte sans gain mesurable
- Historique des scores passés — scorer une news est une tâche stateless ; l'historique n'apporterait rien
- Données de marché — inutiles pour déterminer l'impact géopolitique d'une news

Pourquoi GPT-4o-mini ici ?
Le scoring des news est une tâche de classification répétitive sur des centaines d'items. GPT-4o-mini est 10× moins cher que GPT-4o pour une qualité de classification identique sur des tâches structurées courtes. On garde GPT-4o pour le raisonnement stratégique complexe.

### 3.2 Suggestion de nouveaux patterns (GPT-4o)

Prompt : Identification de nouvelles thèses de trading GPT-4o
✓ Ce qui est inclus

- Top N news scorées avec leur impact — les signaux géopolitiques qui motivent les thèses
- Régime macro dominant (stagflation, crise géo, expansion...) + scores de tous les scénarios — ancre les suggestions dans la réalité macro du moment
- Prix clés (VIX, DXY, Brent, or, cuivre) — oriente vers des actifs avec momentum
- Calendrier économique à venir — évite de suggérer des thèses juste avant un catalyseur qui les invaliderait
- Super Contexte (narrative + priorités stratégiques + erreurs récurrentes) — le "cerveau" accumulé qui guide le style de suggestions
- Leçons du dernier rapport portfolio (headline + leçons clés) — ancre dans ce qui a marché ou échoué récemment
- Schéma de sortie complet (nom, description, thèse macro, keywords, trades suggérés, horizon, probabilité)

✗ Ce qui est exclu

- Liste des patterns existants — le filtre Jaccard (étape 3) gère les doublons algorithmiquement ; l'inclure dans le prompt créerait du bruit et biaiserait GPT-4o vers des variations des patterns actuels
- Historique complet des scores — on injecte seulement le résumé des leçons (rapport portfolio) pas les données brutes ; plus compact, plus signal
- Données de trades individuels — trop granulaires pour la suggestion ; les leçons agrégées suffisent
- Prix d'entrée et P&L des positions ouvertes — crée un biais d'ancrage ; on veut des suggestions basées sur le marché actuel, pas sur nos positions

### 3.3 Scoring des patterns (GPT-4o)

Prompt : Évaluation de pertinence de chaque pattern dans le contexte actuel GPT-4o
✓ Ce qui est inclus

- Tous les patterns (nom, description, thèse, keywords, trades suggérés) — GPT-4o doit évaluer chacun dans le même appel pour maintenir une cohérence relative des scores
- Contexte marché complet (régime macro, prix, news) — le même contexte que la suggestion, pour cohérence
- Super Contexte — les erreurs récurrentes et priorités stratégiques permettent de pénaliser les patterns qui répètent des patterns d'échec connus
- Biais par classe d'actif (calculé depuis le régime dominant) — oriente les scores vers les classes qui profitent du régime
- Score de risque géopolitique global — affecte les scores des patterns directionnels risqués
- Schéma de sortie structuré (score, confiance, buckets d'évaluation, trade recommandé avec détails option)

✗ Ce qui est exclu

- Scores historiques de chaque pattern — créerait un biais d'ancrage ; un pattern qui scorait 80 il y a 3 semaines ne devrait pas nécessairement scorer 80 aujourd'hui si le régime a changé
- P&L réel des trades logués — même raison : GPT-4o doit évaluer le marché aujourd'hui, pas être influencé par nos performances passées
- Identité des traders — non pertinent pour l'évaluation macro

### 3.4 Commentaire de cycle (GPT-4o)

Prompt : Narration du cycle pour le trader GPT-4o
✓ Ce qui est inclus

- Top 5 patterns scorés (nom, score, résumé) — ce que le cycle a retenu comme pertinent maintenant
- Régime dominant + scores macro — pour expliquer pourquoi ces patterns scorent ainsi
- Indicateurs macro clés (VIX, pente de courbe, DXY, Brent, or, cuivre) — les chiffres bruts pour ancrer la narration
- Top 5 news à fort impact — les catalyseurs qui expliquent le contexte du cycle
- Trades logués ces 7 derniers jours (pattern, underlying, stratégie) — pour commenter l'alignement positions/contexte

✗ Ce qui est exclu

- P&L des trades — le commentaire doit rester sur le contexte marché, pas sur les performances (risque de biais confirmationiste)
- Toutes les news — seules les top 5 à fort impact sont pertinentes pour une synthèse narrative
- Super Contexte complet — le commentaire est une analyse ponctuelle du cycle actuel, pas une synthèse mémorielle

### 3.5 Rapport Portfolio automatique (GPT-4o)

Prompt : Post-mortem de performance sur trades matures GPT-4o
✓ Ce qui est inclus

- Uniquement les trades MATURES avec P&L réel — seule source fiable d'apprentissage (voir section 4)
- Classification explicite (matures gagnants / matures perdants / immatures à ne pas juger)
- Score d'entrée de chaque trade — permet de corréler "le système a bien scoré ET le trade a marché" vs les faux positifs
- Indicateur de maturité de chaque trade (% de l'horizon écoulé) — contexte pour interpréter le P&L
- Règle de timing explicite dans le system prompt — interdit de tirer des conclusions sur les trades immatures

✗ Ce qui est exclu

- Trades immatures comme base d'apprentissage — un trade ouvert depuis 2 jours sur un horizon de 60 jours ne dit rien de fiable sur la qualité de la thèse
- Contexte macro actuel — le rapport analyse le passé (pourquoi les matures ont marché), pas le présent
- Données de marché en temps réel — hors sujet pour un post-mortem

### 3.6 Synthèse Super Contexte (GPT-4o)

Prompt : Mise à jour de la base de raisonnement évolutive GPT-4o
✓ Ce qui est inclus

- 10 derniers rapports portfolio (headline, stats, analyse gagnants/perdants, leçons) — la matière première de l'apprentissage
- Tous les trades (90j) classés par maturité avec P&L — la base empirique
- Base de connaissances existante (par catégorie : régimes, patterns, erreurs) — évite de repartir de zéro et préserve les insights validés
- Règle de timing dans le system prompt — même garde-fou que pour le rapport portfolio
- Instruction de conservation des insights existants si peu de matures disponibles — évite que la synthèse "oublie" les leçons validées à cause d'un manque de données récentes

✗ Ce qui est exclu

- News du jour — le Super Contexte est une mémoire long terme, pas une analyse quotidienne
- Prix de marché actuels — même raison ; les régimes et corrélations sont déduits des performances, pas des prix instantanés
- Plus de 10 rapports — au-delà de 10 rapports, le prompt dépasserait la fenêtre utile ; les rapports les plus anciens ont aussi moins de pertinence dans un marché qui évolue

## 4. La Maturité des Trades — Pourquoi C'est Central

C'est l'une des décisions d'architecture les plus importantes du système. Un P&L observé sur une option après 3 jours est du bruit statistique. Après 70% de son horizon, c'est un signal. Mélanger les deux dans les prompts IA pollue l'apprentissage.

### 4.1 Définition des stades

0–10%
10–35%
35–75%
>75%
Trop tôt (0–10%) — Signal nul, ne pas analyser Début (10–35%) — Signal faible, surveiller Mature (35–75%) — Signal fiable, apprendre Fin d'horizon (>75%) — Signal fort, leçons définitives

### 4.2 Impact sur chaque étape du système

Composant | Traitement des immatures | Traitement des matures
--- | --- | ---
Rapport Portfolio | Listés pour transparence, étiquetés "ne pas juger", pas dans les calculs P&L | Base exclusive des analyses, leçons et statistiques
Super Contexte | Listés avec étiquette, exclus des insights de performance | Matures gagnants et perdants analysés pour régimes et patterns
Journal de Bord | Badge gris/orange + barre de progression courte | Badge vert/bleu + P&L affiché comme signal fiable
Gate rapport portfolio | Au moins 2 trades matures avec |P&L| > 0,1% requis pour déclencher la génération GPT-4o

Risque évité
Sans ce filtre de maturité, GPT-4o pourrait tirer des leçons d'un trade ouvert depuis 2 heures qui montre −5% (normal sur une option). Il conclurait "la stratégie straddle est mauvaise sur le secteur énergie" et dégraderait les cycles suivants. Le filtre de maturité protège l'intégrité de l'apprentissage.

## 5. Règles de Filtrage des Trades Logués

Tous les patterns scorés ne génèrent pas un trade dans le Journal de Bord. Deux filtres quantitatifs contrôlent l'entrée.

### 5.1 Les deux filtres

Filtre | Formule | Paramètre | Logique
--- | --- | --- | ---
Score minimum | `score ≥ min_score` | Configurable (défaut : 0) | Rejette les patterns jugés peu pertinents par GPT-4o dans le contexte actuel
EV nette minimum | `p × G − (1−p) ≥ min_ev` | Configurable (défaut : 0.0) | Filtre les trades à espérance mathématique négative (p = probabilité, G = gain/perte max)

### 5.2 Les profils de risque

Les profils de risque définissent des frontières d'acceptation nommées (Conservateur, Standard, Agressif...). Un trade est logué s'il passe au moins un profil activé. Chaque profil définit un score minimum et un gain minimum attendu, et affiche la formule EV nette à la frontière pour vérifier la cohérence mathématique.

Intérêt de l'approche multi-profil
Un même pattern peut être rejeté par le profil Conservateur (score 60, gain 50% requis) mais accepté par le profil Agressif (score 40, gain 200% requis). Cela permet de logger des opportunités à fort potentiel sans abaisser la barre globale.

## 6. La Gate de 6 Heures du Super Contexte

Le Super Contexte est une synthèse mémorielle fondée sur des performances de trades à 30–90 jours. Le relancer toutes les 3 heures (à chaque cycle) serait non seulement coûteux, mais contre-productif : un nouveau trade immature ne devrait jamais remettre en cause des conclusions issues de mois d'observations.

Scénario | Comportement | Raison
--- | --- | ---
Dernier Super Contexte < 6h | Synthèse ignorée, le SC existant est utilisé | Préserve les insights solides, évite le bruit des trades immatures
Dernier Super Contexte > 6h | Nouvelle synthèse GPT-4o déclenchée | Intègre les nouvelles données de performance accumulées
Trigger manuel avec `?force=true` | Synthèse forcée quelle que soit l'ancienneté | Permet une mise à jour immédiate si l'utilisateur le décide

Analogie
Le Super Contexte est comme un livre de règles qui s'enrichit après chaque trimestre d'opérations. On ne réécrit pas le livre parce qu'un trade ouvert ce matin montre −2%.

## 7. Filtre Anti-doublon par Distance de Jaccard

GPT-4o, s'il reçoit les mêmes news deux cycles de suite, risque de suggérer des patterns très proches. La distance de Jaccard mesure le chevauchement entre les keywords de deux patterns.

Formule
`Jaccard(A, B) = |A ∩ B| / |A ∪ B|`
Où A et B sont les ensembles de keywords (en minuscules) de deux patterns.
Si la similarité maximale entre le candidat et n'importe quel pattern existant dépasse le seuil (défaut 30%), le candidat est rejeté.

Seuil configuré | Comportement | Usage recommandé
--- | --- | ---
10% (strict) | Presque tout passe, peu de déduplications | Base de données de patterns vide ou très petite
30% (défaut) | Équilibre entre nouveauté et redondance | Usage normal avec >20 patterns existants
60–80% (permissif) | Seuls les quasi-doublons exacts sont rejetés | Veut maximiser le volume de patterns générés

## 8. Architecture des Données

Table / Collection | Contenu | Consulté par
--- | --- | ---
`custom_patterns` | Patterns créés manuellement ou par l'IA (nom, thèse, keywords, trades suggérés) | Scoring, suggestion (filtre Jaccard)
`pattern_scores` | Historique de chaque scoring run (score, confiance, catalyseur, trade recommandé) | Cockpit, Rapport IA, Journal
`trade_entry_prices` | Un enregistrement par trade logué : prix d'entrée, score à l'entrée, P&L courant | Journal de Bord, Rapport Portfolio, Super Contexte
`ai_reports` | Rapports portfolio générés par GPT-4o (JSON + stats + winners/losers) | Super Contexte (10 derniers), Rapport IA page
`reasoning_states` | Versions successives du Super Contexte (narrative + synthesis JSON) | Cycle (contexte mémoriel), Super Contexte page
`kb_entries` | Base de connaissances : entrées par catégorie avec confiance (0–100) | Synthèse Super Contexte, Super Contexte page
`reasoning_traces` | Input/output de chaque appel IA (suggestion + scoring) — audit complet | Débogage, traçabilité des décisions
`cycle_runs` | Métadonnées de chaque cycle (statut, patterns added/scored, commentary, régime) | Page Config, historique cycles
`config` | Clés API, paramètres auto-cycle, seuils EV/score | Startup, chaque cycle

## 9. Synthèse des Choix de Conception

Choix | Alternative rejetée | Raison
--- | --- | ---
GPT-4o-mini pour le scoring des news | GPT-4o pour tout | Classification répétitive → coût 10× réduit sans perte qualité
Filtre Jaccard pour déduplier (pas GPT-4o) | Demander à GPT-4o si un pattern est un doublon | Algorithmique = déterministe, gratuit, rapide
Gate 6h sur le Super Contexte | Resynthétiser à chaque cycle | Protège l'intégrité mémorielle du bruit court terme
Rapport portfolio en background thread | Bloquer le cycle jusqu'à la fin du rapport | Le rapport sert au cycle suivant — pas besoin qu'il soit prêt maintenant
Filtres EV et score configurables par profil | Un seul seuil global fixe | Permet plusieurs appétits de risque sans modifier le code
Injecter Super Contexte dans la suggestion | Laisser GPT-4o repartir de zéro | Le SC contient des mois d'apprentissage validé ; en partir sans le contexte serait un gaspillage
Exclure les P&L du prompt de scoring | Donner à GPT-4o les performances passées pour scorer | Évite le biais d'ancrage et la circularité (un pattern qui a bien scoré dans le passé ne mérite pas nécessairement un bon score aujourd'hui)
Cleanup des cycles "running" au démarrage | Laisser l'état incohérent | Un kill du processus laisse la DB en état "running" pour toujours ; le cleanup au startup garantit la cohérence

En résumé
Le système applique un principe de séparation claire entre signal et bruit : l'IA reçoit ce qui lui permet de raisonner (contexte actuel + mémoire validée), pas ce qui peut la biaiser (performances récentes non matures, historique de scores bruts). Les règles quantitatives (Jaccard, maturité, EV, gate 6h) protègent la qualité des outputs IA en amont et en aval de chaque appel.

OpenFin Intelligence v2.0 · Document généré le 17 juin 2026 · FastAPI + React + SQLite + GPT-4o