mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-12 04:34:42 +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
|
|
@ -17,28 +17,28 @@ accounts:
|
|||
amount: 1248.44
|
||||
currency: EUR
|
||||
positions:
|
||||
- { ticker: NVDA, shares: 16.5959374, avg_price: 203.52, avg_currency: USD } # NVIDIA
|
||||
- { ticker: ASML, shares: 1.5839474, avg_price: 1894.00, avg_currency: USD } # ASML (ADR, Nasdaq)
|
||||
- { ticker: AMD, shares: 3.21341326, avg_price: 525.68, avg_currency: USD } # AMD
|
||||
- { ticker: MU, shares: 1.44801383, avg_price: 994.62, avg_currency: USD } # Micron
|
||||
- { ticker: STX, shares: 1.51530962, avg_price: 996.27, avg_currency: USD } # Seagate
|
||||
- { ticker: ASML.AS, shares: 0.86432993, avg_price: 1550.60, avg_currency: EUR } # ASML (Amsterdam)
|
||||
- { ticker: DELL, shares: 3.11943017, avg_price: 368.28, avg_currency: USD } # Dell
|
||||
- { ticker: TTE.PA, shares: 17.74026299, avg_price: 73.14, avg_currency: EUR } # TotalEnergies
|
||||
- { ticker: AAPL, shares: 3.39814436, avg_price: 294.28, avg_currency: USD } # Apple
|
||||
- { ticker: HPE, shares: 13.32018017, avg_price: 43.45, avg_currency: USD } # HPE
|
||||
|
||||
- {ticker: AAPL, shares: 3.39814436, avg_price: 294.28, avg_currency: USD}
|
||||
- {ticker: AMAT, shares: 2.05996246, avg_price: 692.6, avg_currency: USD}
|
||||
- {ticker: AMD, shares: 3.21341326, avg_price: 525.681, avg_currency: USD}
|
||||
- {ticker: ASML.AS, shares: 0.86432993, avg_price: 1550.6, avg_currency: EUR}
|
||||
- {ticker: ASML, shares: 1.5839474, avg_price: 1894.0023, avg_currency: USD}
|
||||
- {ticker: DELL, shares: 3.11943017, avg_price: 368.2746, avg_currency: USD}
|
||||
- {ticker: HPE, shares: 13.32018697, avg_price: 43.45, avg_currency: USD}
|
||||
- {ticker: MU, shares: 1.44801383, avg_price: 994.6258, avg_currency: USD}
|
||||
- {ticker: NVDA, shares: 16.5959374, avg_price: 203.5191, avg_currency: USD}
|
||||
- {ticker: STX, shares: 1.51530962, avg_price: 996.2612, avg_currency: USD}
|
||||
- {ticker: TTE.PA, shares: 17.74026299, avg_price: 73.1387, avg_currency: EUR}
|
||||
- name: BNP Paribas (PEA)
|
||||
type: banque
|
||||
cash:
|
||||
amount: 46.34
|
||||
currency: EUR
|
||||
positions:
|
||||
- { ticker: AI.PA, shares: 1, avg_price: 170.73, avg_currency: EUR } # Air Liquide
|
||||
- { ticker: PAEEM.PA, shares: 30, avg_price: 36.461, avg_currency: EUR } # Amundi PEA MSCI Emerging Markets
|
||||
- { ticker: DCAM.PA, shares: 180, avg_price: 6.025, avg_currency: EUR } # Amundi PEA MSCI World
|
||||
- { ticker: PCEU.PA, shares: 30, avg_price: 39.517, avg_currency: EUR } # Amundi PEA MSCI Europe
|
||||
- { ticker: PSP5.PA, shares: 20, avg_price: 56.883, avg_currency: EUR } # Amundi PEA S&P 500
|
||||
- { ticker: BNP.PA, shares: 8, avg_price: 102.90, avg_currency: EUR } # BNP Paribas
|
||||
- { ticker: ENGI.PA, shares: 20, avg_price: 27.08, avg_currency: EUR } # Engie
|
||||
- { ticker: TTE.PA, shares: 5, avg_price: 70.26, avg_currency: EUR } # TotalEnergies
|
||||
- {ticker: AI.PA, shares: 1, avg_price: 170.73, avg_currency: EUR} # Air Liquide
|
||||
- {ticker: PAEEM.PA, shares: 30, avg_price: 36.461, avg_currency: EUR} # Amundi PEA MSCI Emerging Markets
|
||||
- {ticker: DCAM.PA, shares: 180, avg_price: 6.025, avg_currency: EUR} # Amundi PEA MSCI World
|
||||
- {ticker: PCEU.PA, shares: 30, avg_price: 39.517, avg_currency: EUR} # Amundi PEA MSCI Europe
|
||||
- {ticker: PSP5.PA, shares: 20, avg_price: 56.883, avg_currency: EUR} # Amundi PEA S&P 500
|
||||
- {ticker: BNP.PA, shares: 8, avg_price: 102.90, avg_currency: EUR} # BNP Paribas
|
||||
- {ticker: ENGI.PA, shares: 20, avg_price: 27.08, avg_currency: EUR} # Engie
|
||||
- {ticker: TTE.PA, shares: 5, avg_price: 70.26, avg_currency: EUR} # TotalEnergies
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue