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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.6.4.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.4.tar.gz
Algorithm Hash digest
SHA256 f8f13b1e9bbf12bdc117e5bc59ee701569f650c66a75e68f8238be7202d37d76
MD5 6d53b4e8615d4d684a3e655c51fc0403
BLAKE2b-256 c9d348e9ad657b7c6cce0a3cfbde21b6425cb410ae54371d9a0bb3b42fcd4879

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.6.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7867cc4c85057ea095328581b162e12206075c628f5fe533990815b46b4bbe71
MD5 5200a169ad2ad0ba8b6617c3e5b1c30c
BLAKE2b-256 04f51deae3995f3b43ed2c73274a233ff92e1c08975ab89662f6c83c51de3cd5

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