Funk-lab/tools/finlab/README.md
ALI YESILKAYA 56cb32eacc
feat(finlab): dashboard web (graphiques/portefeuille/actions) + fix seed NFS (#65)
Ajoute une interface graphique à finlab, en plus de la console Claude Code (les
deux cohabitent sur finance.lab.local) :

- dashboard/ : backend FastAPI (sans LLM/clé) exposant les données finlab en JSON
  (/api/portfolio, /api/scan, /api/ohlc, /api/plan, /api/alerts) + front statique
  (lightweight-charts) : graphiques chandeliers MM50/200 + volume, portefeuille
  (P&L/poids/secteurs), watchlists thématiques scannées, alertes, plan de trade R:R
- Découplage code/data : finlab lit ses configs depuis FINLAB_HOME si défini
  (workspace persistant) ; repli sur le dossier du package en dév local
- Image double usage (un build, deux conteneurs) : code → /opt/app, seed minimal
  (configs + persona + MCP) → workspace
- Fix seed NFS (cause racine du workspace vide) : WORKDIR n'est plus sur le volume
  (le runtime le créait en root sur NFS) ; seed déplacé dans un initContainer
  robuste (recrée le dossier s'il est non-inscriptible)
- Deployment : initContainer seed + 2 conteneurs (console ttyd -b /console, dashboard
  uvicorn) ; Service 2 ports ; IngressRoute 2 routes (/console + dashboard), basicAuth

Validé en local (podman) : seed OK, dashboard /api/portfolio → 16k€/10 positions
via FINLAB_HOME, endpoints ohlc/scan/plan/alerts OK, ttyd/claude/finlab présents.

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

2.9 KiB

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.