Skip to main content

...

Project description

pyhrp

DeepSource

A recursive implementation of the Hierarchical Risk Parity (hrp) approach by Marcos Lopez de Prado. We take heavily advantage of the scipy.cluster.hierarchy package.

Here's a simple example

import pandas as pd
from pyhrp.hrp import dist, linkage, tree, _hrp

prices = pd.read_csv("test/resources/stock_prices.csv", index_col=0, parse_dates=True)

returns = prices.pct_change().dropna(axis=0, how="all")
cov, cor = returns.cov(), returns.corr()
links = linkage(dist(cor.values), method='ward')
node = tree(links)

rootcluster = _hrp(node, cov)

ax = dendrogram(links, orientation="left")
ax.get_figure().savefig("dendrogram.png")

For your convenience you can bypass the construction of the covariance and correlation matrix, the links and the node, e.g. the root of the tree (dendrogram).

import pandas as pd
from pyhrp.hrp import hrp

prices = pd.read_csv("test/resources/stock_prices.csv", index_col=0, parse_dates=True)
root = hrp(prices=prices)

You may expect a weight series here but instead the hrp function returns a Cluster object. The Cluster simplifies all further post-analysis.

print(cluster.weights)
print(cluster.variance)
# You can drill into the graph by going downstream
print(cluster.left)
print(cluster.right)

Installation:

pip install pyhpr

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

pyhrp-0.6.5.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

pyhrp-0.6.5-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file pyhrp-0.6.5.tar.gz.

File metadata

  • Download URL: pyhrp-0.6.5.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for pyhrp-0.6.5.tar.gz
Algorithm Hash digest
SHA256 55b9004def70aba6b0804fca035085b683bddee50e3e31c23e5bd5137fbf829d
MD5 3e19ed68be86e3382bd0284218179a8d
BLAKE2b-256 9149c1bcb06c9bff4e59ade333babbff92d9f69836b331da2114eb748c9a6e48

See more details on using hashes here.

File details

Details for the file pyhrp-0.6.5-py3-none-any.whl.

File metadata

  • Download URL: pyhrp-0.6.5-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for pyhrp-0.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 88c35552fdad01c4829618bbe4dfc1b8885e09cbe9b3ce07a698d3e015252ffb
MD5 bb4347d3650ec73de14bf3d2aae52cb0
BLAKE2b-256 40f735836d45e34b3201e9b8b95dea86a1cfa500e95fc2011b8c179d4cac3c31

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