Ajout d'indicateurs de signaux d'analystes
Billet #273 : Ajout des signaux d'analystes pour mes décisions de portefeuille
Type : Fonctionnalité / Aide à la décision / Analyse métier
Composants concernés : code_source_simule/portfolio_metrics.py, code_source_simule/flask_app.py, templates/dashboard.html, templates/titre_detail.html, tests/test_portfolio_metrics.py, tests/test_dashboard.py, tests/test_titre_detail.py, specs/016-dashboard-analyst-signals/
1. Contexte
Ce rapport s'inscrit dans la continuité directe de mon travail précédent sur l'ajout d'indicateurs de règles de gestion du portefeuille. Même s'il s'agit ici d'indicateurs nouveaux, ils répondent exactement à la même vision : faire de mon tableau de bord un véritable outil d'aide à la décision, et préparer un socle d'information clair pour la future IA de conseil (voir ma Vision du projet).
La logique reste la même que celle qui a guidé le billet précédent : traduire ma stratégie d'investissement en signaux simples, lisibles et fiables, affichés au bon endroit. Cette fois, je me concentre sur ce que les analystes anticipent pour chaque titre.
2. Objectif
Mettre en évidence, de façon immédiate, les titres qui s'écartent fortement des attentes des analystes, et donner sur chaque fiche titre une lecture visuelle de la position du prix par rapport à la fourchette de cibles.
Concrètement, il s'agissait de :
- faire ressortir les titres nettement au-dessus et nettement en-dessous de la moyenne des cibles d'analystes ;
- isoler les cas contre-intuitifs, c'est-à-dire les titres qui progressent fortement malgré un sentiment de marché négatif ;
- ajouter une jauge « Cibles des Analystes » sur la fiche titre, là où j'examine une position en détail.
3. Ce qui a été livré
- Trois nouveaux indicateurs sur le tableau de bord :
- Proche de cible haute des analystes : les titres dont le prix atteint ou dépasse la cible haute la plus élevée publiée par les analystes, triés du cas le plus extrême au moins extrême.
- Proche de cible basse des analystes : les titres dont le prix est inférieur ou égal à la cible basse la plus basse publiée par les analystes, avec le même tri par priorité.
- Contraires aux prévisions : les titres au sentiment négatif ou très négatif qui affichent malgré tout une hausse de gain supérieure à 50 %.
- Une jauge « Cibles des Analystes » sur la page détail de chaque titre : la cible basse à gauche, la cible haute à droite, et le prix actuel positionné entre les deux pour une lecture immédiate.
- Une présentation lisible et disciplinée :
- un format d'affichage clair pour chaque ligne (prix comparé aux bornes réelles des cibles) ;
- un état vide explicite lorsqu'aucun titre ne correspond, pour éviter toute ambiguïté ;
- un état « indisponible » ou « données invalides » sur la jauge quand les cibles ne sont pas exploitables.
- Un périmètre de calcul volontairement autonome : les signaux s'appuient strictement sur les données courantes du fichier CSV, avec les fourchettes de cibles définies directement par les cibles publiées les plus basses et les plus élevées par les analystes.
4. Impact business
- Décision mieux ciblée : je repère d'un coup d'œil les titres qui s'éloignent le plus des attentes du marché, dans un sens comme dans l'autre.
- Lecture au bon niveau : la jauge sur la fiche titre place l'information de valorisation exactement là où j'analyse une position.
- Signal de vigilance : l'indicateur « Contraires aux prévisions » attire mon attention sur des divergences qui méritent une investigation.
- Continuité de la vision : ces indicateurs prolongent le billet précédent et enrichissent le contexte que la future IA de conseil pourra exploiter.
5. Validation et statut
- Suite de tests complète au vert :
43 passed. - Comportements clés couverts par des tests dédiés : comparaison directe du prix à la cible haute (prix >= cible_haute), comparaison directe du prix à la cible basse (prix <= cible_basse), règle stricte du sentiment négatif combiné à une hausse supérieure à 50 %, tri du plus extrême au moins extrême, et états de la jauge (prête, indisponible, plage invalide).
- Couverture recalculée après les changements :
portfolio_metrics.pyà 96 %,flask_app.pyà 94 %. - Billet de traçabilité associé : #273.
6. Leçons apprises
- Un signal n'a de valeur que s'il reste fiable quand les données sont incomplètes ; prévoir explicitement les cas vides et invalides protège la confiance dans l'outil.
- Bilan d'utilisation de jetons: pour cet ajout des métriques de signaux d'analystes, la consommation brute de jetons enregistrée est de 9,43$ pour 935,8 crédits Copilot AI. En comparaison d'une implémentation similaire récente, la #272, la présente implémentation a donc coûté environ 42,95 % de moins, ce qui est une magnifique amélioration.
PS : Mise à jour concernant l'utilisation des jetons : après un commit, suite à un problème technique (résolu par Github Copilot) lors du déploiement, le coût de jetons est passé à 11,18$ pour 1 099,1 crédits utilisés, soit 32,12% de moins que la précédente implémentation. Cette anomalie m’a donc coûté moins de 2 $ à résoudre, mais m’a épargné au moins une heure d'investigation et de correction. Sachant que le taux horaire d'un consultant indépendant en IA peut s'élever à plus de 100 $ de l’heure, ce coût supplémentaire en jetons est finalement un avantage considérable.