MS Investment Deck

Other

生成摩根士丹利风格的投资演示PPTX。当用户需要创建投资演示、路演PPT、投行Pitch Book、投资委员会 memo、股票覆盖启动演示、季度业绩更新演示时调用。适用于CGMA/ACCA/CFA持证人及投行/买方/卖方分析师。

Install

openclaw skills install ms-investment-deck

Morgan Stanley 风格投资演示生成器

适用场景

场景说明
首次覆盖启动Initiation of Coverage — 公司/行业首次研究报告
季度业绩更新Quarterly Earnings Update — 财报发布后的更新演示
投资委员会 MemoInvestment Committee Memo — IC 审批材料
路演演示Roadshow / Non-Deal Roadshow — 面向机构投资者
管理层会议Management Meeting Prep — 与公司管理层交流材料
并购推介M&A Pitch Book — 买方/卖方财务顾问材料

核心能力

本技能可生成 18 种专业页面类型,覆盖投行研究演示的全流程:

页面类型一览

#页面类型函数说明
1封面页slide_cover()公司名、评级、目标价、行业观点、What's Changed 摘要
2Key Takeawaysslide_key_takeaways()3-5 条核心要点,金色数字放大
3Section Dividerslide_section_divider()章节分隔页,深蓝背景
4Content 内容页slide_content()左文右图布局,支持饼图/数据卡片
5Metric Blocksslide_metric_blocks()KPI 指标块(2x3 网格)
6Rating Tableslide_rating_table()投资评级表格(Ticker/Rating/TP/Company)
7Value Chainslide_value_chain()产业链/价值链可视化
8What's Changedslide_whats_changed()变动追踪(评级/TP/观点变动)
9Thesis in Chartsslide_thesis_in_charts()核心论点图表(2x2 网格)
10Shovel Stocksslide_shovel_stocks()铲子股/概念股列表
11Market Monitorslide_market_monitor()市场监测(四色卡片)
12Financial Chartslide_financial_chart()财务图表(柱+折线叠加,含预测路径)
13Executive Summaryslide_executive_summary()执行摘要(四象限:论点/TP/风险/催化剂)
14Scenario Comparisonslide_scenario_comparison()DCF 情景对比(Bear/Base/Bull)
15WACC Breakdownslide_wacc_breakdown()WACC 拆解表格
16Valuation Bridgeslide_valuation_bridge()估值桥(从 NOPAT 到 Equity Value)
17Sensitivity Heatmapslide_sensitivity_heatmap()敏感性热力图(WACC x TGR 矩阵)
18Disclosureslide_disclosure()免责声明页

快速开始

Python API

from ms_investment_deck import make_deck, sample_data

# 使用内置样例数据生成演示文稿
data = sample_data()
make_deck(data, "output/my_deck.pptx", theme="classic", language="zh")

# 自定义数据
my_data = {
    "company_name": "示例公司",
    "title_cn": "投资标题",
    "title_en": "Investment Title",
    "subtitle": "副标题说明",
    "rating": "Overweight",
    "target_price": "$125",
    "current_price": "$98.5",
    "date_str": "2026-06-13",
    "analyst": "张三 · CFA",
    "research_type": "Foundation",
    "key_takeaways": [
        "要点一:核心投资逻辑",
        "要点二:关键数据支撑",
        "要点三:风险提示",
    ],
    "metrics": [
        {"value": "$600B", "unit": "Market Size 2026E", "label": "市场规模"},
        {"value": "+38%", "unit": "YoY", "label": "同比增速"},
    ],
    "content_pages": [
        {
            "title_cn": "行业分析",
            "title_en": "Industry Analysis",
            "body": ["分析正文段落一", "", "分析正文段落二"],
        },
    ],
}
make_deck(my_data, "output/custom.pptx")

CLI

# 使用内置样例数据生成
python scripts/run.py -o output/demo.pptx

# 指定语言
python scripts/run.py -o output/demo_en.pptx --lang en

# 指定主题
python scripts/run.py -o output/demo.pptx --theme classic

页面结构

标准演示文稿的页面顺序(数据字段存在时自动插入):

1.  封面页(Cover)                          — 始终生成
2.  What's Changed                            — whats_changed 字段存在时
3.  Key Takeaways                            — key_takeaways 字段存在时
4.  Section Divider: 分析内容                 — content_pages 存在时
5.  Content Pages (x N)                      — 每个内容页
6.  Section Divider: 关键指标                 — metrics 存在时
7.  Metric Blocks                            — KPI 指标块
8.  Financial Chart                         — financial_chart 存在时
9.  WACC Breakdown                           — scenarios 存在时
10. Valuation Bridge                         — scenarios 存在时
11. Sensitivity Heatmap                      — sensitivity 存在时
12. Section Divider: 投资评级总览             — rating_table 存在时
13. Rating Table                             — 评级表格
14. Section Divider: 铲子股清单             — shovel_stocks 存在时
15. Shovel Stocks                            — 铲子股列表
16. Market Monitor                           — market_monitor 存在时
17. Executive Summary                        — executive_summary 存在时
18. Thesis in Charts                         — thesis_charts 存在时
19. Scenario Comparison                      — scenarios 存在时
20. Value Chain                              — value_chain 存在时
21. Disclosure                               — 始终生成

数据字典

顶层字段

字段类型必填说明
company_namestr公司名称(封面显示)
title_cnstr中文标题
title_enstr英文标题
subtitlestr副标题
ratingstr投资评级:Overweight / Equal-weight / Underweight
target_pricestr目标价,如 "$125"
current_pricestr当前价格,如 "$98.5"
date_strstr日期字符串
analyststr分析师姓名
research_typestr研究类型:Foundation / Update / Flash
industry_viewstr行业观点:Attractive / In-Line / Cautious
disclosure_textstr自定义免责声明文本

内容字段

字段类型说明
key_takeawaysList[str]3-5 条核心要点
metricsList[dict]KPI 指标块数组
content_pagesList[dict]内容页数组
rating_tableList[List] 或 List[Dict]评级表格
shovel_stocksList[dict]铲子股列表
shovel_stocks_listList[dict]shovel_stocks 别名
market_monitorList[dict]市场监测卡片
financial_chartdict财务图表数据
executive_summarydict执行摘要数据
scenariosdictDCF 情景数据
sensitivitydict敏感性矩阵数据
whats_changedList[dict]变动摘要
thesis_chartsList[dict]核心论点图表
value_chainList[dict]产业链数据

metrics 条目格式

{
    "value": "~$600B",       # 核心数字(金色放大)
    "unit": "AI CapEx 2026E", # 单位/时间
    "label": "全球 AI 相关资本开支",  # 说明文字
}

content_pages 条目格式

{
    "title_cn": "中文标题",
    "title_en": "English Title",
    "section_cn": "章节中文名",   # 可选,用于 Section Divider
    "section_en": "Section Name",
    "body": ["段落一", "", "段落二"],  # 空字符串表示换行
    "chart_img": "",             # 图片路径(留空则显示占位卡片)
    "data": {"sectors_allocation": [...]},  # 可选,饼图数据
    "source": "Source: Company Data",
}

rating_table 格式

# List[List] 格式
[
    ["NVDA.O", "Overweight", "$126.5", "NVIDIA", "AI compute 领导者"],
    ["TSM.N",  "Overweight", "$178.2", "Taiwan Semiconductor", "先进制程"],
]

# List[Dict] 格式(自动转换)
[
    {"ticker": "NVDA.O", "rating": "Overweight", "target_price": "$126.5",
     "company": "NVIDIA", "reason": "AI compute 领导者"},
]

shovel_stocks 条目格式

{
    "rank": 1,
    "company": "Aurora Power Co.",
    "ticker": "AUR.N",
    "product": "高压直流输电与数据中心电力模块",
    "analyst": "S. Lee",
    "market_cap_mn": 3200.5,    # 市值(百万)
    "perf_1y_pct": 142.3,       # 一年涨幅(%)
    "rating": "Overweight",      # 可选,触发评级列
}

financial_chart 格式

{
    "years": ["FY22", "FY23", "FY24", "FY25E", "FY26E", "FY27E", "FY28E"],
    "revenue": [1200.0, 1450.0, 1780.0, 2120.0, 2460.0, 2810.0, 3180.0],
    "ebitda":  [280.0, 348.0, 442.0, 550.0, 665.0, 780.0, 910.0],
    "margins": {
        "gross":  [55.0, 56.5, 58.2, 60.0, 61.5, 62.8, 63.9],
        "ebitda": [23.3, 24.0, 24.8, 25.9, 27.0, 27.8, 28.6],
        "net":    [14.2, 15.0, 16.1, 17.0, 17.8, 18.5, 19.1],
    },
    "takeaways": ["要点一", "要点二", "要点三"],
    "title_cn": "收入 / 利润率一览",   # 可选
    "title_en": "Revenue & EBITDA",    # 可选
}

executive_summary 格式

{
    "thesis": "核心投资论点...",
    "tp_and_upside": "TP $125 (+27% upside)...",
    "key_risks": ["风险一", "风险二"],
    "catalysts": ["催化剂一", "催化剂二"],
    "title_cn": "执行摘要",   # 可选
    "title_en": "Executive Summary",  # 可选
}

scenarios 格式(DCF 情景分析)

{
    "bear":  {"label": "Bear",  "wacc": 12.5, "tgr": 1.5, ...},
    "base":  {"label": "Base",  "wacc": 10.0, "tgr": 2.5, ...},
    "bull":  {"label": "Bull",  "wacc": 8.5,  "tgr": 3.5, ...},
}

sensitivity 格式

{
    "wacc_range": [8.0, 9.0, 10.0, 11.0, 12.0, 13.0],
    "tgr_range":  [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0],
    "matrix": [
        [120.0, 135.0, 152.0, 172.0, 198.0, 230.0],
        [110.0, 123.0, 138.0, 155.0, 176.0, 202.0],
        ...
    ],
}

whats_changed 条目格式

{
    "action": "Initiated",       # Initiated / Reiterated / Upgraded / Downgraded
    "ticker": "NVDA.O",
    "company": "NVIDIA Corp",
    "prev_rating": "",
    "new_rating": "Overweight",
    "prev_tp": "",
    "new_tp": "$126.5",
    "reason": "AI compute 需求超预期",
}

thesis_charts 条目格式

{
    "title": "AI CapEx 加速",
    "subtitle": "全球 AI 资本开支($B)",
    "chart_type": "bar",       # bar / line / pie
    "data": {"labels": [...], "values": [...]},
    "takeaway": "2026E 预计达 $600B",
}

value_chain 条目格式

{
    "stage": "上游",
    "items": [
        {"name": "HBM 内存", "companies": ["SK Hynix", "Samsung"], "share": "45%"},
    ],
}

主题配色

当前内置 1 套经典主题(classic),采用 Morgan Stanley 品牌色系:

色彩Hex用途
MS Navy#0B2C5C主色 / 标题栏 / 章节底色
MS Gold#C8A951辅助强调 / 关键数字
OW Green#1F7A3EOverweight 评级
EW Orange#D97706Equal-weight 评级
UW Red#B91C1CUnderweight 评级
MS Brand Blue#00559F品牌蓝
Chart Blue#3B81B9图表主色
Chart Red#FB0301图表辅助色

API 参考

主入口

make_deck(data: Dict[str, Any], output_path: str,
          theme: str = "classic", language: str = "zh") -> str

构建并保存一份 Morgan Stanley 风格的研究演示文稿。所有数据字段均为可选,缺失则跳过对应页面。

参数:

  • data — 结构化数据字典(参见数据字典)
  • output_path — 输出 .pptx 文件路径
  • theme — 主题名称(当前支持 "classic")
  • language — 语言:"zh" / "en" / "bilingual"

返回: 成功保存的文件路径

示例数据

sample_data() -> Dict[str, Any]

返回一份完整的样例数据字典,可直接传入 make_deck()

sample_data_financial() -> Dict[str, Any]

返回一份财务图表专用样例数据(financial_chart 字段)。

公共页面函数

所有 slide_* 函数接受一个 pptx.slide.Slide 对象作为第一个参数,其余通过关键字参数传入。可直接调用以构建自定义页面序列。

函数关键参数
slide_cover(slide, *, title_cn, title_en, subtitle, rating, target_price, current_price, company_name, analyst, date_str, research_type, industry_view, whats_changed, language)封面页
slide_key_takeaways(slide, *, items, language, page_number, total_pages)核心要点
slide_section_divider(slide, *, title_cn, title_en, category, language)章节分隔
slide_content(slide, *, title_cn, title_en, body, chart_img, data, source, language, page_number, total_pages)内容页
slide_metric_blocks(slide, *, metrics, language, page_number, total_pages)KPI 指标块
slide_rating_table(slide, *, rows, language, page_number, total_pages)评级表格
slide_value_chain(slide, *, data, language, page_number, total_pages)产业链
slide_whats_changed(slide, *, data, language, page_number, total_pages)变动追踪
slide_thesis_in_charts(slide, *, data, language, page_number, total_pages)论点图表
slide_shovel_stocks(slide, *, stocks, language, page_number, total_pages)铲子股列表
slide_market_monitor(slide, *, blocks, language, page_number, total_pages)市场监测
slide_disclosure(slide, *, text, language, page_number, total_pages)免责声明
slide_financial_chart(slide, *, years, revenue, ebitda, margins, takeaways, scenarios, title_cn, title_en, language, page_number, total_pages)财务图表
slide_executive_summary(slide, *, thesis, tp_and_upside, key_risks, catalysts, title_cn, title_en, language, page_number, total_pages)执行摘要
slide_scenario_comparison(slide, *, data, theme, language, page_number, total_pages)情景对比
slide_wacc_breakdown(slide, *, data, theme, language, page_number, total_pages)WACC 拆解
slide_valuation_bridge(slide, *, data, theme, language, page_number, total_pages)估值桥
slide_sensitivity_heatmap(slide, *, data, theme, language, page_number, total_pages)敏感性热力图

依赖

依赖版本说明
Python>= 3.9运行时
python-pptx>= 0.6.21PPTX 文件生成

安装依赖:

pip install python-pptx

设计规范

  • 比例:16:9 宽屏(13.333" x 7.5")
  • 字体:英文 Arial,中文 微软雅黑 / Source Han Sans SC
  • 关键数字:金色放大字号(36-48pt)
  • 正文:13pt,深棕黑色 #251A1A
  • 页码:右下角,9pt 灰色
  • 标题栏:深蓝背景 + 白色文字
  • 表格:交替行底色,评级颜色编码

Author: WANG DONG JIE (@yjkj999999 | Clawhub)

Version: 1.1.0 | License: MIT | Category: Investment Presentation

适用于 CGMA/ACCA/CFA 持证人及投行/买方/卖方分析师。生成符合摩根士丹利品牌标准的投资演示文稿。