Skip to content

Entropy Pooling views and stress-testing combined with Conditional Value-at-Risk (CVaR) portfolio optimization in Python.


Notifications You must be signed in to change notification settings


Repository files navigation

Pytest Codecov Binder

Fortitudo Technologies Open Source

This package allows you to explore open-source implementations of some of our fundamental technologies, e.g., Entropy Pooling and CVaR optimization in Python. See this YouTube playlist for a walkthrough of the package's functionality and examples.

For a high-level introduction to the investment framework, see this YouTube video and Medium article. For a mathematical introduction to the investment framework, see these SSRN articles.

For a pedagogical and deep presentation of the investment framework, you can access the Portfolio Construction and Risk Management Book.

The package is intended for advanced users who are comfortable specifying portfolio constraints and Entropy Pooling views using matrices and vectors. This gives full flexibility in relation to working with these technologies. Hence, input checking is intentionally kept to a minimum.

Fortitudo Technologies offers novel investment software as well as quantitative and digitalization consultancy to the investment management industry. For more information, please visit our website.

Installation Instructions

Installation can be done via pip:

pip install

For best performance, we recommend that you install the package in a conda environment and let conda handle the installation of dependencies before installing the package using pip. You can do this by following these steps:

conda create -n -c conda-forge python scipy pandas matplotlib cvxopt
conda activate
pip install

The examples might require you to install additional packages, e.g., seaborn and ipykernel / notebook / jupyterlab if you want to run the notebooks. Using pip to install these packages should not cause any dependency issues.

You can also explore the examples in the cloud without any local installations using Binder. However, note that Binder servers have very limited resources and might not support some of the optimized routines this package uses. If you want access to a stable and optimized environment with persistent storage, please subscribe to our Data Science Server.


This package is completely separate from our proprietary solutions and therefore not representative of the quality and functionality offered by the Investment Simulation and Investment Analysis modules. If you are an institutional investor and want to experience how these methods can be used for sophisticated analysis in practice, please request a demo by sending an email to