FOREX SIGNAL ↗ Ouvrir l'app

Briefing post-séance EUR/USD

Concept : chaque matin ouvré, un récap factuel de la séance qui vient de se clôturer. Prix réels, news réelles, signaux Hermes réels, outcomes vérifiables. Zéro hallucination, zéro mock.

Si une donnée manque (Hermes pas up, API rate-limit, etc.), le briefing l'écrit explicitement (« non disponible ») plutôt que d'inventer.


Sources de vérité (toutes obligatoires)

Donnée Source État V1.5
Prix open / high / low / close D1 Twelve Data /time_series Disponible (clé requise)
Volatilité réalisée (range, ATR) Calculé depuis bars D1+H1 Disponible
News rouge sur la séance Forex Factory XML (proxy /api/calendar) Disponible
Signaux détectés par Hermes data/signals.db table signals_detected Phase H1 requis
Outcomes (TP/SL/expiré) signals_detected re-évalué J+1 Phase H1+ requis
Trades utilisateur réels Journal CSV optionnel Manuel uniquement

Tant qu'Hermes n'est pas up (Phases H1-H2), le briefing fonctionne en mode dégradé : récap marché + news uniquement, sections "signaux" et "outcomes" marquées non disponibles.


Format — 5 sections factuelles

① Récap marché (prix réels D1)

EUR/USD — séance du <YYYY-MM-DD> (<weekday>)

Open       : X.XXXX
High       : X.XXXX
Low        : X.XXXX
Close      : X.XXXX
Range jour : XX pips
Variation  : ±XX pips (±X.XX%)
Volume D1  : NN (synthétique sur forex Twelve Data)

Une phrase descriptive en sus, dérivée mécaniquement (pas commentée narrativement) :

② Contexte news rouge réelle (Forex Factory)

News HIGH/MEDIUM impact sur la séance (UTC) :

HH:MM  USD  Event title  (Actual: X.X / Forecast: X.X / Previous: X.X)
HH:MM  EUR  Event title  (...)

Si Actual n'est pas encore publié au moment du briefing → noter (Actual: pending).

Si aucune news rouge ce jour → « Aucune news HIGH/MEDIUM EUR/USD ».

③ Opportunités détectées par Hermes

Lecture de data/signals.db table signals_detected filtrée sur la séance écoulée :

N signaux détectés (XX cycles exécutés) :

1. HH:MM  pullback_ema50  long  score 0.42  entry 1.0820 SL 1.0795 TP 1.0875
2. HH:MM  range_trading   short score 0.38  entry 1.0890 SL 1.0905 TP 1.0860
...

Si Hermes pas up → « Hermes pas opérationnel — section non disponible ».

Si 0 signal détecté sur la séance → « Aucune opportunité A+ détectée (N cycles, M propositions rejetées par les filtres) ». La répartition des reject reasons est ajoutée si > 0 :

Rejets : news_blackout × X, multi_tf × Y, score_low × Z, ...

④ Outcome des signaux (J+1 retro-check)

Pour chaque signal détecté la veille, on lit les bougies D1+H1 du jour suivant et on classe :

Signal #1 (pullback_ema50 long entry 1.0820)
   → TP touché à HH:MM (max 1.0876, +1.0R)

Signal #2 (range_trading short entry 1.0890)
   → SL touché à HH:MM (min 1.0903 OK, puis 1.0905 cassé, -1.0R)

Signal #3 (divergence_hunter long entry 1.0838)
   → expiré à 23:00 sans TP ni SL touché (close 1.0848, +0.4R unrealized)

Agrégat fin de section :

N signaux outcome :
  TP hit  : X (X.X%)
  SL hit  : Y (Y.Y%)
  Expired : Z (Z.Z%, R moyen +0.X)
R moyen séance : ±0.XR

Si Hermes pas up → « non disponible ».

⑤ Préparation séance suivante (factuelle uniquement)

Date         : <YYYY-MM-DD> (<weekday>)
News rouge   : <liste depuis Forex Factory pour le jour suivant>
Open D1 prév : à découvrir à l'open London
ATR(14) D1   : XX pips
Range D1 30j : moyenne XX pips, médiane XX pips
Niveaux clés : (calculés mécaniquement depuis D1)
   - Pivot point classique  : X.XXXX
   - Support 1 / Résistance 1 : X.XXXX / X.XXXX
   - Plus haut/bas 5j        : X.XXXX / X.XXXX

Aucun objectif "discipline" auto-formulé : c'est une variable utilisateur, pas marché. À ajouter manuellement dans une 6e section optionnelle si l'utilisateur tient un journal.


Mode dégradé (Hermes pas up — état V1.5 actuel 2026-04-26)

Tant que data/signals.db n'existe pas, le briefing affiche :

C'est explicite. Pas de fallback narratif inventé.


Implémentation (Phases du KANBAN)

Phase Capability briefing
H0.5 (livré) Aucune — les briefings synthétiques pré-existants ont été supprimés (data fake = bruit)
H1 Sections ① ② ⑤ disponibles dès que src/data/fetcher.py (Twelve Data) tourne
H2 Section ③ disponible quand signals_detected SQLite est alimenté
H3 Section ④ disponible (script de retro-check J+1) + génération auto + envoi Telegram

Tant que H3 n'est pas livré, le briefing est généré manuellement ou à la demande via un script à écrire en Phase H1 (cf. KANBAN).


Anti-patterns


Liens