From 06d1de765b78927be7fedf699fb75159435008a5 Mon Sep 17 00:00:00 2001 From: aral190 Date: Thu, 29 Jan 2026 12:47:57 +0200 Subject: [PATCH 1/4] Update UserGuide.rst recipe link --- docs/UserGuide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.rst b/docs/UserGuide.rst index 4919f406..f4a02689 100644 --- a/docs/UserGuide.rst +++ b/docs/UserGuide.rst @@ -301,7 +301,7 @@ in the sidebar to learn more about the parameters and theoretical details of the different models offered by PyPortfolioOpt. If you have any questions, please raise an issue on GitHub and I will try to respond promptly. -If you'd like even more examples, check out the cookbook `recipe `_. +If you'd like even more examples, check out the cookbook `recipe `_. References From 3cbdfcf3129a2e695c2478515a09ae8bea2b9414 Mon Sep 17 00:00:00 2001 From: aral190 Date: Thu, 29 Jan 2026 16:29:30 +0200 Subject: [PATCH 2/4] Another place where the link uses a different spelling now --- docs/MeanVariance.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MeanVariance.rst b/docs/MeanVariance.rst index 3bf34da5..5b64da92 100644 --- a/docs/MeanVariance.rst +++ b/docs/MeanVariance.rst @@ -32,7 +32,7 @@ language for convex optimization upon which PyPortfolioOpt's efficient frontier .. tip:: - You can find complete examples in the relevant cookbook `recipe `_. + You can find complete examples in the relevant cookbook `recipe `_. Structure From 32c0dc8247b57d246b1b5b8a4f662c7b0b8826d3 Mon Sep 17 00:00:00 2001 From: aral190 Date: Thu, 29 Jan 2026 16:40:06 +0200 Subject: [PATCH 3/4] Update GeneralEfficientFrontier.rst Function name typo --- docs/GeneralEfficientFrontier.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GeneralEfficientFrontier.rst b/docs/GeneralEfficientFrontier.rst index aa7dd98b..2bc5ab60 100644 --- a/docs/GeneralEfficientFrontier.rst +++ b/docs/GeneralEfficientFrontier.rst @@ -63,7 +63,7 @@ annual return of 20%:: from pypfopt import expected_returns, EfficientSemivariance df = ... # your dataframe of prices - mu = expected_returns.mean_historical_returns(df) + mu = expected_returns.mean_historical_return(df) historical_returns = expected_returns.returns_from_prices(df) es = EfficientSemivariance(mu, historical_returns) From 9911d8355c78c1a15572e2d45d9a35bb9c764ab1 Mon Sep 17 00:00:00 2001 From: aral190 Date: Thu, 29 Jan 2026 17:03:03 +0200 Subject: [PATCH 4/4] Update FAQ.rs Explain ESG --- docs/FAQ.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FAQ.rst b/docs/FAQ.rst index e9022bf9..ddeed1b7 100644 --- a/docs/FAQ.rst +++ b/docs/FAQ.rst @@ -7,7 +7,7 @@ FAQs Constraining a score -------------------- -Suppose that for each asset you have some "score" – it could be an ESG metric, or some custom risk/return metric. It is simple to specify linear constraints, like "portfolio ESG score must be greater than x": you simply create +Suppose that for each asset you have some "score" – it could be an ESG (Environmental, Social, and Governance) metric, or some custom risk/return metric. It is simple to specify linear constraints, like "portfolio ESG score must be greater than x": you simply create a vector of scores, add a constraint on the dot product of those scores with the portfolio weights, then optimize your objective:: esg_scores = [0.3, 0.1, 0.4, 0.1, 0.5, 0.9, 0.2]