1kalin/afrexai-portfolio-risk/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: ```yaml portfolio: name: "User Portfolio" currency: USD as_of: "2026-02-15" positions: - ticker: AAPL shares
npx skillsauth add openclaw/skills 1kalin/afrexai-portfolio-riskInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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
For each position, use web search to find current price:
[TICKER] stock price today[COIN] price USD today| 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% |
Calculate ALL of the following for every portfolio analysis:
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%
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)
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)
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 < 0.8: Portfolio is DEFENSIVE
- Negative beta positions: HEDGE value
Market Impact:
- If S&P 500 drops 10%, portfolio expected to move: Beta × -10%
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
- < 0: POOR — return doesn't justify risk
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%
Run these scenarios against the portfolio and report impact:
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
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
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
Compare current allocation to standard models:
AGGRESSIVE (Age <35, 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]
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
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 |
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 (<0.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
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]"
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
## 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]
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)
Additional crypto-specific metrics:
If portfolio includes options:
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.
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) |
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。