Commit Graph

134 Commits

Author SHA1 Message Date
github-actions[bot] 18cfc70cd4 chore: update rate-probabilities data [skip ci] 2026-07-01 23:04:02 +00:00
github-actions[bot] 7782260567 chore: update rate-probabilities data [skip ci] 2026-07-01 21:19:41 +00:00
github-actions[bot] 4f2ecbc7c2 chore: update rate-probabilities data [skip ci] 2026-07-01 19:40:44 +00:00
github-actions[bot] fbeffd1a71 chore: update rate-probabilities data [skip ci] 2026-07-01 17:07:59 +00:00
github-actions[bot] d246d1dfb7 chore: update rate-probabilities data [skip ci] 2026-07-01 14:11:13 +00:00
github-actions[bot] 7c574c1368 chore: update rate-probabilities data [skip ci] 2026-07-01 11:53:02 +00:00
github-actions[bot] f3d71453da chore: update rate-probabilities data [skip ci] 2026-07-01 08:45:07 +00:00
github-actions[bot] 9389fef5e3 chore: update rate-probabilities data [skip ci] 2026-07-01 04:17:27 +00:00
github-actions[bot] fb0476fd9e chore: update rate-probabilities data [skip ci] 2026-07-01 00:00:39 +00:00
github-actions[bot] 2757f55ac0 chore: update rate-probabilities data [skip ci] 2026-06-30 22:10:29 +00:00
github-actions[bot] 5ad7987b5c chore: update rate-probabilities data [skip ci] 2026-06-30 20:52:16 +00:00
github-actions[bot] f910056c8f chore: update rate-probabilities data [skip ci] 2026-06-30 18:29:56 +00:00
github-actions[bot] 26ff8f542c chore: update rate-probabilities data [skip ci] 2026-06-30 16:17:50 +00:00
github-actions[bot] fad6b36b7f chore: update rate-probabilities data [skip ci] 2026-06-30 13:04:58 +00:00
github-actions[bot] 58ec7393f9 chore: update rate-probabilities data [skip ci] 2026-06-30 10:27:04 +00:00
github-actions[bot] 63d96abcdc chore: update rate-probabilities data [skip ci] 2026-06-30 06:49:18 +00:00
github-actions[bot] 76f7efd69b chore: update rate-probabilities data [skip ci] 2026-06-30 02:33:41 +00:00
github-actions[bot] 6b79c598c4 chore: update rate-probabilities data [skip ci] 2026-06-29 23:55:19 +00:00
github-actions[bot] 7316c574db chore: update rate-probabilities data [skip ci] 2026-06-29 22:47:59 +00:00
caty21 48d3b9c473 feat(COT/Idees): redesign COT chart + NC group + editeur riche IdeesTab
COT :
- Ajoute groupe NC (Non-Commercial Legacy) via Socrata API CFTC
- Graphique bidirectionnel (barres avec gradient, zéro centré, track complet)
- Barre L/S split sous chaque groupe, valeur nette + %L empilés
- Corrige verdict bug : amDominates vérifié avant hfIsShort
- Supprime 'k contrats', ajoute légende ΔL/ΔS/ΔNet

IdeesTab :
- Réécriture NotePane : contentEditable Notion-like avec images inline
- Toolbar riche : gras, italique, souligné, listes, alignement
- Redimensionnement image inline (25/40/60/80/100%)
- Archives : affichage complet screenshot + texte, restauration vers slot actif

Sentiment DXM :
- Affichage brut paire par paire (Myfxbook) pour vérification directe
- SentimentPair type + pairs[] dans SentimentEntry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 23:33:00 +02:00
caty21 333ce5947a feat: onglet Idées — 2 espaces recherche avec chart + notes persistantes
- nouvel onglet 💡 Idées entre Marchés et Calendrier
- 2 slots indépendants (Recherche A / B) avec :
  - graphique TradingView (symbole libre + dropdown 15 paires, 4 timeframes)
  - zone de notes avec titre, texte, coller image (Ctrl+V), ↗ agrandir plein écran
  - persistance automatique localStorage (symbole, interval, notes, images)
  - bouton Archiver : sauvegarde + reset du slot
- panel Archives collapsible avec aperçu notes et miniatures images

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 23:33:00 +02:00
github-actions[bot] 14e853338d chore: update rate-probabilities data [skip ci] 2026-06-29 21:17:55 +00:00
github-actions[bot] f01ab58910 chore: update rate-probabilities data [skip ci] 2026-06-29 19:44:47 +00:00
github-actions[bot] 8c8ddf51ff chore: update rate-probabilities data [skip ci] 2026-06-29 17:28:56 +00:00
caty21 d3c5340f9b feat: marchés 4H + lien TradingView + cache IL + perf chargement
- charts Marchés : interval D/W → 4H (240), hauteur 220 → 420px, grid 2col
- TvAdvancedChart : bouton "↗ TradingView" par chart (outils tracé complets)
- cache fichier IL 2h (data/il-enrichment-cache.json) : API rate-proba 13s → <500ms
- stale-while-revalidate macro : affiche cache immédiatement, refetch 10s background
- seuil cache rate-proba : 48h → 7j pour dev local

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 17:43:49 +02:00
caty21 416c5348f2 fix: GitHub Actions push permission + submodule + dashboard Taux tab
- add permissions: contents: write + persist-credentials to workflow
- git rm --cached Market-Signal-Finder (submodule sans .gitmodules)
- consolide OIS+STIR en onglet Taux (3 sous-onglets: Courbe/Probabilités/Réunions)
- header summary: 1 ligne, fix bug Hold/Hold, taux actuel dans légende chart
- cache stale: seuil 48h → 7j pour dev local
- stale-while-revalidate: affiche cache immédiatement, refetch en arrière-plan (10s)
- redesign tooltip chart Courbe (Actuel/Sem. préc./Δsem. en bps)
- YAxis affiche taux complets (3.63% vs .63 tronqué)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 17:05:50 +02:00
caty21 1a086af8e7 fix(OIS): supprime probas par reunion dans la liste, conserve donnees IL/Giuseppe 2026-06-29 13:54:45 +02:00
caty21 654958ec4d fix(OIS): fusion STIR+IL pour proba 1ere reunion — IL override si ecart >8pp, STIR affiche en tooltip/parenthese 2026-06-29 13:49:52 +02:00
caty21 014be8f4e8 design(OIS/Probabilites): AreaChart auto-scale + gradient + liste reunions bps cumules colores 2026-06-29 13:44:02 +02:00
caty21 bc70678e6f fix(OIS): Probabilites = LineChart proba + resume pic/bps + liste reunions avec taux prevu 2026-06-29 13:29:56 +02:00
caty21 05e7046de4 fix(OIS): restaure graphique probabilites original (LineChart probMovePct par reunion + pic + bps fin an + delta IL) 2026-06-29 12:45:15 +02:00
caty21 a37859ad40 feat(OIS): onglet Probabilites - barres proba par reunion + bps cumules, defaut Probabilites avant Rate Path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 12:18:51 +02:00
caty21 34382c72dd feat(CurrencyCard): apply uncommitted CurrencyCard refactor from previous session
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 12:17:48 +02:00
caty21 f5e5d51c72 fix: cache no-store sur routes API, EUR emploi, NZD OIS (RBNZ), ReportTab charts 750px
- app/api/*/route.ts : export const dynamic = force-dynamic + Cache-Control no-store
- lib/tecpi.ts : regex emploi EUR (grew/rose/fell), fallback body HTML, unite %/percent
- lib/rateprobability.ts : RBNZ_MEETINGS 2026-2027, buildRBNZPath (mirrors buildSNBPath)
  CHF/NZD skippes du loop Investing.com (SNB/RBNZ rate monitor = 404)
  Taux RBNZ 2.25% (etait 3.25%)
- components/ReportTab.tsx : hauteur charts 400 -> 750px (SPX, VIX, DXY, Gold)
- lib/tradingeconomics.ts, lib/types.ts, lib/newsfeed.ts : correctifs associes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 12:17:11 +02:00
caty21 eca5800372 fix: InvestingLive URL (/centralbank/events), procure.ch PMI title, remove signals badge
- investinglive.ts / expectations/route.ts / fetch-rate-data.mjs : try 4 URL variants
  (/centralbank/ or /news/, events or event) to handle site restructure
- calendar/route.ts: displayTitle catches procure.ch prefix to return PMI Manufacturier
- page.tsx: remove divergenceCount badge and unused Zap import

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 10:45:15 +02:00
caty21 94602c765f fix: symboles TradingView publics (sans login requis)
SP:SPX → FOREXCOM:SPXUSD, TVC:VIX → CBOE:VIX, TVC:DXY → CAPITALCOM:DXY

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 15:20:29 +02:00
caty21 afd0026f25 fix: Discours BC faux positif titre-only + bouton Analyse en fin de titre
- newsfeed.ts: les catégories Discours BC / Chef d'État ne sont retenues que
  si le nom propre apparaît dans le TITRE de l'article (pas dans le body)
  → un article UK social avec 'Bailey' dans le body ne sera plus taggué BC
- NewsTab: bouton Analyse déplacé après le titre de l'article (en fin de ligne)
  Layout final : [il y a Xh] [Source] [Catégorie]  puis  Titre... [▼ Analyse]

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 15:16:05 +02:00
caty21 fa0b5d9c45 fix: faux positif Discours BC ZeroHedge + timestamp devant le journal
- newsfeed.ts: pré-filtre macro obligatoire avant applyRules pour ZeroHedge
  → articles non-financiers (social, politique) rejetés même si un prénom de
    gouverneur (ex: Bailey) apparaît dans le body
- NewsTab: timestamp (il y a Xh) déplacé en première position avant le nom du
  journal sur la ligne de métadonnées; bouton Analyse reste avec le titre

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 15:01:44 +02:00
caty21 f85bf4972a fix: TvChart container_id pour corriger le symbole Apple + redesign COT axé sur l'évolution hebdomadaire
- TvChart: container_id unique par instance → widget TradingView trouve son conteneur
  → corrige le bug où tous les charts affichaient Apple Inc au lieu du bon symbole
- CurrencyCard COT: nouveau design centré sur l'évolution vs semaine précédente
  · ② Qui pilote (AM hedge vs HF spécu)
  · ③ Delta hebdo AM (net Δ) + HF (Δ longs / Δ shorts séparés)
  · ④ Barre de dominance + signal de convergence/divergence/retournement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 14:55:49 +02:00
caty21 05803c8547 feat: UI — timestamp/Analyse avant le titre (blanc), drapeaux ronds calendrier, carry dans header, 2 tableaux côte à côte
- NewsTab: timestamp (blanc) + bouton Analyse déplacés avant le titre
- CalendarTab: drapeaux ronds via flagcdn.com (w5 h5 rounded-full)
- YieldsTab: top carry affiché dans le header (★ LONG→SHORT +Xbp),
  tableau Top Carry supprimé, Classement + Movers côte à côte

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 14:13:17 +02:00
caty21 2673686743 feat: replace rateprobability.com with CME FedWatch + Investing.com scrapers
- fetch-rate-data.mjs: CME FedWatch (USD), Investing.com rate monitors (all CBs),
  InvestingLive (fallback) — plus aucune dépendance à rateprobability.com
- lib/rateprobability.ts: suppression des appels live rateprobability.com,
  source unique = cache GitHub Actions (data/rate-probabilities.json)
- Logs détaillés pour debugger le premier run GitHub Actions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 13:35:14 +02:00
caty21 1e88b02acd feat: enable TradingView drawing toolbar + add GitHub Actions workflow
- TvAdvancedChart: hide_top_toolbar false → outils de dessin visibles
- GitHub Actions: workflow fetch-rate-data.yml (cron horaire)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 11:47:18 +02:00
caty21 d34dd8765e fix: TvChart async=false (document.currentScript fix), YieldsTab dark theme + compact layout 2026-06-28 11:28:45 +02:00
caty21 cb52cfad1a fix: TvChart embed-widget-advanced-chart (candlestick, no symbol restriction), unique instance IDs, CHF/SNB trial, NZD candlestick in ReportTab 2026-06-27 23:09:02 +02:00
caty21 204e62cb6c fix: filters use string[] (not Set), charts use TvAdvancedChart for reliable multi-instance rendering 2026-06-27 22:53:46 +02:00
caty21 cc1c4caf5e fix: move timestamp + Analyse button inline with article title 2026-06-27 22:46:48 +02:00
caty21 1e1b95fdc0 fix: TvMiniChart utilise embed-widget-mini-symbol-overview.js (pas tv.js)
MiniSymbolOverview n'existe pas dans tv.js → try/catch avalait l'erreur silencieusement
→ graphiques vides. Correction : embed script dédié avec config inline (script.text).
Structure DOM correcte : .tradingview-widget-container__widget + script sibling.
TvAdvancedChart (tv.js + TradingView.widget) inchangé.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 22:36:27 +02:00
caty21 c82dbb397b fix: OIS toujours visible + Résumé IA blanc + news séparées
- CurrencyCard: OIS toujours dans sigTabs (plus conditionnel à ratePath)
  → affiche état 'indisponible' quand données absentes, au lieu de disparaître
- NarrativeButton: couleur 'Résumé IA' blanc (#ffffff) au lieu d'amber
- NewsTab: Inflation/Géopolitique/Emploi/Énergie toujours visibles comme filtres
  → séparation TOP NEWS (articles avec étiquette macro) vs 'Autres actualités'
     (articles boursiers sans tag FX) dans section repliable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 22:28:39 +02:00
caty21 5b313a7e3e feat: news filters multi-select + sort by recency→priority→category
- filterCat (single) → selectedCats: Set<string> (multi-select OR logic)
- toggleCat() bascule une catégorie sans désélectionner les autres
- Tri client : score = timestamp + boost haute-priorité (+3h) + boost catégorisé (+1h)
  → les news macro/forex remontent naturellement, le bruit boursier Yahoo descend
- Filtre actif : seuls les articles matchant ≥1 cat sélectionnée sont affichés
- "Toutes" remet la sélection à zéro (Set vide)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 22:22:14 +02:00
caty21 cf70e30db6 feat: onglet Marchés + TvMiniChart sans popup + cache RP 48h + OIS default
- page.tsx: onglet '🌍 Marchés' — S&P 500, VIX, DXY, Or (TvMiniChart 2x2)
- TvChart: prop dateRange configurable sur TvMiniChart (défaut 1M)
- ReportTab: TvAdvancedChart → TvMiniChart (plus de popup TV), Or remplace US10Y
  S&P 500/VIX dateRange=12M (daily), DXY/Or dateRange=60M (weekly)
- rateprobability: cache TTL 4h → 48h (OIS revient même sans GitHub Actions hourly)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 22:02:53 +02:00