mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-09 04:34:43 +02:00
feat(finlab): import déterministe d'un relevé de compte Revolut → positions
Procédure de mise à jour du portefeuille « à chaque trade » à partir des relevés Revolut, sans IA (exact). - finlab/revolut.py : reconstruit les positions depuis le « trading account statement » (toutes transactions) par COÛT MOYEN (achats − ventes, PRU pondéré), mappe les tickers Revolut→Yahoo (ASME→ASML.AS, TOTB→TTE.PA, BNP→BNP.PA, AXA→CS.PA, FTE→ORA.PA, AIR1→AI.PA) et vérifie les cours. Idempotent, ne touche qu'un compte, préserve les autres comptes/cash/commentaires (round-trip ruamel.yaml) - CLI : python -m finlab.cli import-revolut <csv> [--write] [--account] - Dashboard : le bouton « Importer un relevé » accepte les CSV → endpoints /api/revolut/preview (aperçu) + /api/revolut/apply (écrit), avec garde anti-évasion de chemin ; le front affiche les positions + bouton « Appliquer » - portfolio.yaml : compte Revolut reconstruit depuis l'historique complet → ajoute AMAT (achetée le 29/06, manquait) ; valeurs alignées au centime - requirements : + ruamel.yaml ; persona console + admin/ia/finlab.md documentés Validé sur l'historique réel : 11 positions reconstruites = portfolio.yaml existant (cours vérifiés, 0 warning) + AMAT. Flux dashboard upload→preview→apply testé (TestClient), JS OK. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1c4a9d647e
commit
efec4a5dfe
8 changed files with 324 additions and 29 deletions
|
|
@ -80,6 +80,26 @@ relevé (« importe le relevé imports/… et mets à jour mon portefeuille »)
|
|||
|
||||
> C'est `portfolio.yaml` du **workspace** (PVC) qui fait foi au runtime — c'est lui que tu édites.
|
||||
|
||||
## Mise à jour du portefeuille depuis un relevé Revolut
|
||||
|
||||
Procédure de mise à jour « à chaque trade » — **déterministe** (pas de vision) :
|
||||
|
||||
- **Le plus simple** : sur le dashboard, bouton « Importer un relevé » → choisir le **CSV**
|
||||
(« trading account statement » Revolut, exporté sur **toute la période**) → aperçu des
|
||||
positions → **Appliquer**. Met à jour le compte Revolut tout seul.
|
||||
- **En console** (équivalent) : `python -m finlab.cli import-revolut <csv> --write`.
|
||||
|
||||
Le moteur (`finlab/revolut.py`) reconstruit les positions par **coût moyen** depuis l'historique
|
||||
complet des transactions (achats − ventes, PRU pondéré), mappe les tickers Revolut→Yahoo
|
||||
(`ASME→ASML.AS`, `TOTB→TTE.PA`, `BNP→BNP.PA`, `AXA→CS.PA`, `FTE→ORA.PA`…) et **vérifie chaque
|
||||
cours**. **Idempotent** : ne touche que le compte ciblé (`--account`, défaut Revolut), préserve
|
||||
les autres comptes (BNP) et les liquidités.
|
||||
|
||||
> ⚠️ Il faut le **relevé de COMPTE** (transactions) sur **toute la période**, pas le relevé de
|
||||
> P&L ni un seul mois (sinon positions incomplètes). Le **cash** n'est pas recalculé (mets-le à
|
||||
> la main si besoin). Quand on te demande de mettre à jour Revolut depuis un relevé, lance
|
||||
> `import-revolut` puis `portfolio_summary` pour valider.
|
||||
|
||||
## Alertes de prix par email
|
||||
|
||||
Un **watcher** (sidecar) évalue **`price_alerts.yaml`** (workspace) **toutes les 5 min** et envoie
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue