Contexte
Gérer un portefeuille d'investissement diversifié oppose souvent commodité et confidentialité. Les plateformes cloud offrent un suivi fluide mais exigent de téléverser des données financières sensibles sur des serveurs tiers. Finarius a été conçu pour éliminer ce compromis, en proposant une alternative auto-hébergée qui rivalise avec la profondeur analytique de services premium comme Finary tout en conservant 100 % des données sur la machine de l'utilisateur.
Le projet sert de hub financier « Local-First » complet, capable de reconstruire les performances historiques et de projeter les tendances futures à partir des données de transactions brutes et des flux de marché en temps réel.
Architecture technique et ingénierie
Finarius est construit avec une stack Python modulaire, utilisant Streamlit pour l'interface, Pandas pour le traitement des données et SQLite pour la persistance locale.
Moteur de portefeuille
Au cœur de Finarius se trouve un moteur personnalisé conçu pour reconstruire l'état d'un portefeuille à tout moment. Contrairement aux simples feuilles de calcul, le moteur traite l'intégralité de l'historique des transactions pour calculer :
- Précision historique : Reconstruit les positions à toute date pour générer des snapshots « valeur dans le temps »
- Coût de base (PRU) : Implémente la logique FIFO (First-In, First-Out) pour calculer le coût unitaire moyen, en tenant compte des frais de transaction pour un reporting précis des gains/pertes
- Polyvalence des actifs : Supporte plusieurs classes d'actifs (actions, ETF, livrets) dans diverses devises et comptes
Pipeline de données de marché intégré
Pour fournir des insights de niveau professionnel sans saisie manuelle, j'ai intégré l'API Yahoo Finance (yfinance).
- Synchronisation automatisée : Le système récupère les prix historiques et en temps réel pour visualiser la progression avant même le lancement de l'app
- Cache résilient : Pour respecter les limites de débit de l'API et permettre l'analyse hors ligne, les données de prix sont mises en cache dans une base SQLite locale avec expiration configurable
Analytique financière avancée
Finarius se distingue en calculant des métriques de risque et de rendement complexes généralement réservées aux offres premium.
Indicateurs de performance
La plateforme calcule une suite de rendements pondérés dans le temps et pondérés par les flux pour une vue objective de la performance :
- TWRR & IRR : Élimine les distorsions causées par les flux de trésorerie externes (dépôts/retraits) pour mesurer la vraie compétence d'investissement
- Métriques de risque : Calcule le ratio de Sharpe pour les rendements ajustés au risque et le Max Drawdown pour évaluer la volatilité et les baisses
Indicateurs techniques
Au-delà du simple P&L, le système évalue la sensibilité du portefeuille aux mouvements de marché en calculant le Bêta par rapport à des benchmarks comme le S&P 500, permettant de comprendre l'exposition aux mouvements de marché plus larges.
Sécurité et souveraineté des données
La contrainte principale de ce projet était une confidentialité absolue des données.
- Zéro télémétrie : Pas de suivi, pas d'analytics tiers, pas de synchronisation cloud. Le seul trafic réseau sortant est vers l'API Yahoo Finance pour les mises à jour de prix
- Auditabilité : Projet open-source sous licence MIT, chaque calcul et interaction base peut être audité par l'utilisateur, garantissant l'absence de vulnérabilités cachées ou de fuites de données
Bilan
Finarius est une réponse à la « SaaS-ification » de la finance personnelle. Il démontre que des outils financiers de niveau professionnel ne nécessitent pas le sacrifice de la confidentialité des données. En combinant la flexibilité de Python à la robustesse du stockage SQL local, Finarius fournit un cadre scalable, privé et puissant pour l'investisseur.


