/install finskills-portfolio-manager
Portfolio Manager
Monitor, analyze, and optimize a multi-asset US equity portfolio using live batch quotes, market summary data, and sector performance from the Finskills API. Computes real-time P&L, risk metrics, sector concentration, and generates rebalancing recommendations aligned with your target allocation.
Setup
API Key required — Register at https://finskills.net to get your free key.
Header: X-API-Key: \x3Cyour_api_key>
Get your API key: Register at https://finskills.net — free tier available, Pro plan unlocks real-time quotes, history, and financials.
When to Activate This Skill
Activate when the user:
- Provides a list of holdings (ticker + shares or $ value) and asks for portfolio analysis
- Asks about their portfolio's performance, sector concentration, or risk metrics
- Wants a rebalancing recommendation
- Asks how their portfolio compares to the S&P 500 or benchmarks
- Asks which positions are dragging or leading performance
Required Information
Before starting, collect:
- Holdings list: Each entry needs
ticker,shares(orcurrent_value), and optionallycost_basis - Total portfolio value (or derive from positions)
- Target allocation (if rebalancing is requested) — e.g., "60% equities, 30% bonds, 10% cash"
- Benchmark — Default is S&P 500 (SPY)
Example holdings input format:
AAPL: 50 shares @ $150 cost basis
MSFT: 30 shares @ $280 cost basis
NVDA: 20 shares @ $400 cost basis
SPY: 100 shares @ $420 cost basis
Data Retrieval — Finskills API Calls
1. Batch Quotes for All Holdings
GET https://finskills.net/v1/stocks/quotes?symbols={TICKER1,TICKER2,...}
Extract for each: price, changePercent, marketCap, volume
2. Market Summary (Benchmark)
GET https://finskills.net/v1/market/summary
Extract: S&P 500, Nasdaq, Dow Jones — current level, daily change, YTD performance
3. Sector Performance
GET https://finskills.net/v1/market/sectors
Extract: All 11 GICS sector ETF performances (1D, 1W, 1M, YTD) for context
4. Company Profile (for sector classification)
For each unique ticker not already classified:
GET https://finskills.net/v1/stocks/profile/{SYMBOL}
Extract: sector, industry (to assign sector weight in portfolio)
Analysis Workflow
Step 1 — Position Valuation
For each holding:
Current Value = shares × current_price
Daily P&L = shares × (current_price − prev_close_price)
Daily P&L % = current_price / prev_close_price − 1
Total P&L = current_value − (shares × cost_basis) [if cost basis provided]
Total P&L % = (current_value / (shares × cost_basis)) − 1
Portfolio Weight = current_value / total_portfolio_value
Step 2 — Portfolio-Level Metrics
Performance:
Portfolio Daily Return = Σ (weight_i × daily_return_i)
Portfolio Total Return = (total_current_value / total_cost_basis) − 1 [if basis known]
Best Performer (1D) = max daily_return_i
Worst Performer (1D) = min daily_return_i
Risk Metrics (estimate from weights and sector exposure):
- Concentration Risk: Largest single position as % of portfolio
-
20%: High concentration ⚠️
-
35%: Very high concentration 🚨
-
- Sector Concentration: Top sector weight
-
40%: Sector-concentrated ⚠️
-
- Beta Approximation: Weight-average of individual stock betas (if available from profile data)
- Use sector beta proxies: Tech ≈ 1.3, Utilities ≈ 0.5, Financials ≈ 1.1, Healthcare ≈ 0.7
Benchmark Comparison:
Relative Return (1D) = Portfolio Daily Return − S&P 500 Daily Return
Step 3 — Sector Allocation Analysis
Group holdings by sector (using profile data):
- Compute actual sector weights
- Compare to S&P 500 sector weights (approximate benchmarks):
- Technology: 29%, Healthcare: 13%, Financials: 13%, Consumer Disc: 11%, Industrials: 9%, Communication: 8%, Energy: 4%, Consumer Staples: 6%, Real Estate: 3%, Materials: 2%, Utilities: 2%
Flag overweight (> +10pp vs benchmark) and underweight (\x3C -10pp vs benchmark) sectors.
Step 4 — Rebalancing Analysis (if requested)
Target deviation detection:
For each position:
Target Weight = stated_target_%
Current Weight = current_value / total_value
Drift = Current Weight − Target Weight
Rebalance Action = BUY/SELL if abs(Drift) > 5%
Rebalance Quantity = abs(Drift × total_value) / current_price [shares to trade]
Tax-aware note: Flag positions with > 1 year holding for LTCG treatment before suggesting sells.
Step 5 — Actionable Recommendations
Generate 3–5 specific recommendations:
- Positions to trim (concentration/overweight sector)
- Positions to add (underweight sectors relative to conviction)
- Hedging suggestions (if portfolio Beta > 1.2 and market at all-time highs)
- Cash deployment suggestions (if cash > 10% of target)
Output Format
╔══════════════════════════════════════════════════════╗
║ PORTFOLIO REPORT — {DATE} ║
╚══════════════════════════════════════════════════════╝
💼 PORTFOLIO SUMMARY
Total Value: ${total_value}
Daily P&L: ${daily_pnl} ({daily_pnl_pct}%)
Total Return: ${total_pnl} ({total_pnl_pct}%) [vs. cost basis]
vs. S&P 500 (1D): {+/- bps} bps
📋 HOLDINGS BREAKDOWN
{Ticker} {Shares}sh ${price} {weight}% Day: {+/-}% Total: {+/-}%
─────────────────────────────────────────────────────
AAPL 50 sh $189.40 18.4% +1.2% +26.3%
MSFT 30 sh $415.20 24.2% -0.3% +48.2%
...
─────────────────────────────────────────────────────
TOTAL — — 100% {port_day}% {port_total}%
🏆 Best Today: {ticker} +{%}
📉 Worst Today: {ticker} -{%}
🏛️ SECTOR ALLOCATION
Sector Portfolio S&P 500 Over/Under
Technology {%} 29% {+/-pp}
Healthcare {%} 13% {+/-pp}
...
[⚠️ Any sectors > 40% or > +15pp vs benchmark]
⚠️ RISK FLAGS
• Largest position: {ticker} at {%} [{normal/concentrated}]
• Est. Portfolio Beta: {beta} [vs SPY]
• {Any other flags}
📊 MARKET CONTEXT
S&P 500: {level} {day_change}% YTD: {ytd}%
Nasdaq: {level} {day_change}% YTD: {ytd}%
{Leading sector today}: +{%}
{Lagging sector today}: -{%}
🔄 REBALANCING RECOMMENDATIONS
1. {Action}: {Ticker} — {rationale}
2. {Action}: {Ticker} — {rationale}
3. {Action}: Consider adding {sector} exposure (currently underweight {pp})
Limitations
- Batch quote latency may be 1–15 minutes delayed depending on data source.
- Beta estimates are approximated from sector proxies unless individual beta data is available.
- Bond, international equity, and alternative assets are not currently covered.
- This skill does not connect to brokerage accounts or execute trades.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install finskills-portfolio-manager - 安装完成后,直接呼叫该 Skill 的名称或使用
/finskills-portfolio-manager触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
portfolio-manager 是什么?
Monitor and rebalance a multi-asset portfolio using real-time quotes, sector allocation, and risk metrics from the Finskills API. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 80 次。
如何安装 portfolio-manager?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install finskills-portfolio-manager」即可一键安装,无需额外配置。
portfolio-manager 是免费的吗?
是的,portfolio-manager 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
portfolio-manager 支持哪些平台?
portfolio-manager 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 portfolio-manager?
由 finskills(@finskills)开发并维护,当前版本 v1.0.2。