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 22 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.
    • 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 18 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.  

    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 24 risk measures using naive risk parity:

    Dispersion Risk Measures:

    • Standard Deviation.
    • Variance.
    • Fourth Root Kurtosis.
    • Mean Absolute Deviation (MAD).
    • Range.
    • Conditional Value at Risk Range.
    • Tail Gini 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 number of assets and number of effective assets.

  • Portfolio optimization with constraints based on graph information.

  • Tools to build efficient frontier for 22 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**
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 (6.3.1)},
      year  = {2024},
      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-6.3.1.tar.gz (37.0 MB view details)

Uploaded Source

Built Distributions

Riskfolio_Lib-6.3.1-cp312-cp312-win_amd64.whl (253.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (298.3 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (287.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_x86_64.whl (285.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_universal2.whl (423.7 kB view details)

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

Riskfolio_Lib-6.3.1-cp311-cp311-win_amd64.whl (252.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (299.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (288.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_x86_64.whl (286.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_universal2.whl (425.5 kB view details)

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

Riskfolio_Lib-6.3.1-cp310-cp310-win_amd64.whl (251.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (298.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (287.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_x86_64.whl (285.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_universal2.whl (423.0 kB view details)

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

Riskfolio_Lib-6.3.1-cp39-cp39-win_amd64.whl (251.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (298.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (287.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_x86_64.whl (285.4 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_universal2.whl (423.3 kB view details)

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

File details

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

File metadata

  • Download URL: riskfolio_lib-6.3.1.tar.gz
  • Upload date:
  • Size: 37.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.7

File hashes

Hashes for riskfolio_lib-6.3.1.tar.gz
Algorithm Hash digest
SHA256 1048655b53a714ac045e756215275a302ae5c5816f3c73459b26056b054dbb46
MD5 6470e5e05bb66c46937ba534faa7e9f7
BLAKE2b-256 1252acaf7a457dfb0c60aed043c6170b3f8fe4cdaefd2c85c84262819572ac7a

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 570fd3b8f508b0573efd573a2da6a6726c705ded9db41460bd090c5c4a938787
MD5 db41a7d06de8fcd624d423327f3e1bac
BLAKE2b-256 3cebbff413ffcfb4a71b58abdd6f2d785ab8a490715c28720800d70bd18e58b2

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b331a6e0f4dfa741198819470595392bf330e154cea3e3aab8d03788bb310e23
MD5 fe663284bbb26f5d3c84cc35702041e4
BLAKE2b-256 9f4af4f78fae09862f9aa8f4c9b7670bcd500ef59f4b8d7616f7390ad05e9f99

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c00c07552226899e2381d6ee2d5b3711d0a32a5b0ba5ade7f04c32fa430d3de
MD5 a94bc8d9e300a49ddf409cac14ab742a
BLAKE2b-256 f93d37e6a2cc4360a73553b5ca7bee9aeabcca9f5d49b1a6ddab1b91cf93ef2d

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bb5763ab3f2579cb54ddab3290cbd5f56223c73f93b91fceff88e202d7e0a175
MD5 177f4297fecf509eecb5d3294181e232
BLAKE2b-256 2524e244441d8513d141bc943486409abe4cb2c1a6e2bee78ac2b7abb7cf00e7

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5fd358f1821d46645b63956f354ce65d121d725ba7bd353ab64d684fc9ccede0
MD5 f6d22418e2f22b5a42751cd6a431ce08
BLAKE2b-256 834069f9dcecc80f41d5a33803ed89a573ddf854e31da9418fcbf3ac11ce3d1c

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a68605f9ba195882b4717524071d76d50225daf24fb568da7389030223ed3ecd
MD5 76890e3213fa479283d782f37e6868ce
BLAKE2b-256 452d0f474ac7ca0573aefe1a98c79e97db1a56155a83ea65e1c646f3782b3f6a

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27bfbb2b93c8f22b2414aa5d766a36a9c060e9f39ab684578286da6eb7585b42
MD5 79277ec71fc65798be2b7751b0218946
BLAKE2b-256 7af7a0d9f830f4039db70ded19f73ef3855fc718bdfb1c220e11c0ac043df0d6

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f634abe5a57f9188d28ef5b8b2c0e02a11430af772350bfc6071c80203cf256e
MD5 56feb059dea40092850f45b1d6d7181a
BLAKE2b-256 4f2a3f85e6fbe139b8069ff511b6609c11ae6f9f57cfd22359647ef4528ed2c0

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8718705f8fa43152d815eb73b85c545d7552f6cffed944bf3fc903d176a96c01
MD5 0237d90b2d94db539373bcfdfd780161
BLAKE2b-256 5c7c3da9119688e44a7c2a20d8199f3d07d8f669e1d3394951fb112829ecf001

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 359944709469fbb2131c89267889b333ff1da3f33883280b6724111bc425dc0a
MD5 6151910a2dc41d87fa9ebbaee2d44b35
BLAKE2b-256 838a0045a1fefcc13004b749c03a51147228fbda7a6669733b4421b5520bbd3d

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 69e7b459cb0d9a017d54867a9a38e0c3bcb89f4642c045dd2417b76f0b2c84a4
MD5 4cdcad4afedfec92e93a9f017b437722
BLAKE2b-256 eab6347d00ee002afdd75db9eeeb37ca2d7480f3f29f609530594a8e04144ec5

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4865a3b97ca7cef71731cc1af5e7355aeea3ad3dfaad004240edca4b000ac65e
MD5 a28e2c7dbf97802b94afccec99ad3a5e
BLAKE2b-256 c005af26b27d53a7ebbe3014854b2932b4af6f7511e8297005b536b894b8bace

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3f1dc82fb8fde9b3d6588436dff4ac92dbb0c688c6df943db0839b2dfc81114
MD5 3efe69389e6a239aa050ddaf4acbc81d
BLAKE2b-256 9b55c5b9e55f136ab55600e5171012a76ce9f8a6843d9d1110a50a897c918e1c

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 687a49b5eaefa4680436cd649a22bf2fd8ff89ac548759eaf30751086bd5ee0b
MD5 71ee19d0f617fb652a9aebde7ac08f93
BLAKE2b-256 c4229607a01d377575fb4175031a514c2ef42501733eacddf8ee97574ca25ae3

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c41c0442e04f53977ff44d18e704ce26ce6b04de40c9e0e2c3c4fed5e7cd5c4c
MD5 7404ee6cfb08e9396ee1685d72928c24
BLAKE2b-256 7f364ab8c076b817535565844de1d831e8ad12fd99e1d31aa60a8eaa78cd8812

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c0ec7542bc19b1a84bd6caaed261146809d62d905434c1d08e585e597cc8a5ff
MD5 bcebbfe36cd806607dfce858ffb03f72
BLAKE2b-256 ce88bc058a9ef50e16f0fa13f11e70986679e9479dee60074b0fde9c07be4380

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4c98e7c45a0114962d17145f49ae1935e08235c398a8a3dd29c007608edd51c
MD5 338cb219839294598fd953db0d0d5aef
BLAKE2b-256 4d092b0bdf58f482c638873351c0a561783d0d41cc0f34f46cefea31c6555b05

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f745b3f2a9e04f0845ea317f8867c1f4acaecc9a485880db730c5c01684be885
MD5 e9cea294a3c2c25dcad2cb97c5c37726
BLAKE2b-256 84f02e370a8e06f93e7fc301e3a7e044a9485c05b2ba4238a4a9c08be2c8164b

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 819e0d48ef5c08b9fe73e325c207ff681a8f53488c5ac89b49cb3ded6a5ccc73
MD5 8b6ca660bfb2f90b956ca9a9697e91a8
BLAKE2b-256 2ee09647906a23bd563d765d3d5c8d2cdbfa64c20fded22637fecce99b048594

See more details on using hashes here.

File details

Details for the file Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for Riskfolio_Lib-6.3.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3be31bd1225a8d1f101a974cb6a9163988b10b12613de7bd4a3817192c4075d4
MD5 c38f3b187cc0167e860ce104a1add750
BLAKE2b-256 0650196da91d5ada26b1650928cdfcbecb97266dcf277a41d343571b4820ce43

See more details on using hashes here.

Supported by

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