"""
Canopy — Institutional-Grade Hierarchical Portfolio Optimization Engine

A production-ready framework implementing tree-based portfolio construction
methodologies that overcome the inherent instability of classical mean-variance
optimization (Markowitz, 1952) by leveraging the hierarchical structure of
asset correlation matrices.

Supported Algorithms:
    - HRP  : Hierarchical Risk Parity (Lopez de Prado, 2016)
    - HERC : Hierarchical Equal Risk Contribution (Raffinot, 2017)
    - NCO  : Nested Clustered Optimization (Lopez de Prado, 2019)

Usage:
    >>> from canopy.MasterCanopy import MasterCanopy
    >>> opt = MasterCanopy(method='HRP')
    >>> weights = opt.allocate(returns)

References:
    [1] Lopez de Prado, M. (2016). "Building Diversified Portfolios that
        Outperform Out of Sample." Journal of Portfolio Management.
    [2] Raffinot, T. (2017). "Hierarchical Clustering-Based Asset Allocation."
        Journal of Portfolio Management, 44(2), 89-99.
    [3] Lopez de Prado, M. (2019). "A Robust Estimator of the Efficient
        Frontier." SSRN Working Paper.

License: Proprietary / Internal Use
"""
