Metadata-Version: 2.5
Name: quanttoolbox
Version: 0.3.0
Summary: Python port of the MATLAB QuantToolBox: econometrics, portfolio optimization, and risk analytics.
Project-URL: Repository, https://github.com/lcrmorin/QuantToolBox
Project-URL: Documentation, https://lcrmorin.github.io/QuantToolBox/
Author: Lucas Morin
License: MIT
Keywords: econometrics,finance,portfolio-optimization,quant,risk-parity
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: cvxpy>=1.4
Requires-Dist: numpy>=1.26
Requires-Dist: pandas>=2.1
Requires-Dist: qpsolvers>=4.3
Requires-Dist: scipy>=1.11
Requires-Dist: statsmodels>=0.14
Provides-Extra: dev
Requires-Dist: black>=24.0; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Requires-Dist: mkdocs>=1.6; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.25; extra == 'docs'
Provides-Extra: sklearn
Requires-Dist: scikit-learn>=1.3; extra == 'sklearn'
Provides-Extra: viz
Requires-Dist: matplotlib>=3.8; extra == 'viz'
Description-Content-Type: text/markdown

# QuantToolBox

A Python port of Thierry Roncalli's MATLAB QuantToolBox and the
Handbook of Sustainable Finance toolbox: econometrics, portfolio
optimization, and risk analytics.

```bash
pip install quanttoolbox
```

## Example

```python
import numpy as np
from quanttoolbox.portfolio.risk_budgeting import erc_portfolio

cov_matrix = np.array([
    [0.09, 0.024, 0.018],
    [0.024, 0.04, 0.012],
    [0.018, 0.012, 0.0225],
])

result = erc_portfolio(cov_matrix)
print(result.weights)               # equal-risk-contribution weights
print(result.pct_risk_contribution)  # ~equal, by construction
```

## Docs

- [Examples](https://lcrmorin.github.io/QuantToolBox/examples/) —
  worked examples with real numeric output, ordered from simplest to
  most involved.
- [API reference](https://lcrmorin.github.io/QuantToolBox/api/) —
  generated from the docstrings.
- [Notes for translators](https://lcrmorin.github.io/QuantToolBox/migration_map/)
  — file-by-file mapping back to the original MATLAB source, and what's
  left to port.

## License

MIT.
