Funk-lab/tools/finlab/README.md
ALI YESILKAYA 54f6f7c634
feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse (#64)
* feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse

Intègre finlab (ex-projet Projets/Finance) au lab comme une console Claude Code
web spécialisée finance — l'esprit OpenAlice, mais c'est le vrai Claude Code sur
l'abonnement (login persisté, pas d'API facturée), agentique, avec la boîte à
outils finlab (Yahoo Finance) branchée en MCP.

- tools/finlab/ : source finlab rapatriée + Dockerfile (Python 3.12 + Node +
  claude-code + ttyd) + persona workspace/CLAUDE.md + branchement MCP + entrypoint
  (seed du workspace no-clobber sur le PVC)
- .github/workflows/build-finlab.yml : build GHCR funk-finlab + bump manifest (main)
- k8s/apps/finlab/ : Deployment/Service/PVC/IngressRoute (finance.lab.local) +
  Middleware basicAuth (shell web protégé) ; PVC = HOME (login) + workspace
- k8s/apps-of-apps/apps/finlab.yaml : Application ArgoCD
- .mcp.json (racine) : outils finlab dans les sessions Claude Code du lab
- admin/ia/finlab.md + READMEs + CLAUDE.md : doc + enregistrement

Analyse/aide à la décision uniquement — aucun ordre réel (paper trading Alpaca
fictif seul exécutable).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(finlab): ttyd absent des dépôts bookworm → binaire statique GitHub

Le build amont échouait (`E: Package 'ttyd' has no installation candidate`) :
ttyd n'est pas packagé dans Debian bookworm. On récupère le binaire statique
(musl, pin TTYD_VERSION=1.7.7) depuis les releases GitHub. Build complet validé
en local (podman) : ttyd 1.7.7, claude-code 2.1.195, import finlab + seed OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 23:26:09 +02:00

51 lines
2.5 KiB
Markdown

# 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`.
## Trois façons de l'utiliser
1. **Console Claude Code web** (déploiement) — `finance.lab.local` : vraie session Claude Code
spécialisée finance, outils finlab en MCP. Voir `k8s/apps/finlab/README.md`.
2. **CLI**`python -m finlab.cli digest|portfolio|tech|fundamentals|scan|plan|alerts`.
3. **MCP** — serveur stdio `finlab.mcp_server`, branché dans le `.mcp.json` du repo lab → outils
finlab dans les sessions Claude Code du lab.
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.