Quantitative Strategic Asset Allocation, easy for you.

Riskfolio-Lib is a library for making quantitative strategic asset allocation
or portfolio optimization in Python made in Peru 🇵🇪. It is built on top of
cvxpy and closely integrated
with pandas data structures.

Some of key functionalities that Riskfolio-Lib offers:

  • Portfolio optimization with 4 objective functions (Minimum Risk, Maximum Return, Maximum Risk Adjusted Return Ratio and Maximum Utility Function)
  • Portfolio optimization with 10 convex risk measures (Std. Dev., MAD, CVaR, Maximum Drawdown, among others)
  • Risk Parity Portfolio optimization with 7 convex risk measures (Std. Dev., MAD, CVaR, Maximum Drawdown, among others)
  • Worst Case Mean Variance Portfolio optimization.
  • Portfolio optimization with Black Litterman model.
  • Portfolio optimization with Risk Factors model.
  • Portfolio optimization with constraints on tracking error and turnover.
  • Portfolio optimization with short positions and leveraged portfolios.
  • Tools for build efficient frontier for 10 risk measures.
  • Tools for build linear constraints on assets, asset classes and risk factors.
  • Tools for build views on assets and asset classes.
  • Tools for calculate risk measures.
  • Tools for calculate risk contributions per asset.
  • Tools for calculate uncertainty sets for mean vector and covariance matrix.
  • Tools for estimate loadings matrix (Stepwise Regression and Principal Components Regression).
  • Tools for visualizing portfolio properties and risk measures.


Online documentation is available at Documentation.

The docs include a tutorial
with examples that shows the capacities of Riskfolio-Lib.


Riskfolio-Lib supports Python 3.7+.

Installation requires:


The latest stable release (and older versions) can be installed from PyPI:

pip install riskfolio-lib


Riskfolio-Lib development takes place on Github: https://github.com/dcajasn/Riskfolio-Lib


The plan for this module is to add more functions that will be very useful
to asset managers.

  • Mean Entropic Risk Optimization Portfolios.
  • Add functions to estimate Duration, Convexity, Key Rate Durations and Convexities of bonds without embedded options (for loadings matrix).
  • Add more functions based on suggestion of users.