Skip to main content

Portfolio Optimization and Quantitative Strategic Asset Allocation in Python

Project description

Riskfolio-Lib

Quantitative Strategic Asset Allocation, Easy for Everyone.


Buy Me a Coffee at ko-fi.com

GitHub stars Downloads Downloads Documentation Status GitHub license Binder

Star History Chart

Description

Riskfolio-Lib is a library for making quantitative strategic asset allocation or portfolio optimization in Python made in Peru 🇵🇪. Its objective is to help students, academics and practitioners to build investment portfolios based on mathematically complex models with low effort. It is built on top of CVXPY and closely integrated with Pandas data structures.

Some of key functionalities that Riskfolio-Lib offers:

  • Mean Risk and Logarithmic Mean Risk (Kelly Criterion) Portfolio Optimization with 4 objective functions:

    • Minimum Risk.
    • Maximum Return.
    • Maximum Utility Function.
    • Maximum Risk Adjusted Return Ratio.
  • Mean Risk and Logarithmic Mean Risk (Kelly Criterion) Portfolio Optimization with 24 convex risk measures:

    Dispersion Risk Measures:

    • Standard Deviation.
    • Square Root Kurtosis.
    • Mean Absolute Deviation (MAD).
    • Gini Mean Difference (GMD).
    • Conditional Value at Risk Range.
    • Tail Gini Range.
    • Entropic Value at Risk Range.
    • Relativistic Value at Risk Range.
    • Range.  

    Downside Risk Measures:

    • Semi Standard Deviation.
    • Square Root Semi Kurtosis.
    • First Lower Partial Moment (Omega Ratio).
    • Second Lower Partial Moment (Sortino Ratio).
    • Conditional Value at Risk (CVaR).
    • Tail Gini.
    • Entropic Value at Risk (EVaR).
    • Relativistic Value at Risk (RLVaR).
    • Worst Case Realization (Minimax).  

    Drawdown Risk Measures:

    • Average Drawdown for uncompounded cumulative returns.
    • Ulcer Index for uncompounded cumulative returns.
    • Conditional Drawdown at Risk (CDaR) for uncompounded cumulative returns.
    • Entropic Drawdown at Risk (EDaR) for uncompounded cumulative returns.
    • Relativistic Drawdown at Risk (RLDaR) for uncompounded cumulative returns.
    • Maximum Drawdown (Calmar Ratio) for uncompounded cumulative returns.
  • Risk Parity Portfolio Optimization with 20 convex risk measures:

    Dispersion Risk Measures:

    • Standard Deviation.
    • Square Root Kurtosis.
    • Mean Absolute Deviation (MAD).
    • Gini Mean Difference (GMD).
    • Conditional Value at Risk Range.
    • Tail Gini Range.
    • Entropic Value at Risk Range.
    • Relativistic Value at Risk Range.  

    Downside Risk Measures:

    • Semi Standard Deviation.
    • Square Root Semi Kurtosis.
    • First Lower Partial Moment (Omega Ratio)
    • Second Lower Partial Moment (Sortino Ratio)
    • Conditional Value at Risk (CVaR).
    • Tail Gini.
    • Entropic Value at Risk (EVaR).
    • Relativistic Value at Risk (RLVaR).  

    Drawdown Risk Measures:

    • Ulcer Index for uncompounded cumulative returns.
    • Conditional Drawdown at Risk (CDaR) for uncompounded cumulative returns.
    • Entropic Drawdown at Risk (EDaR) for uncompounded cumulative returns.
    • Relativistic Drawdown at Risk (RLDaR) for uncompounded cumulative returns.
  • Hierarchical Clustering Portfolio Optimization: Hierarchical Risk Parity (HRP) and Hierarchical Equal Risk Contribution (HERC) with 35 risk measures using naive risk parity:

    Dispersion Risk Measures:

    • Standard Deviation.
    • Variance.
    • Square Root Kurtosis.
    • Mean Absolute Deviation (MAD).
    • Gini Mean Difference (GMD).
    • Value at Risk Range.
    • Conditional Value at Risk Range.
    • Tail Gini Range.
    • Entropic Value at Risk Range.
    • Relativistic Value at Risk Range.
    • Range.  

    Downside Risk Measures:

    • Semi Standard Deviation.
    • Fourth Root Semi Kurtosis.
    • First Lower Partial Moment (Omega Ratio).
    • Second Lower Partial Moment (Sortino Ratio).
    • Value at Risk (VaR).
    • Conditional Value at Risk (CVaR).
    • Tail Gini.
    • Entropic Value at Risk (EVaR).
    • Relativistic Value at Risk (RLVaR).
    • Worst Case Realization (Minimax).  

    Drawdown Risk Measures:

    • Average Drawdown for compounded and uncompounded cumulative returns.
    • Ulcer Index for compounded and uncompounded cumulative returns.
    • Drawdown at Risk (DaR) for compounded and uncompounded cumulative returns.
    • Conditional Drawdown at Risk (CDaR) for compounded and uncompounded cumulative returns.
    • Entropic Drawdown at Risk (EDaR) for compounded and uncompounded cumulative returns.
    • Relativistic Drawdown at Risk (RLDaR) for compounded and uncompounded cumulative returns.
    • Maximum Drawdown (Calmar Ratio) for compounded and uncompounded cumulative returns.
  • Nested Clustered Optimization (NCO) with four objective functions and the available risk measures to each objective:

    • Minimum Risk.
    • Maximum Return.
    • Maximum Utility Function.
    • Equal Risk Contribution.
  • Worst Case Mean Variance Portfolio Optimization.

  • Relaxed Risk Parity Portfolio Optimization.

  • Ordered Weighted Averaging (OWA) Portfolio Optimization.

  • Portfolio optimization with Black Litterman model.

  • Portfolio optimization with Risk Factors model.

  • Portfolio optimization with Black Litterman Bayesian model.

  • Portfolio optimization with Augmented Black Litterman model.

  • Portfolio optimization with constraints on tracking error and turnover.

  • Portfolio optimization with short positions and leveraged portfolios.

  • Portfolio optimization with constraints on maximum number of assets and number of effective assets.

  • Portfolio optimization with constraints based on graph information.

  • Portfolio optimization with inequality constraints on risk contributions for variance.

  • Portfolio optimization with inequality constraints on factor risk contributions for variance.

  • Portfolio optimization with integer constraints such as Cardinality on Assets and Categories, Mutually Exclusive and Join Investment.

  • Tools to build efficient frontier for 24 convex risk measures.

  • Tools to build linear constraints on assets, asset classes and risk factors.

  • Tools to build views on assets and asset classes.

  • Tools to build views on risk factors.

  • Tools to build risk contribution constraints per asset classes.

  • Tools to build risk contribution constraints per risk factor using explicit risk factors and principal components.

  • Tools to build bounds constraints for Hierarchical Clustering Portfolios.

  • Tools to calculate risk measures.

  • Tools to calculate risk contributions per asset.

  • Tools to calculate risk contributions per risk factor.

  • Tools to calculate uncertainty sets for mean vector and covariance matrix.

  • Tools to calculate assets clusters based on codependence metrics.

  • Tools to estimate loadings matrix (Stepwise Regression and Principal Components Regression).

  • Tools to visualizing portfolio properties and risk measures.

  • Tools to build reports on Jupyter Notebook and Excel.

  • Option to use commercial optimization solver like MOSEK or GUROBI for large scale problems.

Documentation

Online documentation is available at Documentation.

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

Choosing a Solver

Due to Riskfolio-Lib is based on CVXPY, Riskfolio-Lib can use the same solvers available for CVXPY. The list of solvers compatible with CVXPY is available in Choosing a solver section of CVXPY's documentation. However, to select an adequate solver for each risk measure we can use the following table that specifies which type of programming technique is used to model each risk measure.

Risk Measure LP QP SOCP SDP EXP POW
Variance (MV) X X*
Mean Absolute Deviation (MAD) X
Gini Mean Difference (GMD) X**
Semi Variance (MSV) X
Kurtosis (KT) X
Semi Kurtosis (SKT) X
First Lower Partial Moment (FLPM) X
Second Lower Partial Moment (SLPM) X
Conditional Value at Risk (CVaR) X
Tail Gini (TG) X**
Entropic Value at Risk (EVaR) X
Relativistic Value at Risk (RLVaR) X**
Worst Realization (WR) X
CVaR Range (CVRG) X
Tail Gini Range (TGRG) X**
EVaR Range (EVRG) X
RLVaR Range (RVRG) X**
Range (RG) X
Average Drawdown (ADD) X
Ulcer Index (UCI) X
Conditional Drawdown at Risk (CDaR) X
Entropic Drawdown at Risk (EDaR) X
Relativistic Drawdown at Risk (RLDaR) X**
Maximum Drawdown (MDD) X

(*) When SDP graph theory constraints are included. In the case of integer programming graph theory constraints, the model assume the SOCP formulation.

(**) For these models is highly recommended to use MOSEK as solver, due to in some cases CLARABEL cannot find a solution and SCS takes too much time to solve them.

LP - Linear Programming refers to problems with a linear objective function and linear constraints.

QP - Quadratic Programming refers to problems with a quadratic objective function and linear constraints.

SOCP - Second Order Cone Programming refers to problems with second-order cone constraints.

SDP - Semidefinite Programming refers to problems with positive semidefinite constraints.

EXP - refers to problems with exponential cone constraints.

POW - refers to problems with 3-dimensional power cone constraints.

Dependencies

Riskfolio-Lib supports Python 3.9 or higher.

Installation requires:

Installation

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

pip install riskfolio-lib

Citing

If you use Riskfolio-Lib for published work, please use the following BibTeX entry:

@misc{riskfolio,
      author = {Dany Cajas},
      title = {Riskfolio-Lib (7.2.0)},
      year  = {2025},
      url   = {https://github.com/dcajasn/Riskfolio-Lib},
      }

Development

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

Consulting Fees

Riskfolio-Lib is an open-source project, but since it's a project that is not financed for any institution, I started charging for consultancies that are not related to errors in source code. Our fees are as follows:

  • $ 25 USD (United States Dollars) per question that doesn't require to check code.
  • $ 50 USD to check a small size script or code (less than 200 lines of code). The fee of the solution depends on the complexity of the solution:
    • $ 50 USD for simple errors in scripts (modify less than 10 lines of code).
    • For most complex errors the fee depends on the complexity of the solution but the fee is $ 150 USD per hour.
  • $ 100 USD to check a medium size script or code (between 201 and 600 lines of code). The fee of the solution depends on the complexity of the solution:
    • $ 50 USD for simple errors in scripts (modify less than 10 lines of code).
    • For most complex errors the fee depends on the complexity of the solution but the fee is $ 150 USD per hour.
  • For large size script or code (more than 600 lines of code) the fee is variable depending on the size of the code. The fee of the solution depends on the complexity of the solution:
    • $ 50 USD for simple errors in scripts (modify less than 10 lines of code).
    • For most complex errors the fee depends on the complexity of the solution but the fee is $ 150 USD per hour.

All consulting must be paid in advance.

You can contact me through:

You can pay using one of the following channels:

RoadMap

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

  • Add more functions based on suggestion of users.

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

riskfolio_lib-7.2.0.tar.gz (45.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

riskfolio_lib-7.2.0-cp314-cp314-win_amd64.whl (285.9 kB view details)

Uploaded CPython 3.14Windows x86-64

riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (319.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_x86_64.whl (309.8 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_universal2.whl (466.8 kB view details)

Uploaded CPython 3.14macOS 10.13+ universal2 (ARM64, x86-64)

riskfolio_lib-7.2.0-cp313-cp313-win_amd64.whl (281.6 kB view details)

Uploaded CPython 3.13Windows x86-64

riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (319.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_x86_64.whl (309.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_universal2.whl (466.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

riskfolio_lib-7.2.0-cp312-cp312-win_amd64.whl (281.6 kB view details)

Uploaded CPython 3.12Windows x86-64

riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (319.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_x86_64.whl (309.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_universal2.whl (466.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

riskfolio_lib-7.2.0-cp311-cp311-win_amd64.whl (281.4 kB view details)

Uploaded CPython 3.11Windows x86-64

riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (319.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_x86_64.whl (310.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_universal2.whl (468.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

riskfolio_lib-7.2.0-cp310-cp310-win_amd64.whl (280.5 kB view details)

Uploaded CPython 3.10Windows x86-64

riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (318.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (301.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_x86_64.whl (309.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_universal2.whl (465.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

riskfolio_lib-7.2.0-cp39-cp39-win_amd64.whl (281.7 kB view details)

Uploaded CPython 3.9Windows x86-64

riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (318.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_x86_64.whl (309.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_universal2.whl (465.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file riskfolio_lib-7.2.0.tar.gz.

File metadata

  • Download URL: riskfolio_lib-7.2.0.tar.gz
  • Upload date:
  • Size: 45.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for riskfolio_lib-7.2.0.tar.gz
Algorithm Hash digest
SHA256 b467c9c3c56f57453596715ecd4fe490f2caa5fbce8cc72841e3558c345fcfa8
MD5 9c153de7b856f71ecfc4ed8b2eef788c
BLAKE2b-256 1b335dd0dbdacad1ef24ac6e0dc4e8900617f373c338bcb4ec452ffc6d4a89e4

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 514c7ee32e3b10ba19e076f0ce00092a9f8c579104d18e69f1e39a395ee64456
MD5 7c35577b63407433c10c6218358b4ac6
BLAKE2b-256 525df5ff6462d033522825b59d59bbd61b64eda65d11e209752390d7105fae4a

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b3983d6cbde78bfd5b7b240226ec3797ca1a2cc73e168820df62a292b45f4ee
MD5 69efd0d9391eafbef29bdc7169d37096
BLAKE2b-256 a9bc7ffd4432a45ea0d047308b777751399173fc3a4fdcaa85969d098941fbee

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9fd24eebb7bf4aadb019dbe9d5f84b54d55d913cfa313dfe11eb9eca1c6decf9
MD5 1cfe15f107be7ee57fb7d5a21bbd335a
BLAKE2b-256 7f5cf92f928a43384a54528a7de64bd059041b39171fb25e9b0cf7eed35b10e7

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7ccf0c7a8039ea228e8afef4667629b5efe2fe36c749d7d14531d2755d10a267
MD5 c6b420e84c214425f0718995fc53ccf8
BLAKE2b-256 15fb7ac716a7de6f4819304299b68d5bde6c675dad37e48c2628e6676351620f

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp314-cp314-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 2b46d296bafc4f165fcd1cb4cb79654f1a30f70cc6a6ecad1e1175537d757a76
MD5 ea05bc4d89d8c24e670d01508f7de28a
BLAKE2b-256 ea4bb954c57faca2bfb24a4740151ea553e4208c5e8a619be3050ab6fa988b99

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a771636a0a01ef2e99cb3183ed28245e3835802cb586455c4fb78ea0f36018a0
MD5 0f06bf8c7a4f683616811d208ef7a45a
BLAKE2b-256 6338fd56fbbb83466d0ef216c80d2ecb99ac4681c353be7786e5f42418423e6f

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13155de3635e22123fd9ba69bc2b7de787647e06e6d69738e5f1be2ff6414544
MD5 058ea38a4d9299434ea8063126dd0ebe
BLAKE2b-256 741eaea550ba99c25cab978d1ca450e1cb794b6f30d8683853ee2d95ac24e363

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2da596f53243cdf9f742d9654b4820116dc7fcb99317abf02595cdd81a19626a
MD5 72bef5a6bb9f8802ef96691805a2a903
BLAKE2b-256 a3e50ebf723113f7cedb0070a6e84dc13c87a5002f0911bd9166ee9d27607803

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a308fe752dff06cf6b72d398b2daa92b0c59310cb6605420a1138c2715664be5
MD5 d2627ed188ccd3dde1c2fdb9fb86a79f
BLAKE2b-256 8769046c90db3072ba36c5d39ed80e391c0528a77fe272beb3d77605c20c51b5

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9cf78837ec9708f7536f0c60e841c5d8308b6cb126780eea89520ed28621773b
MD5 ec2fed212eaef14e51ef208da044593a
BLAKE2b-256 97adb356ca6da743fb0271f6fc5e3cd7007ff3a69be18dbd3fc7a99d6c6549ae

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ed0ba913bb80eb62a678555d87d0098b61dacb6b36f1f551843bcb22febe91d8
MD5 02a9c568a7ce0baa3d2167c5ef27f58a
BLAKE2b-256 28a86f3a7b96a9021734d76023bcc08584a12c062fd72246ceff3fc28082dcf3

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b51afeed322f2c53c4aedd7d06646cefb3550cc306dab51066f3ca2af26b249f
MD5 88aca410dd342bce392ba17aa31de337
BLAKE2b-256 638bc4568cc8c85152d9acc984594998e0fc481f801a9b9625c3cf9892419b1b

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7a9be7907dd7241a82b55006b3e97921c73ab17c317f3a809cf56bdbd1433e00
MD5 28f9b13941f2087640bfbe580878526e
BLAKE2b-256 fc26282e471a83100310d3a5e9f5f69ed4222f60b2551d7675b9d4f1be46a3ad

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 65cbd2c8cd73894d598611c60b7739d046bd5e35e1e26543cc89a181e138defd
MD5 e9f675018b07d51e1f18b0c838c4970b
BLAKE2b-256 ec58c08bf8a0a8e56c2ccd84fc211e74f1873a9a1b2a221b30b05333b5ed10b8

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3aa15f407327d5318151b0a34262e170ec6c23650c552c6a45f00441a4d0019a
MD5 46ff773eaf92e8fdc9e1a50001a5c1f8
BLAKE2b-256 706a4b7c3bcf47d501bb0878534e543c57eefc233579157d7f9d663878ea43b2

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 29ff68b7a613ea55bc010d43ed0bfee6b699f62531e95099b731f39f550ce8cb
MD5 04477fc6ed11c173dc8156fc26876067
BLAKE2b-256 0178cbd3bfcf0e265ca78975b59e2174e5c2b966413ed00997dc452d08b1dc03

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7bf400d1cccc26b55bb9ce2d5402894784443ceba6efacdd412afbe59c62af87
MD5 7d091197dfac7cc315e9095a6d45fab4
BLAKE2b-256 8e9f88a201421e85356566ca13d637414efebfaa979e5aec6e13333f0e8298af

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b8e74b620eadf58f270d1af791883db3d8304cf7e66f00692e282fa29e01d15f
MD5 03fb40caf072ac52254c01f1a4e0fa8c
BLAKE2b-256 36c0e555a5e7f2cc37f18cfe3778bc4429488f12d216aa81db11148092e43a41

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ce826b98f6ad481a908abf3f3b6fb8f6b473831d4fec90cb352e051de58eaced
MD5 b2f850e31e1a0a2ed2a49152d4d3edc7
BLAKE2b-256 05b4f1b65e6994a12eceb1ebb639e6aff951e0043276b3e1eafb330426be4cee

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b91261b3e72efdad69c6a8281d872bd19b948a06d9fa277d757c2818a0f2d668
MD5 4753d11910a03924bdcc77bfeb990f38
BLAKE2b-256 9bfdeef22ef4a8adc24033a6145f210d2bc7973e10026d66eb1a33eab1b00e32

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9d8e534d0f1212fab6ac8e6873b4c49d9850778fe586781e6dcd370ed7230309
MD5 b84e78799d4bca89fbe815e0762cf46d
BLAKE2b-256 faffde1de73facd3cf71b94d45840951bb76bfea818c741b306e146f3e0b4a3a

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 491f474caca3c3339cd649862403a9b3be4e5946f65272f7e3f216a60ab880d3
MD5 21e102b3a6d5024dcc1d48ce7f38f773
BLAKE2b-256 8f3a250eea1ac0cfefb3399076b8d52db70ca7fd218966c59d403b233b43e438

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b6f5cd49cd8e4cc9934fd752bb75fa550be32e0b10de806a64eeeb294783f5a7
MD5 87e73ee4cba0fc0d0ba32b8e2e85c356
BLAKE2b-256 6c16493ab145d3cbaef2516eb16cb70859d9166cd5a5efc8b6af7b1e579128e7

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aef1b1b832ce0867c8bccc89ba3f41bbbd0a2ec8e7600262c967e3f9d6a350a0
MD5 170a62c093df6d84bae9c6178a483a3c
BLAKE2b-256 0786e806c3764fa92c5ceeaaeb40c3f7f84ef6fc4136b93a21910c44ea94208e

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b9a911ac2c2be04f243854b365648a630f21e89a77dbd2be44b3a42cb082a368
MD5 86b4cede5b53c4b0c3dedc4a2e8d64df
BLAKE2b-256 6caa38b35de1061b126b5ae14da0658d80d62dd6793db389c9d5326ef9dfff82

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d3cf7d8f55d4661cd9fe183a8a6c300b0e51334a9cf8950a38d76533655135a2
MD5 b05227754ab0ea6c082959f8c6e24f7c
BLAKE2b-256 69f0108f2be6211ec495827489cba184dd93e9fdbe95c2574155ff8d5036903f

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f56085445e308f1fd5b0fc1ed52c0718e18c28dc7f53b153a042f2900e416a1d
MD5 b3bac4023554bef64f2b7e4e730cc45e
BLAKE2b-256 92276c7e7c328051efd5ff4cf2efda1b049ee4552d35eee4346935bdce51c2cd

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f5d7d325541a69ebedf957461722e23506db921eff9132cf7b40f430e680bee
MD5 eec9aab0a408029e7f556f49692d386f
BLAKE2b-256 8d72ef70dc768b285f1f5e6fca8f712edb3f5c63cb9e755e85fbddbf57813024

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5d63811a90d149c36e83f8793977df60bbf224be9873e4ed100b28c773f47be5
MD5 64cd2c14b33f1a1910bc1998087a5b27
BLAKE2b-256 77b13d94fa697cb95e1a501e36e4cf453478e67d5f78fd2629c469c9456e8a63

See more details on using hashes here.

File details

Details for the file riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for riskfolio_lib-7.2.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 707d99ec494dc8732daa0e5f0e35d39f57b7caa5003c97805f8cfaa486e32664
MD5 b4586875b352c8533f8f2ccb7e375dfe
BLAKE2b-256 5560010478e3cb0525f0d19db3ad8155c964d49d6d802676e28c4b0f3b46dfc1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page