Skip to main content

Investment and risk technologies maintained by Fortitudo Technologies.

Project description

This package allows users to freely explore open-source implementations of some of our fundamental technologies under the GNU General Public License, Version 3.

Fortitudo Technologies is a fintech company offering novel investment technologies as well as quantitative and digitalization consultancy to the investment management industry. For more information, please visit our website.

This 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 and allows users to build their own high-level interfaces if they wish to do so.

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 python scipy pandas -y
conda activate
conda install -c conda-forge cvxopt=1.3 -y
pip install


You are welcome to contribute to this package by forking the GitHub repository and creating pull requests. Pull requests should always be sent to the dev branch. We especially appreciate contributions in relation to packaging, e.g., making the package available on conda-forge.

Using the conda environment specified in the requirements.yml file and located in the root directory of the repository is the easiest way to start contributing to the code:

conda env create --file requirements.yml

The style guide mostly follows PEP 8, but it uses some important modifications that can be found in .vscode/settings.json. If you use Visual Studio Code, you can use these settings to make sure that your code follows the basic rules of the style guide. The most important modifications/additions are:

  1. We allow line length to be 99 characters for both code and docstrings,
  2. We allow the use of capital I as a variable,
  3. We use type hints introduced in PEP 484,
  4. We do not group operators according to priority.

We generally follow naming conventions with descriptive variable and function names, but we often use short variable names for the very mathematical parts of the code to replicate the variables used in the references. We believe this makes it easier to link the code to the theory.

We encourage you to keep individual contributions small in addition to avoid imposing object-oriented design patterns. We are unlikely to accept contributions that use inheritance without very good reasons and encourage you to use composition instead.

Code of Conduct

We welcome feedback and bug reports, but we have very limited resources for support and feature requests. If you experience bugs with some of the upstream packages, please report them directly to the maintainers of the upstream packages.


This package is completely separate from our proprietary solution and therefore not representative of the functionality offered in the Investment Analysis module. If you are an institutional investor and want to experience how these technologies can be used in very elegant ways, please request a demo of the Investment Analysis module.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (2.5 MB view hashes)

Uploaded source

Built Distribution (2.5 MB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page