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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.7.4.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.7.4.tar.gz
Algorithm Hash digest
SHA256 3c446b52a333637733fe36aff57bb32fd2016429e5e7436a9ef4556ae644000b
MD5 1a43ece6b512a2f79fde4e65cbc5a22e
BLAKE2b-256 8b9540b3ef03c17a20a7303646644d18806127c66bcf3e32c89761e9842767bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.7.4-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.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bae70a6f74c830affb1de00b059d5d3e79bb51ac34cec89e8418df724d1284b3
MD5 ec0a611ff8d2e5688d0bc37db00bf5a0
BLAKE2b-256 62aa35b8771c36cbb14d5f9bacffa5ff905f5d2e62a7fb70162424fbda0c94af

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