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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.4.8.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.8.tar.gz
Algorithm Hash digest
SHA256 19a4defb62fcab7b10dcc24ab6f80a408e02e70212c73e06e338b35da3699fa7
MD5 6df9e02dbb15b67e57aeabf62f7e281b
BLAKE2b-256 c5263218d9d3f23fc6cbf75cae847f9fa0c928d0e63c320a325055b75ebb7230

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.4.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 20c008f30da010b97b89a52ffd9c26c7394870b5869c3db651141a180dca5ff3
MD5 c9c41ee9fa54b5406de9696631c20263
BLAKE2b-256 b33b561ad52978669f7f0cfb4a98ebef60e841f765fa63b0408070e55b907a6a

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