Retour aux projets

Analyse fondamentale · Outil buy-side · Python desktop

Moteur de screening small caps françaises (buy-side)

Ce projet est un outil desktop de screening fondamental des small caps françaises. L’objectif est de construire une chaîne complète d’analyse buy-side : constitution d’un univers investissable, collecte et stockage des données financières, calcul de ratios fondamentaux, scoring multi-facteurs interprétable et restitution des meilleures idées sous forme de watchlist exploitable. Le projet vise moins à prédire mécaniquement le marché qu’à reproduire une première couche de travail d’analyste : filtrer, comparer, prioriser et documenter les sociétés à étudier.

PythonAnalyse fondamentalePySide6SQLAlchemySQLitepandasnumpypytestruff / blackpre-commit

Ce que ce projet démontre

Capacité à transformer une problématique d’investissement en outil concret : construction d’un univers small caps françaises, structuration des données financières, calcul de ratios fondamentaux, scoring multi-facteurs interprétable, persistance en base locale et restitution exploitable pour prioriser des dossiers d’analyse.

Moteur de screening small caps françaises (buy-side) - detailed view

Mon rôle

Je cadre l’univers d’investissement, conçois l’architecture, modélise les données, implémente les repositories, développe les services de ratios, définis la logique de scoring, écris les tests et documente la méthodologie de screening.

Contexte

Le projet part d’un besoin très simple côté buy-side : réduire un univers large à une liste de sociétés réellement regardables, avec une lecture homogène des ratios, des points d’attention et des premiers éléments de comparaison.

Objectif

Construire un outil de pré-sélection buy-side capable de filtrer, comparer et prioriser les small caps françaises, tout en gardant des ratios interprétables, une base locale exploitable et une watchlist utile pour formuler une première hypothèse d’investissement.

Deep dive

Lecture technique du projet

Le projet est déjà avancé sur la couche data et la logique métier. L’enjeu n’est pas seulement de calculer des ratios, mais de produire un outil de pré-sélection exploitable par un analyste buy-side pour passer plus vite d’un univers large à une watchlist argumentée.

  • Constitution d’un univers investissable de small caps françaises avec règles de filtre explicites.
  • Stockage local des données sociétés, états financiers, historiques de prix et snapshots de screening.
  • Calcul de ratios fondamentaux pour comparer valorisation, qualité, croissance et solidité bilancielle.
  • Scoring multi-facteurs interprétable pour prioriser les dossiers à analyser.
  • Restitution sous forme de watchlist et de résultats exploitables pour la recherche fondamentale.

Analyse fondamentale intégrée

Le projet ne se limite pas à classer des sociétés avec des ratios. Il cherche à reproduire une première étape de travail d’analyste fondamental : comprendre la qualité du business, la valorisation, la solidité du bilan, la croissance, le risque financier et la cohérence du profil d’investissement.

  • Valorisation : P/E, P/B, EV/EBITDA.
  • Qualité : marges, rentabilité, génération de cash.
  • Croissance : chiffre d’affaires, résultat, dynamique historique.
  • Bilan : dette nette, trésorerie, levier.
  • Profil société : secteur, industrie, site web, business summary.
  • Données analystes : recommandations, target price, upside éventuel.

Travail déjà réalisé

Le projet ne part pas d’une idée théorique. La couche data et la logique métier sont déjà bien avancées.

  • Modèles de données : Company, FinancialStatement, PriceHistory, ScreeningSnapshot.
  • Repositories CRUD avec tests.
  • Services de ratios financiers.
  • Service de scoring multi-facteurs.
  • Service de screening / filtrage.
  • Architecture stricte UI → Services → Repositories.
  • Tests unitaires sur repositories et services.

Pourquoi c’est buy-side

Le but n’est pas de prédire mécaniquement la performance boursière, mais d’aider un analyste à réduire un univers large à une watchlist exploitable, puis à identifier les dossiers qui méritent une analyse fondamentale plus poussée.

Captures

Écrans et visualisations clés

Moteur de screening buy-side small caps françaises en construction

Aperçu du screener desktop : restitution des ratios, priorisation des sociétés et logique de watchlist orientée analyste.

Architecture

Organisation technique

UI / PySide6

La couche interface gère l’affichage, les filtres et les interactions utilisateur. Elle reste volontairement mince et ne porte pas la logique métier.

Services

Les services concentrent les calculs de ratios, le scoring, le screening et les règles métier. C’est la couche qui transforme la donnée brute en résultats de pré-sélection exploitables.

Repositories

Les repositories encapsulent les accès base, fichiers et providers externes. Ils isolent la persistance et l’ingestion pour garder le reste du code testable et maintenable.

Database

SQLite sert de base locale et SQLAlchemy de couche d’accès structurée. L’objectif est d’avoir une persistance simple, traçable et adaptée à un usage desktop local-first.

Pipeline

Flux de données

  1. 1.Définition de l’univers investissable (périmètre France, bornes de taille, règles d’exclusion).
  2. 2.Collecte des données financières et de marché via des sources externes, puis contrôle de leur cohérence.
  3. 3.Pipeline fetch → parse → store pour fiabiliser l’ingestion et l’écriture en base locale.
  4. 4.Calcul des ratios fondamentaux et des sous-scores par axe d’analyse.
  5. 5.Agrégation en score composite interprétable selon les critères retenus.
  6. 6.Restitution des meilleures sociétés sous forme de watchlist, snapshots et exports exploitables.

Choix techniques

Décisions structurantes

Univers d’abord, scoring ensuite

Le projet priorise d’abord la définition d’un univers réellement investissable. Un bon classement n’a aucune valeur si le périmètre de départ est mal cadré.

Scoring interprétable

Les ratios et pondérations restent explicites pour que chaque score puisse être relu, discuté et remis en question comme le ferait un analyste buy-side.

Architecture local-first testable

Le découpage UI → Services → Repositories facilite les tests unitaires, limite les effets de bord et permet de faire évoluer l’outil sans dépendre d’une infrastructure lourde.

Pré-sélection, pas recommandation

L’outil est conçu pour aider à filtrer et prioriser. Il ne remplace ni la lecture des comptes ni la construction complète d’une thèse d’investissement.

Fiabilité

Qualité et contrôles

  • Tests unitaires présents sur les repositories et les services.
  • Séparation stricte entre affichage, logique métier et accès aux données.
  • Outillage qualité intégré avec pytest, ruff / black et pre-commit.

Limites

Points d'attention actuels

  • La couverture des données reste dépendante des sources gratuites.
  • L’ingestion externe est encore en cours de consolidation.
  • Le backtest factoriel n’est pas encore finalisé.
  • Le risque de survivorship bias doit encore être traité proprement.
  • Certaines données fondamentales nécessitent encore des contrôles manuels.
  • L’outil ne remplace pas une analyse fondamentale complète ; il sert d’abord à prioriser les dossiers.

Évolutions

Prochaines étapes

  • Phase actuelle : data layer + business logic largement avancés.
  • Prochaine étape 1 : ingestion externe via provider financier.
  • Prochaine étape 2 : pipeline fetch → parse → store.
  • Prochaine étape 3 : interface desktop PySide6 complète.
  • Prochaine étape 4 : export CSV / Excel.
  • Prochaine étape 5 : backtest et contrôles contre les biais : survivorship bias, données point-in-time, qualité des sources.

Difficultés rencontrées

Les principaux enjeux du projet

Définir un univers d’investissement cohérent (filtres de marché, taille, liquidité, exclusions sectorielles) sans introduire de biais grossiers.

Gérer des données financières imparfaites: valeurs manquantes, formats hétérogènes, années fiscales décalées, définitions comptables non uniformes.

Concevoir des ratios robustes face aux cas limites (résultats négatifs, EV atypique, dette nette incohérente, outliers extrêmes).

Construire un scoring multi-facteurs qui reste économiquement pertinent et interprétable par style d’investissement.

Résultats et apprentissages

Ce que j'en retiens

Architecture stricte UI → Services → Repositories appliquée pour séparer l’affichage, la logique métier et l’accès aux données.

Modélisation d’une base locale avec Company, FinancialStatement, PriceHistory et ScreeningSnapshot.

Services déjà en place pour les ratios financiers, le scoring multi-facteurs et le screening / filtrage.

Base de travail crédible pour produire une watchlist et documenter les premiers dossiers à creuser en analyse fondamentale.

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.