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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.8.2.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1036-azure

File hashes

Hashes for pyhrp-0.8.2.tar.gz
Algorithm Hash digest
SHA256 03a355c117092b1b5c454df593043952e9fb69649dd4f15a71424780836c4ad7
MD5 06bca4dd5fdfc89a6e65aff38919c18d
BLAKE2b-256 9e93f52cf4b614a03c47c7a7acefb553f99e5a477d4c4d58c24ad7eb447aea0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1036-azure

File hashes

Hashes for pyhrp-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1aea7cee55536a940d7df7e7a9859c88b99e1941336cb63c2942f511c7669876
MD5 1d447d98994d1418a74fcac1d04ff846
BLAKE2b-256 bc397735f00afd1a8f87fe55a42096aba5cd121a379c4da4e3b114927c1854e3

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