pyportfolioopt

$npx mdskill add mkurman/zorai/pyportfolioopt

Optimize portfolios using advanced risk models and factor analysis.

  • Generates asset allocations via mean-variance, Black-Litterman, and risk parity methods.
  • Depends on historical price data and covariance matrices for calculations.
  • Selects weights by minimizing risk or maximizing Sharpe ratio under constraints.
  • Outputs clean weight arrays and performance metrics like return and volatility.

SKILL.md

.github/skills/pyportfoliooptView on GitHub ↗
---
name: pyportfolioopt
description: "Portfolio optimization library: mean-variance, Black-Litterman, CVaR optimization, risk parity, Hierarchical Risk Parity (HRP), and CLA. Factor models, shrinkage estimators, and ex-ante risk analysis."
tags: [portfolio-optimization, risk-management, asset-allocation, mean-variance, hrp, quant-finance, zorai]
---
## Overview

PyPortfolioOpt implements mean-variance optimization, Black-Litterman, CVaR optimization, risk parity, Hierarchical Risk Parity (HRP), and CLA. Handles asset allocation with factor models and ex-ante risk decomposition.

## Installation

```bash
uv pip install PyPortfolioOpt
```

## Max Sharpe Portfolio

```python
import yfinance as yf
from pypfopt import EfficientFrontier, risk_models, expected_returns

prices = yf.download(["AAPL", "MSFT", "GOOGL"], start="2022-01-01")["Close"]
mu = expected_returns.mean_historical_return(prices)
S = risk_models.sample_cov(prices)

ef = EfficientFrontier(mu, S)
weights = ef.max_sharpe()
print(ef.clean_weights())
perf = ef.portfolio_performance()
print(f"Return: {perf[0]:.2%}, Vol: {perf[1]:.2%}, Sharpe: {perf[2]:.2f}")
```

## HRP

```python
from pypfopt import HRPOpt
returns = prices.pct_change().dropna()
hrp = HRPOpt(returns)
weights = hrp.optimize()
```

## References
- [PyPortfolioOpt docs](https://pyportfolioopt.readthedocs.io/)
- [PyPortfolioOpt GitHub](https://github.com/robertmartin8/PyPortfolioOpt)

More from mkurman/zorai

SkillDescription
account-management>
agile-scrum>
albumentationsFast image augmentation library (Albumentations). 70+ transforms for classification, segmentation, object detection, keypoints, and pose estimation. Optimized OpenCV-based pipeline with unified API across all CV tasks. Supports images, masks, bounding boxes, and keypoints simultaneously. Note: classic Albumentations (MIT) is no longer maintained; successor AlbumentationsX uses AGPL-3.0. For torchvision-native augmentations, use torchvision.transforms.v2.
aml-complianceAnti-Money Laundering (AML) and Know Your Customer (KYC) compliance workflow. Sanctions screening, PEP detection, transaction monitoring, suspicious activity reporting (SAR), and OFAC compliance.
anki-connectThis skill is for interacting with Anki through AnkiConnect, and should be used whenever a user asks to interact with Anki, including to read or modify decks, notes, cards, models, media, or sync operations.
approval-checkpoint-long-taskCanonical long-task pack for daemon-managed work with deliberate approval checkpoints, status summaries, rollback notes, and mobile-safe governance-aware updates.
auditing-goal-artifactsUse when reviewing recent zorai goal run outputs, closure markers, ledgers, or evidence bundles to judge whether completion is credible or to identify remaining uncertainty.
autogenAutoGen (Microsoft) — multi-agent conversation framework. Agent-to-agent chat, code generation & execution, tool use, group chat, and human-in-the-loop. Build collaborative AI systems with specialized agents.
backtraderPython backtesting framework for trading strategies. Data feeds, brokers, analyzers, and live trading support. Strategy development with commission models, slippage, and signal-based execution.
beautiful-mermaidRender Mermaid diagrams as SVG and PNG using the Beautiful Mermaid library. Use when the user asks to render a Mermaid diagram.