Skip to content

Portfolio Optimization and Quantitative Strategic Asset Allocation in Python

License

Notifications You must be signed in to change notification settings

Youurier/Riskfolio-Lib

 
 

Repository files navigation

Riskfolio-Lib

Quantitative Strategic Asset Allocation, Easy for Everyone.

Buy Me a Coffee at ko-fi.com

Description

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:

  • Mean Risk Portfolio optimization with 4 objective functions:

    • Minimum Risk.
    • Maximum Return.
    • Maximum Utility Function.
    • Maximum Risk Adjusted Return Ratio.
  • Mean Risk Portfolio optimization with 11 convex risk measures:

    • Standard Deviation.
    • Semi Standard Deviation.
    • Mean Absolute Deviation (MAD).
    • First Lower Partial Moment (Omega Ratio)
    • Second Lower Partial Moment (Sortino Ratio)
    • Conditional Value at Risk (CVaR).
    • Worst Case Realization (Minimax Model)
    • Maximum Drawdown (Calmar Ratio)
    • Average Drawdown
    • Conditional Drawdown at Risk (CDaR).
    • Ulcer Index.
  • Risk Parity Portfolio optimization with 8 convex risk measures:

    • Standard Deviation.
    • Semi Standard Deviation.
    • Mean Absolute Deviation (MAD).
    • First Lower Partial Moment (Omega Ratio)
    • Second Lower Partial Moment (Sortino Ratio)
    • Conditional Value at Risk (CVaR).
    • Conditional Drawdown at Risk (CDaR).
    • Ulcer Index.
  • 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 11 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.

Documentation

Online documentation is available at Documentation.

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

Dependencies

Riskfolio-Lib supports Python 3.7+.

Installation requires:

Installation

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

pip install riskfolio-lib

Development

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

RoadMap

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.

About

Portfolio Optimization and Quantitative Strategic Asset Allocation in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%