Skip to content
Back to skills

Portfolio Optimization

ASecurity

Produce defensible portfolio weights from return history, and check whether the optimizer earns its complexity. Trigger for "帮我优化组合权重", "风险平价配置", "怎么配这几只资产", "降低组合波动怎么调仓", "optimize my portfolio", "risk parity allocation", "rebalance weights", or whenever the user (1) holds several assets and asks how much of each, (2) wants lower volatility/drawdown via allocation, (3) asks equal weight vs something smarter, or (4) receives strategy signals that need converting into weights. Do NOT trigger f...

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 6, 2026
ai-agentspythonrails

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add artherahq/skills --skill portfolio-optimization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Portfolio Optimization?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Portfolio Optimization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artherahq-portfolio-optimization/badge)](https://www.skillsdirectory.com/skills/artherahq-portfolio-optimization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: portfolio-optimization
description: >-
  Produce defensible portfolio weights from return history, and check whether
  the optimizer earns its complexity. Trigger for "帮我优化组合权重",
  "风险平价配置", "怎么配这几只资产", "降低组合波动怎么调仓", "optimize my
  portfolio", "risk parity allocation", "rebalance weights", or whenever the
  user (1) holds several assets and asks how much of each, (2) wants lower
  volatility/drawdown via allocation, (3) asks equal weight vs something
  smarter, or (4) receives strategy signals that need converting into weights.
  Do NOT trigger for single-asset position sizing (execution question) or for
  judging portfolio risk after the fact (risk-assessment).
---

# Portfolio Optimization

Optimizers amplify the noise in their inputs, and the noisiest input in
finance is the expected return. This skill therefore optimizes **risk
structure only** — and always asks the question most optimizers dodge: did the
clever method beat equal weight out-of-sample?

## Principles

1. **No expected-return inputs.** Sample means are noise; MVO on sample means
   is noise squared. The methods here (inverse vol, min variance, ERC risk
   parity, HRP) need only the covariance structure. If the user brings views,
   the honest framing is scenario analysis, not a mean-variance frontier.
2. **Equal weight is the benchmark, not the strawman.** The `compare` mode
   walk-forwards every method against EW; `optimizer_no_edge` is a first-class
   finding, common in practice, and worth telling the user plainly.
3. **Estimation error is disclosed, not hidden.** Covariance is shrunk toward
   an identity target when the panel is short relative to breadth, and the
   report states the intensity. T < 2N earns a wide-error-bars note.
4. **Weights describe risk, not conviction.** The disclosure lines say so and
   must be surfaced.

## Workflow

1. Assemble the return matrix (shared dates, per-asset periodic returns) and
   any constraints (max weight per asset). Confirm the frequency.
2. Start with the comparison, not a single method:
   `python scripts/optimize_portfolio.py --returns returns.csv --method compare`
   — walk-forward OOS vol/Sharpe/maxDD per method vs equal weight.
3. Pick the method the comparison actually supports. Defaults when the
   comparison is inconclusive: `hrp` for structured books (clusters visible),
   `erc` when the user wants balanced risk, `equal` when nothing beats it.
4. Produce weights: `--method hrp --max-weight 0.25 --json weights.json`.
   Report weights, portfolio vol, effective N, and per-asset risk
   contributions together — a weight table without risk contributions hides
   exactly what the user needs to see.
5. Hand the resulting book to `risk-assessment` for the full profile
   (concentration, tails, stress) before anyone acts on it.
6. Rebalancing advice must state turnover implications — weights that change
   10% a month feed the cost ladder in backtest-validation.

## Guardrails

- No mean-variance frontiers from sample means; no implied return forecasts.
- `optimizer_no_edge` findings are reported, not suppressed.
- Shrinkage intensity and estimation-error notes are part of the deliverable.
- Weights are research output, not individualized investment advice — the
  disclosure lines ship with every result.
- Live execution is out of scope; the strongest recommendation is a paper
  rebalance reviewed by the user.

Files in this skill

  • SKILL.md3.4 KB
  • agents/openai.yaml279 B
  • references/methodology.md2.3 KB
  • scripts/optimize_portfolio.py14.5 KB
  • scripts/test_optimize_portfolio.py3.2 KB
  • skill-policy.json307 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.