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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.6.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.6.6.tar.gz
Algorithm Hash digest
SHA256 dd5e690911849ffb6d5c33b88f7a595d2a56f6f4b701dafd6bddd2f39fe92c0e
MD5 b6aebf6e5b5f9c6d360fa12767979556
BLAKE2b-256 8312095bb90a07fb88c55103253cbcb52472959c97231f97d9e2c197311c03b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.6.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.6.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ba6894e6d0a37e372840f2212d3135cd5689f12f36c650c986470bf8842ef571
MD5 299ac9919f9de8f8a362eeccddbbc9f1
BLAKE2b-256 1e245bede3b4098b9b972ff1c40acfcb15d3c2ab2446726ef5474a6df84c1aae

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