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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.4.5.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.4.5.tar.gz
Algorithm Hash digest
SHA256 516144a0a12519c43743920c057154068def1b9521cd3816564bab94e291c93f
MD5 63853b44afd3b4c95e4fbb604dd70f9a
BLAKE2b-256 f32e15ef6bf7cfada3d745e900ae9783b72b4608f1237c10cf4239e795dbe19f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.4.5-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.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f4c622ef6b571adacab84da09ce05439a33fd8c320e6ff0bffe7fbf81fd39a1a
MD5 293784536c76a9fe6fb5fce8cd8350bf
BLAKE2b-256 e6ad022e9d91d9006a12979bb3089e78f4130e80ca8fd7fd8d0fc27f2df87995

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