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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.4.6.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.6.tar.gz
Algorithm Hash digest
SHA256 e1f703cd997005750988115df3ece93d1444e40880ece6b452253a0a81ba5dbb
MD5 202a2acc2b4b9c094e39b301339e01c6
BLAKE2b-256 259d522444bc697b3ea98308a4d55779e1d221ec6bb04949d83ff1956f92e1ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.4.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 471918b565f75700376e1034471e8ec7770fcde528707fd449c6ec3443b953e5
MD5 b646f18bb8b53a11b9eb3e5dd88be377
BLAKE2b-256 fcda4efce2bd229cddcc8b76ca40cfc2d8e4d149a1a9612bc26b747385df48f0

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