# 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. **CLI** — `python -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

```bash
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.
