关于 portfolio-manager
Portfolio Manager 是一项投资组合分析技能,通过 Alpaca MCP Server 获取持仓和账户数据。它引导用户检查资产配置、分散度、风险、个股和表现,提出再平衡建议并生成 Markdown 报告。
主要功能
- 01获取账户和持仓数据
- 02检查配置与分散度
- 03评估组合及个股风险
- 04分析回报和个别持仓
- 05提出再平衡操作建议
- 06生成 Markdown 报告
适用场景
- 01审查当前投资组合持仓
- 02识别集中度和配置风险
- 03评估个股表现与风险
- 04规划投资组合再平衡
MCP 相关
它通过 Alpaca MCP Server 工具获取账户详情、当前持仓、组合历史和市场数据以供分析。技能也说明可使用具备只读访问能力的经纪商连接。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill portfolio-manager安装后在 Claude Code 中输入/portfolio-manager确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/alpaca-mcp-setup.mdasset-allocation.mddiversification-principles.mdportfolio-risk-metrics.mdposition-evaluation.mdrebalancing-strategies.mdrisk-profile-questionnaire.mdtarget-allocations.mdscripts/check_alpaca_connection.pyscripts/tests/conftest.py详细介绍
投资组合管理器
概述
通过集成 Alpaca MCP Server 获取实时持仓数据,分析和管理投资组合,并进行全面分析,涵盖资产配置、分散化、风险指标、个别持仓评估和再平衡建议。生成包含可执行见解的详细投资组合报告。
此技能通过 MCP(Model Context Protocol)调用 Alpaca 的经纪 API 来访问实时投资组合数据,确保分析基于实际的当前持仓,而非手动输入的数据。
使用时机
在用户提出以下请求时调用此技能:
- “分析我的投资组合”
- “查看我当前的持仓”
- “我的资产配置是什么?”
- “检查我的投资组合风险”
- “我应该对投资组合进行再平衡吗?”
- “评估我的持仓”
- “查看投资组合表现”
- “我应该买入或卖出哪些股票?”
- 任何涉及投资组合层面分析或管理的请求
前提条件
Alpaca MCP Server 设置
此技能需要配置并连接 Alpaca MCP Server。MCP Server 提供以下访问能力:
- 当前投资组合持仓
- 账户净值和购买力
- 历史持仓和交易
- 持仓证券的市场数据
使用的 MCP Server 工具:
get_account_info- 获取账户净值、购买力和现金余额get_positions- 获取所有当前持仓及其数量、成本基础和市值get_portfolio_history- 历史投资组合表现数据- 用于获取报价和基本面的市场数据工具
如果未连接 Alpaca MCP Server,请告知用户,并提供 references/alpaca_mcp_setup.md 中的设置说明。
未使用 Alpaca? 此技能只需要持仓的读取权限,因此任何支持读取的经纪商或聚合器都可以使用。请参阅 awesome-broker-mcp 中的 Alpaca 了解此连接器,或使用
broker-mcp-selector技能来 选择只读方式(例如 SnapTrade 或 Truthifi), 以访问 Alpaca 未覆盖的账户。进行分析时,优先使用只读连接 — 此技能从不需要交易权限。
工作流
步骤 1:通过 Alpaca MCP 获取投资组合数据
使用 Alpaca MCP Server 工具收集当前投资组合信息:
1.1 获取账户信息:
Use mcp__alpaca__get_account_info to fetch:
- Account equity (total portfolio value)
- Cash balance
- Buying power
- Account status
1.2 获取当前持仓:
Use mcp__alpaca__get_positions to fetch all holdings:
- Symbol ticker
- Quantity held
- Average entry price (cost basis)
- Current market price
- Current market value
- Unrealized P&L ($ and %)
- Position size as % of portfolio
1.3 获取投资组合历史(可选):
Use mcp__alpaca__get_portfolio_history for performance analysis:
- Historical equity values
- Time-weighted return calculation
- Drawdown analysis
数据验证:
- 验证所有持仓都具有有效的股票代码
- 确认市值总和与账户净值大致相符
- 检查是否存在过时或不活跃的持仓
- 处理特殊情况(碎股、期权、加密货币,若受支持)
步骤 2:补充持仓数据
针对投资组合中的每项持仓,收集更多市场数据和基本面信息:
2.1 当前市场数据:
- 实时或延迟报价
- 日交易量和流动性指标
- 52 周价格区间
- 市值
2.2 基本面数据: 使用 WebSearch 或可用的市场数据 API 获取:
- 行业和细分行业分类
- 关键估值指标(市盈率、市净率、股息率)
- 近期财报和财务健康指标
- 分析师评级和目标价
- 近期新闻和重大进展
2.3 技术分析:
- 价格趋势(20 日、50 日、200 日移动平均线)
- 相对强度
- 支撑位和阻力位
- 动量指标(如可用,包括 RSI、MACD)
步骤 3:投资组合层面分析
使用参考文件中的框架对投资组合进行全面分析:
3.1 资产配置分析
阅读 references/asset-allocation.md,了解资产配置框架
从多个维度分析当前配置:
按资产类别:
- 股票 vs 固定收益 vs 现金 vs 另类资产
- 与用户风险承受能力对应的目标配置进行比较
- 评估配置是否符合投资目标
按行业:
- 科技、医疗保健、金融、消费等
- 识别行业集中风险
- 与基准行业权重进行比较(例如,S&P 500)
按市值:
- 大盘股 vs 中盘股 vs 小盘股的分布
- 超大型股的集中度
- 市值多元化评分
按地理区域:
- 美国 vs 国际市场 vs 新兴市场
- 评估国内市场集中风险
输出格式:
## Asset Allocation
### Current Allocation vs Target
| Asset Class | Current | Target | Variance |
|-------------|---------|--------|----------|
| US Equities | XX.X% | YY.Y% | +/- Z.Z% |
| ... |
### Sector Breakdown
[Pie chart description or table with sector percentages]
### Top 10 Holdings
| Rank | Symbol | % of Portfolio | Sector |
|------|--------|----------------|--------|
| 1 | AAPL | X.X% | Technology |
| ... |
3.2 多元化分析
阅读 references/diversification-principles.md,了解多元化理论
评估投资组合的多元化质量:
持仓集中度:
- 识别主要持仓及其合计权重
- 如果任何单一持仓占投资组合的比例超过 10-15%,则予以标记
- 计算赫芬达尔-赫希曼指数(HHI)以衡量集中度
行业集中度:
- 识别占主导地位的行业
- 如果任何行业占投资组合的比例超过 30-40%,则予以标记
- 与基准行业多元化程度进行比较
相关性分析:
- 估算主要持仓之间的相关性
- 识别高度相关的持仓(可能存在冗余)
- 评估实际的多元化收益
持仓数量:
- 最佳范围:个人投资组合中持有 15-30 只股票
- 如果多元化不足(少于 10 只股票)或多元化过度(超过 50 只股票),则予以标记
输出:
## Diversification Assessment
**Concentration Risk:** [Low / Medium / High]
- Top 5 holdings represent XX% of portfolio
- Largest single position: [SYMBOL] at XX%
**Sector Diversification:** [Excellent / Good / Fair / Poor]
- Dominant sector: [Sector Name] at XX%
- [Assessment of balance across sectors]
**Position Count:** [Optimal / Under-diversified / Over-diversified]
- Total positions: XX stocks
- [Recommendation]
**Correlation Concerns:**
- [List any highly correlated position pairs]
- [Diversification improvement suggestions]
3.3 风险分析
阅读 references/portfolio-risk-metrics.md,了解风险度量框架
计算并解读关键风险指标:
波动率指标:
- 估算投资组合贝塔值(持仓贝塔值的加权平均)
- 单个持仓的波动率
- 投资组合标准差(如有历史数据)
下行风险:
- 最大回撤(根据投资组合历史数据)
- 当前相对于峰值的回撤
- 存在较大未实现亏损的持仓
风险集中度:
- 高波动率股票(贝塔值 > 1.5)的占比
- 投机性/未盈利公司的占比
- 杠杆使用情况(如适用)
尾部风险:
- 面临潜在黑天鹅事件的风险敞口
- 单只股票集中风险
- 特定行业事件风险
输出:
## Risk Assessment
**Overall Risk Profile:** [Conservative / Moderate / Aggressive]
**Portfolio Beta:** X.XX (vs market at 1.00)
- Interpretation: Portfolio is [more/less] volatile than market
**Maximum Drawdown:** -XX.X% (from $XXX,XXX to $XXX,XXX)
- Current drawdown from peak: -XX.X%
**High-Risk Positions:**
| Symbol | % of Portfolio | Beta | Risk Factor |
|--------|----------------|------|-------------|
| [TICKER] | XX% | X.XX | [High volatility / Recent loss / etc] |
**Risk Concentrations:**
- XX% in single sector ([Sector])
- XX% in stocks with beta > 1.5
- [Other concentration risks]
**Risk Score:** XX/100 ([Low/Medium/High] risk)
3.4 绩效分析
使用可用数据评估投资组合绩效:
绝对收益:
- 投资组合整体未实现盈亏(美元金额和百分比)
- 表现最佳的持仓(按涨幅百分比排名前 5)
- 表现最差的持仓(按跌幅百分比排名后 5)
时间加权收益(如有历史数据):
- 年初至今收益
- 1 年、3 年、5 年年化收益
- 与基准(S&P 500、相关指数)进行比较
持仓层面绩效:
- 盈利持仓与亏损持仓的比例
- 盈利持仓的平均涨幅
- 亏损持仓的平均跌幅
- 接近 52 周高点/低点的持仓
输出:
## Performance Review
**Total Portfolio Value:** $XXX,XXX
**Total Unrealized P&L:** $XX,XXX (+XX.X%)
**Cash Balance:** $XX,XXX (XX% of portfolio)
**Best Performers:**
| Symbol | Gain | Position Value |
|--------|------|----------------|
| [TICKER] | +XX.X% | $XX,XXX |
| ... |
**Worst Performers:**
| Symbol | Loss | Position Value |
|--------|------|----------------|
| [TICKER] | -XX.X% | $XX,XXX |
| ... |
**Performance vs Benchmark (if available):**
- Portfolio return: +X.X%
- S&P 500 return: +Y.Y%
- Alpha: +/- Z.Z%
步骤 4:个股分析
针对关键持仓(按投资组合权重排名前 10–15),进行详细分析:
阅读 references/position-evaluation.md,了解持仓分析框架
针对每项重要持仓:
4.1 验证当前投资逻辑:
- 为什么建立该持仓?(如用户上下文中有相关信息)
- 投资逻辑是否已经兑现或失效?
- 公司近期发展和新闻
4.2 估值评估:
- 当前估值指标(P/E、P/B 等)
- 与历史估值区间比较
- 与同行业公司比较
- 评估为高估 / 合理 / 低估
4.3 技术面状况:
- 价格趋势(上升、下降、横盘)
- 股价相对于移动平均线的位置
- 支撑位和阻力位
- 动能状况
4.4 持仓规模:
- 当前占投资组合的权重
- 根据投资确信度和风险,持仓规模是否合适?
- 相对于最优配置是超配还是低配
4.5 操作建议:
- 持有(HOLD) - 持仓规模合适,且投资逻辑依然成立
- 加仓(ADD) - 鉴于投资机会目前配置不足,且投资逻辑正在增强
- 减仓(TRIM) - 配置过高或估值偏高
- 卖出(SELL) - 投资逻辑失效,其他机会更好
每项持仓的输出:
### [SYMBOL] - [Company Name] (XX.X% of portfolio)
**Position Details:**
- Shares: XXX
- Avg Cost: $XX.XX
- Current Price: $XX.XX
- Market Value: $XX,XXX
- Unrealized P/L: $X,XXX (+XX.X%)
**Fundamental Snapshot:**
- Sector: [Sector]
- Market Cap: $XX.XB
- P/E: XX.X | Dividend Yield: X.X%
- Recent developments: [Key news or earnings]
**Technical Status:**
- Trend: [Uptrend / Downtrend / Sideways]
- Price vs 50-day MA: [Above/Below by XX%]
- Support: $XX.XX | Resistance: $XX.XX
**Position Assessment:**
- **Thesis Status:** [Intact / Weakening / Broken / Strengthening]
- **Valuation:** [Undervalued / Fair / Overvalued]
- **Position Sizing:** [Optimal / Overweight / Underweight]
**Recommendation:** [HOLD / ADD / TRIM / SELL]
**Rationale:** [1-2 sentence explanation]
步骤 5:再平衡建议
阅读 references/rebalancing-strategies.md,了解再平衡方法
生成具体的再平衡建议:
5.1 确定再平衡触发条件:
- 持仓权重相对于目标权重显著偏离
- 需要调整的行业 / 资产类别配置
- 应减仓的超配持仓(超过阈值)
- 应加仓的低配领域(低于阈值)
- 税务因素(资本利得影响)
5.2 制定再平衡计划:
应减仓的持仓:
- 超配持仓(偏离目标的幅度超过阈值)
- 大幅上涨的股票(估值方面的担忧)
- 占投资组合 15–20% 以上的集中持仓
- 投资逻辑失效的持仓
应加仓的持仓:
- 配置不足的行业或资产类别
- 当前配置不足但投资确信度高的持仓
- 有助于改善多元化的新机会
现金配置:
- 如果存在过多现金(占投资组合超过 10%),建议部署资金
- 根据投资机会和配置缺口确定优先顺序
5.3 排定优先级: 按优先级排列再平衡操作:
- 立即 - 降低风险(减持集中持仓)
- 高优先级 - 配置大幅偏离(较目标偏离超过 10%)
- 中优先级 - 配置中度偏离(较目标偏离 5–10%)
- 低优先级 - 微调和机会性调整
输出:
## Rebalancing Recommendations
### Summary
- **Rebalancing Needed:** [Yes / No / Optional]
- **Primary Reason:** [Concentration risk / Sector drift / Cash deployment / etc]
- **Estimated Trades:** X sell orders, Y buy orders
### Recommended Actions
#### HIGH PRIORITY: Risk Reduction
**TRIM [SYMBOL]** from XX% to YY% of portfolio
- **Shares to Sell:** XX shares (~$XX,XXX)
- **Rationale:** [Overweight / Valuation extended / etc]
- **Tax Impact:** $X,XXX capital gain (est)
#### MEDIUM PRIORITY: Asset Allocation
**ADD [Sector/Asset Class]** exposure
- **Target:** Increase from XX% to YY%
- **Suggested Stocks:** [SYMBOL1, SYMBOL2, SYMBOL3]
- **Amount to Invest:** ~$XX,XXX
#### CASH DEPLOYMENT
**Current Cash:** $XX,XXX (XX% of portfolio)
- **Recommendation:** [Deploy / Keep for opportunities / Reduce to X%]
- **Suggested Allocation:** [Distribution across sectors/stocks]
### Implementation Plan
1. [First action - highest priority]
2. [Second action]
3. [Third action]
...
**Timing Considerations:**
- [Tax year-end planning / Earnings season / Market conditions]
- [Suggested phasing if applicable]
步骤 6:生成投资组合报告
创建完整的 Markdown 报告,并保存到仓库根目录:
文件名: portfolio_analysis_YYYY-MM-DD.md
报告结构:
# Portfolio Analysis Report
**Account:** [Account type if available]
**Report Date:** YYYY-MM-DD
**Portfolio Value:** $XXX,XXX
**Total P&L:** $XX,XXX (+XX.X%)
---
## Executive Summary
[3-5 bullet points summarizing key findings]
- Overall portfolio health assessment
- Major strengths
- Key risks or concerns
- Primary recommendations
---
## Holdings Overview
[Summary table of all positions]
---
## Asset Allocation
[Section from Step 3.1]
---
## Diversification Analysis
[Section from Step 3.2]
---
## Risk Assessment
[Section from Step 3.3]
---
## Performance Review
[Section from Step 3.4]
---
## Position Analysis
[Detailed analysis of top 10-15 positions from Step 4]
---
## Rebalancing Recommendations
[Section from Step 5]
---
## Action Items
**Immediate Actions:**
- [ ] [Action 1]
- [ ] [Action 2]
**Medium-Term Actions:**
- [ ] [Action 3]
- [ ] [Action 4]
**Monitoring Priorities:**
- [ ] [Watch list item 1]
- [ ] [Watch list item 2]
---
## Appendix: Full Holdings
[Complete table with all positions and metrics]
步骤 7:交互式后续答疑
准备好回答后续问题:
常见问题:
“为什么我应该卖出 [SYMBOL]?”
- 解释具体问题(估值、投资逻辑失效、持仓集中度)
- 提供支持数据
- 如适用,提供替代持仓
“我应该改买什么?”
- 推荐有助于改善配置的具体股票
- 说明这些股票如何弥补投资组合缺口
- 简要说明投资逻辑
“我最大的风险是什么?”
- 指出主要风险因素(持仓集中度、行业敞口、波动性)
- 量化风险
- 建议缓解策略
“我的投资组合与 [benchmark] 相比如何?”
- 比较配置、行业权重和风险指标
- 突出关键差异
- 评估这些差异是否合理
“我应该现在再平衡,还是等等?”
- 考虑市场状况、税务影响和交易成本
- 提供时机建议及其理由
“你能更详细地分析 [specific position] 吗?”
- 如有需要,使用 us-stock-analysis 技能进行深入分析
- 将分析结果纳入投资组合整体背景
分析框架
目标配置模板
此技能包含适用于不同投资者画像的参考配置模型:
阅读 references/target-allocations.md,了解详细模型:
- 保守型(保本,注重收入)
- 稳健型(平衡增长与收入)
- 成长型(长期资本增值)
- 激进型(追求最大增长,风险承受能力高)
每种模型都包含:
- 资产类别目标(股票/债券/现金/另类资产)
- 行业指导原则
- 市值分布
- 地域配置
- 持仓规模规则
当用户未指定配置策略时,可将这些模型用作比较基准。
风险画像评估
如果用户的目标配置未知,请根据以下信息评估合适的风险画像:
- 年龄(如有提及)
- 投资期限(如有提及)
- 当前配置(反映偏好)
- 持仓类型(保守型股票还是投机型股票)
阅读 references/risk-profile-questionnaire.md,了解评估框架
输出指南
语气和风格:
- 客观且有分析性
- 提供有明确理由、可付诸行动的建议
- 承认市场预测存在不确定性
- 在保持乐观的同时充分考虑风险
- 尽可能量化
数据呈现:
- 使用表格进行比较并展示指标
- 使用百分比表示配置和回报
- 使用金额表示绝对值
- 在报告中保持格式一致
建议的清晰度:
- 使用明确的行动动词(减持、增持、持有、卖出)
- 指定具体数量(卖出 XX 股、增持 $X,XXX)
- 标注优先级(立即、高、中、低)
- 为每项建议提供支持理由
可视化描述:
- 描述配置明细,如同绘制饼图
- 使用相当于条形图的形式展示行业权重
- 使用方向指示符展示业绩趋势(↑ ↓ →)
参考文件
根据分析需要加载以下参考资料:
references/alpaca-mcp-setup.md
- 适用场景:用户需要帮助设置 Alpaca MCP 服务
- 内容:安装说明、API 密钥配置、MCP 服务连接步骤、故障排除
references/asset-allocation.md
- 适用场景:分析投资组合配置或制定再平衡计划
- 内容:资产配置理论、按风险画像划分的最佳配置、行业配置指导原则、再平衡触发条件
references/diversification-principles.md
- 适用场景:评估投资组合的分散化质量
- 内容:现代投资组合理论基础、相关性概念、最佳持仓数量、集中度风险阈值、分散化指标
references/portfolio-risk-metrics.md
- 适用场景:计算风险评分或解读波动率
- 内容:贝塔计算、标准差、夏普比率、最大回撤、风险价值(VaR)、风险调整后回报指标
references/position-evaluation.md
- 适用场景:分析单项持仓,决定买入/持有/卖出
- 内容:持仓分析框架、投资逻辑验证清单、持仓规模指导原则、卖出纪律标准
references/rebalancing-strategies.md
- 适用场景:制定再平衡建议
- 内容:再平衡方法(日历型、阈值型、战术型)、税务优化策略、交易成本考量、执行时机
references/target-allocations.md
- 适用场景:需要基准配置进行比较
- 内容:适用于保守型/稳健型/成长型/激进型投资者的模型投资组合、行业目标区间、市值分布
references/risk-profile-questionnaire.md
- 适用场景:用户未指定风险承受能力或目标配置
- 内容:风险评估问题、评分方法、风险画像分类
错误处理
如果未连接 Alpaca MCP Server:
- 告知用户需要集成 Alpaca
- 提供 references/alpaca-mcp-setup.md 中的设置说明
- 提供替代方案:手动输入数据(不太理想,需用户提供持仓 CSV)
如果 API 返回的数据不完整:
- 使用现有数据继续分析
- 在报告中注明限制
- 建议手动核实缺失的持仓
如果持仓数据似乎过时:
- 标记此问题
- 建议刷新连接或查看 Alpaca 状态
- 继续分析,但注明结果可能存在偏差
如果用户没有持仓:
- 确认其投资组合为空
- 改为提供投资组合构建指导,而非分析
- 建议使用 value-dividend-screener 或 us-stock-analysis 寻找股票投资思路
高级功能
税损收割机会
识别适合进行税损收割的未实现亏损持仓:
- 亏损超过 5% 的持仓
- 考虑持有期(避免触发洗售规则)
- 建议替代证券(相似但并非实质上相同)
股息收入分析
针对持有派息股票的投资组合:
- 估算年度股息收入
- 股息增长率走势
- 股息覆盖率和可持续性
- 长期持仓的成本收益率
相关性矩阵
针对持有 5-20 个仓位的投资组合:
- 估算主要持仓之间的相关性
- 识别冗余持仓(相关性 >0.8)
- 建议改进分散投资
情景分析
模拟投资组合在不同情景下的表现:
- 牛市(股票升值 20%)
- 熊市(股票下跌 20%)
- 行业轮动(科技股走弱,价值股走强)
- 利率上升(对成长股和债券的影响)
示例查询
基本投资组合评估:
- “分析我的投资组合”
- “评估我的持仓”
- “我的投资组合表现如何?”
资产配置分析:
- “我的资产配置是什么?”
- “我的科技股仓位是否过于集中?”
- “显示我的行业分布”
风险评估:
- “我的投资组合风险是否过高?”
- “我的投资组合 Beta 是多少?”
- “我的主要风险是什么?”
再平衡:
- “我应该再平衡吗?”
- “我应该买入或卖出什么?”
- “我该如何改善分散投资?”
表现:
- “我表现最好和最差的持仓是什么?”
- “与市场相比,我的表现如何?”
- “哪些股票表现好,哪些表现差?”
特定持仓:
- “我应该卖出 [SYMBOL] 吗?”
- “[SYMBOL] 在我的投资组合中是否占比过高?”
- “我应该如何处理 [SYMBOL]?”
限制与免责声明
在所有报告中加入:
本分析仅供参考,不构成财务建议。投资决策应根据个人情况、风险承受能力和财务目标做出。过往表现不代表未来结果。做出投资决策前,请咨询合格的财务顾问。
数据准确性取决于 Alpaca API 和第三方市场数据来源。请独立核实关键信息。税务影响仅为估算;如需具体指导,请咨询税务专业人士。