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.4.7.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.4.7.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.4.7.tar.gz
Algorithm Hash digest
SHA256 4ffb73c1f0f0ba6afa36833b749d469dfdcd7ba4e459d712bbbd171667b9e413
MD5 14d9615edd720a2f87bf18d3ab276518
BLAKE2b-256 7e87f5deb0fdb48f795491721d750593ab6e596676adc92bfa01293303cd2813

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.4.7-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.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0da79feb90c44e6a6cbb1d0e979b108d003c4989d301d8c3814c7e46e00604f5
MD5 2fd7c1b324a8b034c70ccbc1e4201ca5
BLAKE2b-256 6469a68a983adea3e4549078526182d27053cfd606ef3c4c6655119214b9de35

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