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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhrp-0.4.0.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.0.tar.gz
Algorithm Hash digest
SHA256 b08e51017b054d88d6b1b6747d6ae388a6c19cb7558da6ff2bc2473a28c5107e
MD5 9593c5a6d32251da745f13668b3c96f1
BLAKE2b-256 3341d95730c7d5a740b121e1d9a88effaaddbbf21aa8c844506a949e0de03bd6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhrp-0.4.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55e1a56622f67ddd5881ce99926ce33fb5b2c7acf9b08b663770d660fe7cece9
MD5 9aa539b1f251db37d69ea11c8162f833
BLAKE2b-256 295a41536de7d5bf00930142172203dae3c9a1cec569194982586d9d6ff817b7

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