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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.0.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: poetry/1.3.2 CPython/3.9.7 Darwin/21.6.0

File hashes

Hashes for pyhrp-0.0.0.tar.gz
Algorithm Hash digest
SHA256 8d82fa84d170843ad2bc197c707e1792224c5d55adaff2c7cf8e4885f845896b
MD5 55f3beb7200da9d67aa0528bee6a0bed
BLAKE2b-256 6d49a3c9460e59575c155f17a6189b4c6faa925df7d03e618b92573c8f4cb842

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: poetry/1.3.2 CPython/3.9.7 Darwin/21.6.0

File hashes

Hashes for pyhrp-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c451ec0434cb8e0fc0ab82055c5603696d4c78e9a384554c5e167a606cb68245
MD5 ffbf463b85b1c360d5062a0e2f5abda6
BLAKE2b-256 07b1daec7814df6907191397e39a47ab6f4b614c1b6669b9d2da071f6d22fbf5

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