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 per Month 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.1)},
      year  = {2026},
      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.1.tar.gz (45.3 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.1-cp314-cp314-win_amd64.whl (285.9 kB view details)

Uploaded CPython 3.14Windows x86-64

riskfolio_lib-7.2.1-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.1-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.1-cp314-cp314-macosx_10_13_x86_64.whl (309.9 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

riskfolio_lib-7.2.1-cp314-cp314-macosx_10_13_universal2.whl (466.9 kB view details)

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

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

Uploaded CPython 3.13Windows x86-64

riskfolio_lib-7.2.1-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.1-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.1-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.1-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.1-cp312-cp312-win_amd64.whl (281.7 kB view details)

Uploaded CPython 3.12Windows x86-64

riskfolio_lib-7.2.1-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.1-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.1-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.1-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.1-cp311-cp311-win_amd64.whl (281.5 kB view details)

Uploaded CPython 3.11Windows x86-64

riskfolio_lib-7.2.1-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.1-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.1-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.1-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.1-cp310-cp310-win_amd64.whl (280.6 kB view details)

Uploaded CPython 3.10Windows x86-64

riskfolio_lib-7.2.1-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.1-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.1-cp310-cp310-macosx_10_9_x86_64.whl (309.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

riskfolio_lib-7.2.1-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.1-cp39-cp39-win_amd64.whl (281.7 kB view details)

Uploaded CPython 3.9Windows x86-64

riskfolio_lib-7.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (319.0 kB view details)

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

riskfolio_lib-7.2.1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (302.1 kB view details)

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

riskfolio_lib-7.2.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: riskfolio_lib-7.2.1.tar.gz
  • Upload date:
  • Size: 45.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for riskfolio_lib-7.2.1.tar.gz
Algorithm Hash digest
SHA256 3cbef173b53a26ca5b8177b6eb81c4e4cac9adc726d0a4b5ce74614013c1b9f7
MD5 ccd86ad427b84c1da5210be5a4cd2f82
BLAKE2b-256 f1769f89fc641e12229547ac7b137096b5b50a423e336d30e91fe482a825001e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2e82814355b157b81005891326bfba1fcd453c4a1fc4b752c7caa6f548733b1d
MD5 b8e83a08e8204f4c6cfbb4400bc5e855
BLAKE2b-256 93805821b84b9800c2348c12be4594a8617fdb8cc433fef0cecf9e54aff3c16c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa9e1e4313cf405c00dc4fb19fb240de05905fa70706b34f98525342afce9fc5
MD5 76376ebfb9eff50c830efc00e8075d06
BLAKE2b-256 e2b8b970573f738c4408d861de704c15ae8b474df75f64dc5bed9d1086c1ca2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7a025aa352b5524e4dfd2060e5cd969d6fb21de8ed9a60ba662e48e7353fd2d2
MD5 3919c7674f255a9cff41e23f58dea95d
BLAKE2b-256 261d63e71dd91ba3f250e3ea0173c29000cbcfe59f873a38afa60379cff37fed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 33872b6fa3a7416d85cfd9a876d7706812e3eea1aaf16b2b78159e957d78a45c
MD5 8bb2085b9229dc8161936bbb03011272
BLAKE2b-256 5f47ad2c7d87ec65ee0f7e9cd8b3bde2dfcc136d812530ecf90d4c81ef477a71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp314-cp314-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e0f1da698036c99ccb665a4d863c17ca8e8a60d59ece2a37ddafddd00f2fbecb
MD5 69b628e7e436f0f4e8511ba4749fbba0
BLAKE2b-256 d009cb16227c8df87e3515bc3a3edc2ddc9a20d876bcadf685dcc89a454200e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d684261027e812905d9bcac2166f7d1084ce2fe2039237595bc98a36f6e93b56
MD5 9fe120dadaf8c3bf334d277d12413ffa
BLAKE2b-256 4875b052988af6a329fab389433902e9297467c74d75d1b83bb255fd0e78ef22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6526fd158f1b827a21295777940942b521a96fcbb1df549fb3e44d2c380ee24
MD5 779f3cb71791634c9acd10f547e2e166
BLAKE2b-256 23d0b791b70e2185cc816143f957e8c0e38e8969d58fd91cedef79d7264a5034

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 615f081d86f84fb790457690066c13ca2ee4dff7280a801f38e534ba79871124
MD5 c842d046d5ae79177bf00d705588e789
BLAKE2b-256 6541e4d80e6833a8f47d1082cd885850af7176290516ec3eb70fd3fa4b0f6f19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 37a858dc062ea82d079dd0bd77d45b204c62af0d37b4a0d46adad6bca0444a33
MD5 67a889ca879fa73fbb61aa888f29151b
BLAKE2b-256 d29330d2bac0d966e64d4cabfe4c141a359def4e040f2aa019319937e0685c64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 987938e372b9b2ed4a1038f437c7d37bc14026fca90833a662d4de2dfef7e4e6
MD5 6cf8e173156ac7258bcf23161418e043
BLAKE2b-256 3e855bc31772ae765906f6d477edd403497f86a81c581dec3f34e1c151b81fcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ab1be9d8ce07f0634961b26505e9857a5ee40b6dec0eb68fcee0e87b0c5bbfcb
MD5 4bfabf12597b3430bebac1b191966547
BLAKE2b-256 63192e399d748fa795cf7eaba6a5fbc07731e25f782ed8e29e393f9ca6c5553f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1403bc858147dead6e2ce18ac17d1a5c992ee3c876e29f2f8aca78586db6f8bb
MD5 9b570efca8f8300e83a0c935b333ad0b
BLAKE2b-256 23d6a452c0c210e5ebfe08a1c7cdcda12f0206d7776ba38169ee1d7c81808173

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 675d73314d6451c55a4e4f5f9fa0f0ae51bbc0a7e6c05911b1379b950c74607f
MD5 477599293e420ef854253225721ce2b1
BLAKE2b-256 513c67b394e996b50b48d27b5f897f1d280c8ab262b888172ce4d909e84eb3c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 997cf3e85078ae780484986cfe2a41ed26d4ac356cd88e07e1aba0efb23a13bf
MD5 4b9a688aff39c3366df9b164dcc28b1b
BLAKE2b-256 4d37d85f9845e3bd1c306fbadd0a23b62e4aaef3fa0a4f1125918c0659523359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b08197e1260ad3492657fb6c5dea0958c8ab457d728445bf6fcb2d38f6264bcd
MD5 55899df4a858c279155669060bdb0115
BLAKE2b-256 02a567472e5697a78b89241a7d4711471e1b5e0792bdbf5042575bfbaabf8c43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 16d79c893eb3d65e93661632535a7cd6c243b4f72e11dc4a52ef3da45eecae47
MD5 72c18fd5f2a456d5730cb250ff77c3d5
BLAKE2b-256 72870b5c3b738ca57dda798980ddfb0a311a3d8902d972cdc352219b3f49b5fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 059ada603199f31f960857d6cf0441cd534985ad4363cf270c1a5698ae6205d8
MD5 ac0947539c0f7418238e4eb0ba195f8d
BLAKE2b-256 8de31d016ab82bcc6a96373e0965f4bf4ee25631ce07e6e66219d9eb09eccd7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f811faf9d34ddbe81021d21e2d5d990d8aa77457c88989f5a6f925358a8f205a
MD5 12c39b5335916dec4d95cdc4235ed52f
BLAKE2b-256 414e2c64a4abb25ab2e4cda05c25a3de7432fd64222ce5c873fd844c517e7f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 93a39ba7b5c427bd712583138d31ee056f7b03b487dfb90b79588f4937d442ae
MD5 caa924f7e712ed3f5d0c7a360b91c471
BLAKE2b-256 c2ba43e644934c898cfc024120e64b64743275fefad2cd3a47088c752f8de8c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 44a6a0215475efaecdc525ebc69186dfb682aa416c0a35805ee32950f0336835
MD5 854220ab85631d88d920bda8566f54bb
BLAKE2b-256 a2400d011cad6477a5b0c77474f6e4cd09875daeb99ffb95185748ec4897ed7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 97950224ffe3b02d13b6e747a20089e533888037427f8d4f0aaf4cdebea523fe
MD5 34ebc0693cdd7bf77c15f5547220eebc
BLAKE2b-256 152c985d0fb0fcf349dd2ae301bef023d6b72ba08bc2270ff06614fb8698412c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 06c9103bd5a89d35327b76a0b3e78eb6deddccabe96b9e0b318505e1a5f7d93b
MD5 b2b42a29a7da72b68ec7b548f6327e69
BLAKE2b-256 539d39578d4cbc123b754f38664362b5ce08723f1a34461adcc9aa8fe7db983b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 179130411b7bea18452e2a7bdd028ff8870b7e512ddc2a73422ed2671bf9a97f
MD5 312c21eb573a2b17a6b3a0fd1f40ee83
BLAKE2b-256 879490827aa118df9ccaa6cf952f4645435a0bf60f8b29768c8fac58d8ae4e9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c1925f822386eeae5d5483910c66a8b5461251b334c74fc60c866d7bb637bd4
MD5 e6cea325a02b6cbc92632a5ee5dd4a48
BLAKE2b-256 0ba121e4aecddfca1078be6e9fbff3d63e417e12e0641b914d121bc177dbe66c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0d0fd424682f7e347a17b914a9cdadc3f93c7996b7a19699ec04a63f8ad9a07e
MD5 6d165d6a86af37fa5ea0317b3fcad6b1
BLAKE2b-256 cb18dbc9c9065b23497c6570d6d1f60797efb9bab9b1d2eb216dc4ce70de160a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4d59108bf99280db18883e7c2d17247e5985aebd8cc650e9ce750ad345ddb961
MD5 1d64b09c4b39b6e860d79c66fa5cfdef
BLAKE2b-256 adc58bddff032e032e30efb888c1acb0e282e647bf91abe978d90b36591de6f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1983280b7ab9ca122742d8be3e545316cb24f7d829f1603677cdb7748e5672f5
MD5 bd96dcb4a19475f2075449cadf7bdfc8
BLAKE2b-256 971b02ff0a0175823d678991cc620138d8c30add4e25245df7c213867e56208a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d199fc8947c231faa5f98af8b531a8fb7980159d5a9666cbda0d5b614c92ab4c
MD5 542074e78dec0ddf8557f7f35c292510
BLAKE2b-256 6026b9bd59f5a37676187f9223de31c72b028c0a37b10ac084cc738dbc6a0b9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3fc70e52f8dcf96d38ea5d8a8a105281de059a56da6dc0dd99c8303f5d28a77c
MD5 0a1738f2819f1fb5e8fd52d595a06522
BLAKE2b-256 a073f3cfe31c4f52da2c1afd8376b9f3d12e20f5e6567b477acd6007984c14bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riskfolio_lib-7.2.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ff565ae219ae0f178653d8a6d08eab2ec129e2d6f70c5a9d0cbaccd9fef6af8d
MD5 84d37d838ceca54f9f08b05f4dad8cdc
BLAKE2b-256 14f4b5e355ef67d24f0de91df6624a2724db2e91975eb1c9fb981d9f70f91570

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