Funk-lab/tools/finlab
ALI YESILKAYA c182bac1d2
feat(finlab): portefeuilles multi-comptes (courtier/banque) + onglets dashboard (#67)
Permet de suivre plusieurs comptes (courtiers/banques) côte à côte, avec vue par
compte et agrégée. Ajoute le PEA BNP Paribas à côté de Revolut.

- portfolio.yaml : nouveau format `accounts` (name/type/cash/positions par compte).
  Compat ascendante : ancien format (cash/positions à la racine) lu comme compte
  unique « Principal »
- data.py : load_accounts(), base_currency(), portfolio_tickers() (union dédupliquée)
- tracker.py : build_account / build_all (par compte + agrégat global) ; build()
  reste la vue globale (digest/report) ; report() multi-comptes
- scanner/technical/alerts : helpers « portfolio » → union de tous les comptes
- dashboard /api/portfolio : renvoie accounts[] (positions+agg par compte) + global
- dashboard front : onglets de comptes (Tous / Revolut / BNP Paribas), KPI + positions
  + secteurs qui suivent le périmètre sélectionné, badge de type par ligne en vue Tous
- BNP Paribas (PEA) saisi depuis la capture : AI/PAEEM/DCAM/PCEU/PSP5/BNP/ENGI/TTE .PA
  (tickers Yahoo vérifiés, cours conformes à la capture)

Vérifié : totaux conformes à la capture BNP (6 395,49 € ; P&L -39 €), global 22 444 € ;
bascule d'onglet OK au navigateur (Playwright) ; compile + JS + CLI report OK.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 01:40:20 +02:00
..
dashboard feat(finlab): portefeuilles multi-comptes (courtier/banque) + onglets dashboard (#67) 2026-06-30 01:40:20 +02:00
finlab feat(finlab): portefeuilles multi-comptes (courtier/banque) + onglets dashboard (#67) 2026-06-30 01:40:20 +02:00
webapp feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00
workspace feat(finlab): portefeuilles multi-comptes (courtier/banque) + onglets dashboard (#67) 2026-06-30 01:40:20 +02:00
.dockerignore feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00
.gitignore feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00
alerts.yaml feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00
Dockerfile feat(finlab): dashboard web (graphiques/portefeuille/actions) + fix seed NFS (#65) 2026-06-30 00:57:23 +02:00
entrypoint-console.sh feat(finlab): dashboard web (graphiques/portefeuille/actions) + fix seed NFS (#65) 2026-06-30 00:57:23 +02:00
entrypoint-seed.sh feat(finlab): dashboard web (graphiques/portefeuille/actions) + fix seed NFS (#65) 2026-06-30 00:57:23 +02:00
portfolio.yaml feat(finlab): portefeuilles multi-comptes (courtier/banque) + onglets dashboard (#67) 2026-06-30 01:40:20 +02:00
README.md feat(finlab): dashboard web (graphiques/portefeuille/actions) + fix seed NFS (#65) 2026-06-30 00:57:23 +02:00
requirements.txt feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00
watchlists.yaml feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64) 2026-06-29 23:26:09 +02:00

finlab — boîte à outils d'analyse de marché

Analyse de marché locale (données Yahoo Finance, gratuit/sans clé) + une console Claude Code finance déployée in-cluster. Paper trading optionnel via Alpaca (argent fictif).

⚠️ Outil d'analyse et d'aide à la décision. Ne passe aucun ordre réel. Tu restes seul décideur de tes opérations réelles (Revolut ou ailleurs).

Les 4 briques (finlab/)

Brique Module Ce que ça fait
Suivi de portefeuille tracker Valeur, P&L, poids, expo sectorielle, concentration
Analyse technique technical RSI, MACD, MM50/200, Bollinger, ATR + signaux
Analyse fondamentale fundamental PER, PEG, marges, ROE, croissance, dette, cible analystes
Paper trading paper Compte/positions/ordres fictifs Alpaca

Glu : data (fetch + cache), scanner (watchlists), digest (rapport compact), alerts, plan (plan de trade R:R), cli, mcp_server.

Quatre façons de l'utiliser

  1. Dashboard web (déploiement) — finance.lab.local/ : graphiques chandeliers, portefeuille, watchlists, alertes, plan de trade. Backend dashboard/server.py (FastAPI, sans LLM).
  2. Console Claude Code web (déploiement) — finance.lab.local/console/ : vraie session Claude Code spécialisée finance, outils finlab en MCP. Voir k8s/apps/finlab/README.md.
  3. CLIpython -m finlab.cli digest|portfolio|tech|fundamentals|scan|plan|alerts.
  4. MCP — serveur stdio finlab.mcp_server, branché dans le .mcp.json du repo lab → outils finlab dans les sessions Claude Code du lab.

Le code lit ses configs depuis FINLAB_HOME si défini (déploiement : workspace persistant), sinon depuis le dossier du package (dév local). Le dashboard se lance en local : FINLAB_HOME=$PWD PYTHONPATH=$PWD .venv/bin/uvicorn dashboard.server:app --port 8800.

Le portefeuille se modifie dans portfolio.yaml, les watchlists dans watchlists.yaml (thèmes : energy_power, chips, cables_optical_network, software_cloud, datacenter_infra), les règles d'alerte dans alerts.yaml.

Dév local

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
PYTHONPATH=. .venv/bin/python -m finlab.cli digest

App web FastAPI (alternative, non déployée)

webapp/server.py — chat Claude Opus via API Anthropic (facturé), persona webapp/finance_soul.md, tool-use finlab, SSE. Conservée comme surface HTTP requêtable optionnelle ; le déploiement in-cluster utilise la console Claude Code (abonnement, non facturé) et non cette app. Lancer en local : ANTHROPIC_API_KEY=... .venv/bin/python -m webapp.server.

Limites

  • Yahoo peut brider/différer ; certains champs fondamentaux sont vides.
  • Le P&L EUR utilise le taux de change actuel (léger écart sur le PRU vs Revolut).
  • Indicateurs techniques et cibles analystes ne sont pas des recommandations.