Retour aux projets

Finance quantitative · Python · Streamlit

Dashboard quantitatif Python/Git (Quant A & Quant B)

Projet réalisé dans le cadre du cours « Python, Git, Linux for Finance ». Le livrable est une application Streamlit unique qui simule le travail d’une équipe quantitative en gestion d’actifs: récupération de données marché via API, backtests de stratégies, analyse portefeuille multi-actifs, visualisations et métriques de risque/rendement. Le projet a été développé en binôme avec une séparation claire des responsabilités.

PythonStreamlitPandasyfinancePlotlyGitLinux

Ce que ce projet démontre

Capacité à livrer un outil quantitatif de bout en bout: ingestion de données financières, logique de stratégie, calcul de métriques, interface interactive et intégration collaborative par branches Git.

Dashboard quantitatif Python/Git (Quant A & Quant B) - detailed view

Mon rôle

Projet de groupe (2 personnes). Ma contribution principale: Quant A (single asset) avec chargement des données CAC40 via API, implémentation des stratégies Buy & Hold et Moving Average Crossover, calcul des métriques (rendement, volatilité, Sharpe, drawdown), et intégration des sorties dans l’interface Streamlit.

Contexte

Le cadre pédagogique imposait une organisation proche d’un workflow professionnel (division Quant A / Quant B, merge requests, intégration finale), avec un objectif de dashboard exploitable et pas uniquement un notebook de démonstration.

Objectif

Construire une application financière interactive permettant d’analyser un actif, de backtester des stratégies, puis d’étendre l’analyse à un portefeuille multi-actifs avec mesures de diversification et de risque.

Deep dive

Lecture technique du projet

Le projet est organisé comme un dashboard quantitatif modulaire: un module Quant A orienté single-asset et un module Quant B orienté portefeuille multi-actifs, réunis dans une interface Streamlit unique.

  • Chargement de données marché via API publique (OHLCV, fréquences daily/intraday).
  • Backtests single-asset sur CAC40 avec stratégies quantitatives configurables.
  • Analyse portefeuille multi-actifs avec règles d’allocation et rebalancing.
  • Calcul de KPI risque/rendement et indicateurs de diversification.
  • Visualisation interactive (courbes, matrices corrélation/covariance, contributions au risque).

Captures

Écrans et visualisations clés

Dashboard quantitatif Python Git A4

Vue du projet de dashboard quantitatif regroupant analyse single-asset et portefeuille.

Architecture

Organisation technique

Module Quant A

Sous-dossier `app/quant_a` avec `data_loader.py`, `strategies.py`, `metrics.py`, `ui_quant_a.py` pour isoler collecte des données, logique de stratégie et rendu UI.

Module Quant B

Sous-dossier `app/quant_b` avec moteur portefeuille (`portfolio.py`, `backtest.py`, `metrics.py`) et page Streamlit dédiée pour la configuration multi-actifs.

Couche intégration

Point d’entrée `main.py` qui orchestre la navigation entre modules et garde une expérience utilisateur cohérente.

Workflow collaboratif

Développement en branches (`quant_a`, `quant_b`) puis merges sur `main`, avec séparation explicite des responsabilités d’équipe.

Pipeline

Flux de données

  1. 1.Sélection utilisateur (actifs, période, fréquence, paramètres de stratégie).
  2. 2.Chargement des prix via API et nettoyage/alignement des séries.
  3. 3.Exécution des stratégies et calcul des rendements/courbes d’équité.
  4. 4.Agrégation portefeuille (poids, rebalancing, métriques de risque).
  5. 5.Calcul des indicateurs (Sharpe, drawdown, corrélations, contributions au risque).
  6. 6.Rendu des résultats en graphiques et tables dans Streamlit.

Choix techniques

Décisions structurantes

Séparation Quant A / Quant B

Le découpage modulaire réduit les collisions de développement et facilite la maintenance des briques single-asset vs portefeuille.

Uniformisation des séries

Le module de stratégie force des structures de données homogènes (Series/DataFrame) pour éviter des erreurs silencieuses d’alignement.

KPI orientés décision

Les sorties privilégient des métriques financières directement interprétables (annualisé, Sharpe, max drawdown, diversification ratio).

UI Streamlit pilotable

Les paramètres de stratégie/allocation sont exposés en contrôles interactifs pour tester rapidement plusieurs hypothèses.

Fiabilité

Qualité et contrôles

  • Responsabilités d’équipe explicites et intégration par branches Git.
  • Modules métiers séparés (données, stratégie, métriques, UI) pour limiter les régressions.
  • Gestion des cas invalides côté interface (dates incohérentes, données absentes, paramètres incompatibles).

Limites

Points d'attention actuels

  • Dépendance à la qualité et à la disponibilité des APIs de données publiques.
  • Hypothèses de backtest simplifiées (frais réels, slippage avancé, contraintes de liquidité non exhaustives).
  • Le déploiement Linux est présent dans le cadre projet mais pas encore industrialisé comme une chaîne CI/CD complète.

Évolutions

Prochaines étapes

  • Ajouter des scénarios de stress test et des hypothèses de coûts de transaction plus réalistes.
  • Étendre la bibliothèque de stratégies (momentum/carry/volatility targeting) dans le même cadre de comparaison.
  • Renforcer l’observabilité et l’automatisation de déploiement (tests + pipeline CI).

Difficultés rencontrées

Les principaux enjeux du projet

Structurer un codebase modulaire avec une frontière nette entre logique Quant A (actif unique) et Quant B (portefeuille).

Gérer des données de marché réelles (fréquences multiples, structures de colonnes, cas de données manquantes) sans casser le flux UI.

Maintenir des métriques cohérentes entre stratégies et périodes, tout en conservant un rendu lisible pour l’utilisateur final.

Intégrer les contributions en branche et garder une application unique stable après merges.

Résultats et apprentissages

Ce que j'en retiens

Mise en place d’un module Quant A complet: data loader CAC40, stratégies single-asset et affichage des performances dans Streamlit.

Intégration d’un module Quant B multi-actifs avec allocation, rebalancing, backtest portefeuille et indicateurs de diversification.

Application unifiée avec navigation claire, visualisations comparatives et tableaux de synthèse pour l’aide à la décision.

Workflow collaboratif Git/GitHub matérialisé par des branches dédiées et des merges structurés.

Autres projets

Continuer la visite

Application de suivi de patrimoine - project preview

Finance personnelle · Python · PyQt6

Application de suivi de patrimoine

Application desktop PyQt6 + SQLite pour centraliser des comptes multi-actifs, reconstruire l’historique hebdomadaire et analyser la performance d’un portefeuille.

Voir ce projet
Backtest et optimisation de portefeuille - project preview

Finance quantitative · Analyse · Python

Backtest et optimisation de portefeuille

Environnement Python pour backtester des stratégies, comparer des métriques risque/rendement et analyser un portefeuille.

Voir ce projet

Échanger

Je peux détailler les choix techniques et les résultats en entretien.

Si ce projet vous intéresse, je peux revenir plus précisément sur le besoin initial, la structure des données, les hypothèses, les difficultés rencontrées et les limites de l'analyse.