À propos du projet

PyPortfolioOpt est une bibliothèque Python open source d'optimisation de portefeuille financier. Elle est conçue à la fois pour les investisseurs occasionnels et les professionnels prototypant des stratégies d'allocation, avec une API modulaire inspirée de scikit-learn qui permet de combiner ou de remplacer les modèles de rendement attendu, les modèles de risque, les objectifs et les optimiseurs. La bibliothèque couvre l'optimisation classique moyenne-variance de Markowitz via son interface EfficientFrontier. Les objectifs pris en charge incluent le ratio de Sharpe maximal, la volatilité minimale, le risque minimal pour un rendement cible, le rendement maximal pour un risque cible et l'utilité quadratique maximale. Les utilisateurs peuvent configurer des bornes long-only ou long/short, des portefeuilles market-neutral, des limites de position et des objectifs supplémentaires tels que la régularisation L2. Pour les rendements attendus, PyPortfolioOpt fournit les rendements historiques moyens, les rendements historiques pondérés exponentiellement et les rendements basés sur le CAPM. Ses outils de covariance et de modèle de risque incluent la covariance d'échantillon, la semicovariance, la covariance pondérée exponentiellement, la shrinkage manuelle et de Ledoit-Wolf, l'Oracle Approximating Shrinkage et l'estimation par Minimum Covariance Determinant. Des utilitaires de tracé de covariance sont également inclus. Au-delà de l'optimisation standard de la frontière efficiente, le projet prend en charge l'allocation Black-Litterman, qui combine des estimations de rendement a priori de marché ou autres avec les vues de l'investisseur. Les optimiseurs supplémentaires incluent la moyenne-semivariance, la moyenne-CVaR, la parité hiérarchique des risques et l'algorithme de la ligne critique de Markowitz. PyPortfolioOpt fonctionne avec des DataFrames pandas contenant des données de prix. Le module DiscreteAllocation convertit les pondérations continues du portefeuille en quantités d'actions achetables pour une valeur de portefeuille spécifiée et indique le cash restant. Le dépôt inclut un exemple de démarrage rapide, une documentation Read the Docs, un cookbook de notebooks Jupyter, des données de test pour 20 tickers et une suite de tests pytest. Il est installable depuis PyPI avec pip ou directement depuis les sources, et est publié sous licence MIT. Le README indique explicitement que le projet ne constitue pas un conseil en investissement.