← 返回 Skills 市场
1kalin

Portfolio Risk Analyzer

作者 1kalin · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
895
总下载
0
收藏
2
当前安装
1
版本数
在 OpenClaw 中安装
/install afrexai-portfolio-risk
功能描述
Analyze your portfolio to identify concentration risks, calculate Value at Risk, estimate drawdowns, beta, Sharpe ratio, income, run stress tests, and sugges...
使用说明 (SKILL.md)

Portfolio Risk Analyzer

Complete investment portfolio risk management system. Analyze positions, calculate risk metrics, stress test scenarios, optimize allocations, and generate institutional-grade risk reports — all without external APIs.


1. Portfolio Intake

When the user shares their portfolio (positions, tickers, amounts), structure it into this format:

portfolio:
  name: "User Portfolio"
  currency: USD
  as_of: "2026-02-15"
  positions:
    - ticker: AAPL
      shares: 50
      avg_cost: 185.00
      current_price: 228.50  # Look up via web search
      asset_class: US_EQUITY
      sector: Technology
    - ticker: BTC
      units: 0.5
      avg_cost: 42000
      current_price: 97500
      asset_class: CRYPTO
      sector: Digital Assets
    - ticker: VOO
      shares: 100
      avg_cost: 410.00
      current_price: 535.00
      asset_class: US_EQUITY_ETF
      sector: Broad Market
  cash:
    amount: 15000
    currency: USD

Price Lookup

For each position, use web search to find current price:

  • Search: [TICKER] stock price today
  • For crypto: [COIN] price USD today
  • Record source and timestamp

Portfolio Summary Table

Position Shares Cost Basis Current Value Weight P&L P&L %
AAPL 50 $9,250 $11,425 18.2% +$2,175 +23.5%
... ... ... ... ... ... ...
TOTAL $XX,XXX $XX,XXX 100% ±$X,XXX ±X.X%

2. Risk Metrics Calculator

Calculate ALL of the following for every portfolio analysis:

2.1 Concentration Risk

Position Concentration:
- Any single position >20% of portfolio = HIGH RISK ⚠️
- Any single position >10% = MODERATE RISK
- Top 3 positions >50% = CONCENTRATED

Sector Concentration:
- Any sector >30% = OVERWEIGHT
- Count unique sectors — fewer than 4 = UNDER-DIVERSIFIED

Asset Class Breakdown:
- Equities: X%
- Fixed Income: X%
- Crypto: X%
- Cash: X%
- Alternatives: X%

2.2 Value at Risk (VaR) — Parametric Method

Calculate the maximum expected loss at given confidence levels:

Daily VaR Calculation:
1. Look up each position's historical volatility (annualized)
   - Use web search: "[TICKER] historical volatility 30 day"
   - Typical ranges: Large cap stocks 15-25%, Crypto 50-80%, Bonds 5-10%

2. Convert to daily volatility:
   Daily Vol = Annual Vol / √252

3. Position VaR (95% confidence):
   Position VaR = Position Value × Daily Vol × 1.645

4. Position VaR (99% confidence):
   Position VaR = Position Value × Daily Vol × 2.326

5. Portfolio VaR (simplified — assumes correlation ≈ 0.5 for stocks):
   Portfolio VaR ≈ √(Σ(Position VaR²) + 2×0.5×Σ(VaR_i × VaR_j))

Report:
- 1-Day 95% VaR: $X,XXX (X.X% of portfolio)
- 1-Day 99% VaR: $X,XXX (X.X% of portfolio)
- 10-Day 95% VaR: $X,XXX (= 1-Day VaR × √10)
- Monthly 95% VaR: $X,XXX (= 1-Day VaR × √21)

2.3 Maximum Drawdown Estimation

Based on asset class historical max drawdowns:
- US Large Cap: -50% (2008-09), typical correction -20%
- US Small Cap: -55%, typical correction -25%
- International Equity: -55%, typical -25%
- Emerging Markets: -65%, typical -30%
- Investment Grade Bonds: -15%, typical -5%
- High Yield Bonds: -30%, typical -10%
- REITs: -70%, typical -25%
- Crypto (BTC): -85%, typical -50%
- Gold: -45%, typical -15%
- Cash: 0%

Portfolio Max Drawdown Estimate:
= Σ(Position Weight × Asset Class Max Drawdown)

Report:
- Estimated worst-case drawdown: -$XX,XXX (XX.X%)
- Estimated typical correction: -$XX,XXX (XX.X%)
- Recovery time estimate: X-X months (based on historical averages)

2.4 Beta & Market Sensitivity

For each equity position:
- Look up beta via web search: "[TICKER] beta"
- Portfolio Beta = Σ(Position Weight × Position Beta)

Interpretation:
- Beta > 1.2: Portfolio is AGGRESSIVE (amplifies market moves)
- Beta 0.8-1.2: Portfolio is NEUTRAL
- Beta \x3C 0.8: Portfolio is DEFENSIVE
- Negative beta positions: HEDGE value

Market Impact:
- If S&P 500 drops 10%, portfolio expected to move: Beta × -10%

2.5 Sharpe Ratio Estimation

Portfolio Expected Return = Σ(Weight × Expected Return)
Where Expected Return by asset class:
- US Large Cap: 8-10% annually
- US Small Cap: 9-11%
- International Developed: 6-8%
- Emerging Markets: 8-12%
- Investment Grade Bonds: 4-5%
- High Yield: 6-7%
- Crypto: highly variable (use 0% for conservative estimate)
- REITs: 7-9%
- Cash: current money market rate (~4.5%)

Risk-Free Rate: current 3-month T-bill rate (search if needed)

Sharpe Ratio = (Portfolio Expected Return - Risk-Free Rate) / Portfolio Volatility

Rating:
- > 1.0: EXCELLENT risk-adjusted returns
- 0.5-1.0: GOOD
- 0-0.5: MEDIOCRE — consider rebalancing
- \x3C 0: POOR — return doesn't justify risk

2.6 Income Analysis

For dividend-paying positions:
- Look up dividend yield: "[TICKER] dividend yield"
- Annual Income = Shares × Annual Dividend per Share
- Portfolio Yield = Total Annual Dividends / Portfolio Value

Report:
- Monthly estimated income: $XXX
- Annual estimated income: $X,XXX
- Yield on cost: X.X%
- Current yield: X.X%

3. Stress Testing

Run these scenarios against the portfolio and report impact:

3.1 Standard Scenarios

scenarios:
  market_crash_2008:
    name: "2008 Financial Crisis"
    impacts:
      US_EQUITY: -0.50
      INTL_EQUITY: -0.55
      EMERGING: -0.60
      BONDS: +0.05
      HIGH_YIELD: -0.30
      REITS: -0.70
      CRYPTO: -0.80  # projected based on risk profile
      GOLD: +0.10
      CASH: 0

  covid_crash_2020:
    name: "COVID-19 Crash (Feb-Mar 2020)"
    impacts:
      US_EQUITY: -0.34
      INTL_EQUITY: -0.35
      EMERGING: -0.35
      BONDS: +0.03
      HIGH_YIELD: -0.20
      REITS: -0.40
      CRYPTO: -0.50
      GOLD: -0.05
      CASH: 0

  dot_com_2000:
    name: "Dot-Com Bust (2000-2002)"
    impacts:
      US_EQUITY: -0.45
      TECH: -0.75  # Apply to technology sector specifically
      INTL_EQUITY: -0.40
      BONDS: +0.15
      CASH: 0

  rate_hike_shock:
    name: "Rapid Rate Hike (+300bps)"
    impacts:
      US_EQUITY: -0.15
      BONDS: -0.15
      HIGH_YIELD: -0.10
      REITS: -0.25
      CRYPTO: -0.20
      GOLD: -0.10
      CASH: +0.01  # higher yields

  inflation_surge:
    name: "Stagflation (persistent 8%+ inflation)"
    impacts:
      US_EQUITY: -0.20
      BONDS: -0.20
      CRYPTO: -0.10  # debatable hedge
      GOLD: +0.15
      REITS: -0.05
      COMMODITIES: +0.20
      CASH: -0.03  # real value erosion

  crypto_winter:
    name: "Crypto Winter (80% drawdown)"
    impacts:
      CRYPTO: -0.80
      US_EQUITY: -0.05  # minor contagion

3.2 Stress Test Report Format

For each scenario:

📉 SCENARIO: [Name]

| Position | Current Value | Stressed Value | Loss |
|----------|--------------|----------------|------|
| AAPL     | $11,425      | $5,713         | -$5,712 |
| ...      | ...          | ...            | ...  |
| TOTAL    | $XX,XXX      | $XX,XXX        | -$XX,XXX (-XX.X%) |

Could you survive this? [YES/NO based on cash reserves and income needs]
Recovery estimate: X-X months

3.3 Custom Scenario Builder

If user describes a specific worry, build a custom scenario:

User: "What if tech crashes 40% but bonds rally?"
→ Build custom impact map, apply to portfolio, report results

4. Portfolio Optimization

4.1 Current Allocation Assessment

Compare current allocation to standard models:

AGGRESSIVE (Age \x3C35, high risk tolerance):
  Equities: 80-90%, Bonds: 5-10%, Alternatives: 5-10%, Cash: 2-5%

GROWTH (Age 35-50):
  Equities: 60-75%, Bonds: 15-25%, Alternatives: 5-10%, Cash: 5%

BALANCED (Age 50-60):
  Equities: 40-60%, Bonds: 30-40%, Alternatives: 5-10%, Cash: 5-10%

CONSERVATIVE (Age 60+, income focus):
  Equities: 20-40%, Bonds: 40-50%, Alternatives: 5%, Cash: 10-20%

Current allocation matches: [MODEL] profile
Recommended adjustments: [specific moves]

4.2 Risk Parity Analysis

Risk Parity Target: Each asset class contributes EQUAL risk to portfolio

Steps:
1. Calculate each position's risk contribution:
   Risk Contribution = Weight × Volatility × Correlation_with_portfolio

2. For equal risk contribution:
   Target Weight_i = (1/Vol_i) / Σ(1/Vol_j)

3. Report:
   Current vs Risk-Parity weights
   Trades needed to rebalance
   Expected impact on Sharpe Ratio

4.3 Rebalancing Recommendations

Check rebalancing triggers:
- Any position drifted >5% from target? → REBALANCE
- Any asset class drifted >10% from target? → REBALANCE
- Last rebalance >6 months ago? → REVIEW

Rebalancing Method:
1. Calculate target weights
2. Calculate current weights
3. Determine trades needed (minimize transactions)
4. Tax-lot optimization: sell highest-cost lots first (minimize tax)
5. Consider wash sale rules if harvesting losses

Output trade list:
| Action | Ticker | Shares | Est. Value | Reason |
|--------|--------|--------|-----------|--------|
| SELL   | AAPL   | 15     | $3,428    | Overweight tech |
| BUY    | BND    | 25     | $1,850    | Underweight bonds |

4.4 Correlation Analysis

Assess diversification quality:

HIGH correlation pairs (>0.7) — these DON'T diversify each other:
- Tech stocks with each other
- US equity ETFs with each other
- High yield bonds with equities

LOW correlation pairs (\x3C0.3) — TRUE diversifiers:
- Stocks vs Treasury bonds
- US vs Gold
- Equities vs Managed Futures

NEGATIVE correlation — HEDGES:
- Long equity + Put options
- Stocks + VIX products
- Growth + Value in some regimes

Grade portfolio diversification: A/B/C/D/F

5. Risk Score Card (0-100)

Generate a single risk score:

risk_scorecard:
  concentration_risk:
    weight: 20
    score: X  # 100 = well diversified, 0 = single stock
    details: "Top position is X%, X sectors represented"

  volatility_risk:
    weight: 20
    score: X  # 100 = low vol, 0 = extremely volatile
    details: "Portfolio annualized vol: X%"

  drawdown_risk:
    weight: 20
    score: X  # 100 = minimal drawdown exposure, 0 = could lose 50%+
    details: "Max estimated drawdown: X%"

  liquidity_risk:
    weight: 15
    score: X  # 100 = all highly liquid, 0 = illiquid positions
    details: "X% in liquid large-cap, X% in illiquid"

  income_resilience:
    weight: 10
    score: X  # 100 = strong income, 0 = no yield
    details: "Portfolio yield: X%, X% from reliable dividend payers"

  market_sensitivity:
    weight: 15
    score: X  # 100 = low beta/defensive, 0 = highly aggressive
    details: "Portfolio beta: X.XX"

  overall_score: X/100
  rating: "[CONSERVATIVE|MODERATE|AGGRESSIVE|SPECULATIVE]"
  recommendation: "[Key action item]"

Score Interpretation

  • 80-100: FORTRESS — Well-protected, may be too conservative for growth
  • 60-79: SOLID — Good risk management, minor improvements possible
  • 40-59: MODERATE — Reasonable but has notable risk exposures
  • 20-39: ELEVATED — Significant vulnerabilities, rebalancing recommended
  • 0-19: DANGER ZONE — Extreme concentration or volatility, urgent action needed

6. Monitoring & Alerts

Daily Check Template (for cron/heartbeat use)

For each portfolio position:
1. Check price vs previous close (web search)
2. Flag if any position moved >3% in a day
3. Flag if any position hit stop-loss level
4. Check for earnings/events in next 7 days

Alert Thresholds:
- Single position -5% in a day → ALERT
- Portfolio -3% in a day → ALERT
- Position hits 52-week low → WATCH
- VIX > 25 → ELEVATED CAUTION
- VIX > 35 → HIGH ALERT — review hedges

Weekly Review Template

## Portfolio Weekly Review — [Date]

### Performance
- Portfolio value: $XX,XXX (±X.X% week)
- Best performer: [TICKER] +X.X%
- Worst performer: [TICKER] -X.X%
- vs S&P 500: [outperformed/underperformed] by X.X%

### Risk Changes
- VaR change: $X,XXX → $X,XXX
- Any new concentration issues? [Y/N]
- Rebalancing needed? [Y/N]

### Upcoming Events
- Earnings: [tickers and dates]
- Ex-dividend dates: [tickers and dates]
- Fed/macro events: [list]

### Action Items
1. [Specific recommendation]
2. [Specific recommendation]

7. Tax-Loss Harvesting Scanner

For each position with unrealized losses:
1. Calculate unrealized loss: (Current Price - Avg Cost) × Shares
2. Check if loss >$500 (worth harvesting)
3. Identify tax-efficient replacement:
   - Same sector ETF (avoids wash sale)
   - Similar factor exposure
   - Hold replacement 31+ days before switching back

Report:
| Ticker | Unrealized Loss | Replacement | Wash Sale Clear Date |
|--------|----------------|-------------|---------------------|
| XYZ    | -$2,500        | Similar ETF | [date + 31 days]   |

Estimated tax savings: $X,XXX (at X% marginal rate)

8. Special Asset Classes

Crypto Portfolio Risk

Additional crypto-specific metrics:

  • Bitcoin dominance correlation
  • Exchange risk (centralized vs self-custody)
  • Protocol risk for DeFi positions
  • Stablecoin exposure and depeg risk
  • Tax implications of staking/yield

Real Estate (REITs/Property)

  • FFO yield vs dividend yield
  • Interest rate sensitivity
  • Geographic concentration
  • Property type diversification (residential/commercial/industrial)

Options Positions

If portfolio includes options:

  • Delta exposure (equivalent stock position)
  • Theta decay (daily time value loss)
  • Implied volatility vs historical
  • Max loss calculation
  • Breakeven prices

9. Report Generation

Full Risk Report (on request)

Generate a complete PDF-ready markdown report:

# Portfolio Risk Report
## Prepared: [Date]
## Portfolio: [Name]

### Executive Summary
[2-3 sentence overview: total value, risk rating, top recommendation]

### 1. Holdings Summary
[Position table from Section 1]

### 2. Risk Metrics
[All calculations from Section 2]

### 3. Stress Test Results
[All scenarios from Section 3]

### 4. Optimization Recommendations
[From Section 4]

### 5. Risk Scorecard
[From Section 5]

### 6. Action Plan
[Prioritized list of recommended changes]

### Disclaimer
This analysis is for informational purposes only and does not constitute
financial advice. Past performance and historical data do not guarantee
future results. Consult a qualified financial advisor before making
investment decisions.

10. Quick Commands

Respond to these natural language requests:

User Says Action
"Analyze my portfolio" Full Section 1-5 analysis
"What's my risk?" Risk Scorecard (Section 5)
"Stress test my portfolio" All scenarios (Section 3)
"What if the market crashes?" 2008 + COVID scenarios
"How should I rebalance?" Section 4 optimization
"Tax loss harvest" Section 7 scanner
"Weekly review" Section 6 weekly template
"Add [position]" Update portfolio YAML, recalculate
"Remove [position]" Update portfolio YAML, recalculate
"What's my VaR?" Value at Risk calculation (Section 2.2)
"Compare to S&P 500" Benchmark comparison
"How diversified am I?" Concentration + correlation analysis
"What's my Sharpe ratio?" Section 2.5
"Set alert for [ticker] at [price]" Add to monitoring (Section 6)

Edge Cases

Small Portfolios (\x3C$10K)

  • Skip VaR (not meaningful for small amounts)
  • Focus on concentration risk and savings rate
  • Recommend index-first approach

Single Stock Portfolios (e.g., company RSUs)

  • ALWAYS flag extreme concentration risk
  • Model collar strategies (protective put + covered call)
  • 10b5-1 plan reminder for insiders
  • Calculate how much to diversify per quarter

Crypto-Heavy (>50% crypto)

  • Apply crypto winter scenario prominently
  • Flag exchange counterparty risk
  • Recommend cold storage percentage
  • Note tax complexity of DeFi/staking

International Portfolios

  • Currency risk calculation
  • Country risk premium
  • Withholding tax impact on dividends
  • ADR vs local share considerations

Leveraged Positions (margin/options)

  • Calculate margin call price
  • Stress test at 2x normal drawdown
  • Flag if margin utilization >50%
  • Model forced liquidation scenarios

Retirement Accounts (IRA/401k)

  • Different tax treatment (no tax-loss harvesting needed)
  • RMD impact for traditional IRA
  • Roth conversion opportunity analysis
  • Sequence of returns risk for near-retirees
安全使用建议
This skill appears coherent: it uses the portfolio you provide and public web searches to compute risk metrics — no credentials or installs required. Before installing/using it, consider: (1) web-search lookups will cause your portfolio tickers/holdings to appear in search queries (possible information leakage); avoid submitting highly sensitive holdings if you are concerned. (2) The README's claims about 'daily alerts', 'monitoring', and 'automated scanners' are marketing — this instruction-only skill won't set up background jobs or act on your brokerage without extra services or credentials. (3) Web-scraped prices, betas and volatilities can vary by source; verify critical numbers before acting on trade or tax suggestions. If you want true automated monitoring or broker actions, expect to need additional, explicit integrations (and to grant only the minimum required credentials).
功能分析
Type: OpenClaw Skill Name: afrexai-portfolio-risk Version: 1.0.0 The skill extensively instructs the AI agent to perform unconstrained web searches for critical financial data (e.g., current prices, historical volatility, beta, dividend yields, risk-free rates). While this network access is plausible and necessary for the skill's stated purpose, the instruction to 'Record source and timestamp' implies the agent will process the content of these untrusted search results. This introduces a significant vulnerability, as malicious or misleading information in search results could potentially lead to indirect prompt injection against the agent or compromise the integrity of the financial analysis. There is no evidence of intentional malicious behavior, data exfiltration, or unauthorized command execution within the explicit instructions of `SKILL.md`.
能力评估
Purpose & Capability
Name and description match the runtime instructions: the SKILL.md describes pricing lookups, VaR, drawdown, beta, Sharpe, stress tests and tax-loss scanning — all achievable as advisory calculations using web-scraped data. No unexpected credentials, binaries, or installs are requested.
Instruction Scope
Instructions are focused on computing risk metrics using user-provided portfolio data plus web searches for prices, volatility, beta, yields and the T‑bill rate. The skill does instruct the agent to 'record source and timestamp' for lookups. It also claims features like 'daily alerts', 'monitoring', and an 'automated scanner' which imply persistent/scheduled behavior that the instruction-only skill does not implement or request permissions for — this is a capability/marketing mismatch rather than an overt security problem. Be aware that using web search for prices means portfolio holdings are reflected in external search queries (potential information leakage).
Install Mechanism
No install spec and no code files are present; runtime is instruction-only so nothing is written to disk or downloaded. This reduces attack surface.
Credentials
The skill declares no environment variables, credentials, or config paths — consistent with its stated approach of web searches and local computation. There are no disproportionate credential requests.
Persistence & Privilege
always:false and default autonomous invocation are appropriate. The README and SKILL.md mention monitoring/alerts and automated scanning, but the skill does not request persistent presence or scheduling capabilities — the user should not assume the skill will autonomously run background tasks without additional infrastructure or credentials.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install afrexai-portfolio-risk
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /afrexai-portfolio-risk 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
**Initial release of the Portfolio Risk Analyzer: a comprehensive portfolio risk management system.** - Analyze user investment portfolios with structured intake, including price lookups and summary tables. - Calculate key risk metrics: concentration risk, parametric Value at Risk (VaR), estimated maximum drawdown, beta, Sharpe ratio, and income analysis. - Provide stress test results for historical and custom scenarios; report detailed scenario impacts and recovery estimates. - Assess current allocation versus standard model portfolios and offer optimization suggestions. - Fully self-contained functionality — no reliance on external APIs; leverages web search for data as needed.
元数据
Slug afrexai-portfolio-risk
版本 1.0.0
许可证
累计安装 2
当前安装数 2
历史版本数 1
常见问题

Portfolio Risk Analyzer 是什么?

Analyze your portfolio to identify concentration risks, calculate Value at Risk, estimate drawdowns, beta, Sharpe ratio, income, run stress tests, and sugges... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 895 次。

如何安装 Portfolio Risk Analyzer?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install afrexai-portfolio-risk」即可一键安装,无需额外配置。

Portfolio Risk Analyzer 是免费的吗?

是的,Portfolio Risk Analyzer 完全免费(开源免费),可自由下载、安装和使用。

Portfolio Risk Analyzer 支持哪些平台?

Portfolio Risk Analyzer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Portfolio Risk Analyzer?

由 1kalin(@1kalin)开发并维护,当前版本 v1.0.0。

💬 留言讨论