Performance comparée des indices européens
Le fetch yfinance bulk (indice + S&P 500 + AGG + GLD) échouait dès qu'un ETF auxiliaire était indisponible sur le marché de cotation de l'indice. Le téléchargement se fait maintenant ticker par ticker : on récupère au minimum la courbe de l'indice principal, les trois benchmarks sont alignés dessus avec un forward-fill, et une série n'est affichée que si elle existe réellement.
Tableaux méthodologie + sociétés représentatives corrigés
Le tableau Sources & Méthodologie lisait la mauvaise clé (mismatch majuscule/accent) et restait quasi vide. La clé est alignée, le backend peuple huit lignes documentant le pipeline (Score, signal, EV/EBITDA, P/E, ERP, allocation Markowitz, sentiment…).
Les sociétés représentatives des trois secteurs Surpondérer s'affichaient à vide quand le fetch des constituants européens échouait. Un fallback sur la table CAC 40 / DAX / FTSE codée en dur permet désormais d'afficher les tickers même en cas de panne réseau sur le fetch live.
Markowitz complet + lisibilité graphiques
Le tableau Performances attendues des portefeuilles Min-Variance / Tangency / ERC lisait des champs return/vol/sharpe absents du fallback test. Les trois champs sont désormais garantis — vides si et seulement si l'optimisation Markowitz n'a pas pu tourner.
Sur le PDF indice, les titres et légendes des graphiques pages 5 (cartographie sectorielle) et 10 (allocation optimale) passent de 11-12 pt à 15-17 pt. Les labels secteurs étaient illisibles à la taille précédente.