股票投资研究自动化
自动化执行完整的股票投资研究流程:利用 NotebookLM 搜集和提取结构化数据,然后由代理进行深度分析和洞察。
前置条件
必须先配置 NotebookLM 认证和代理:
# 设置代理环境变量(如需要)
$env:HTTP_PROXY='http://127.0.0.1:<PORT>' # 替换为你的代理端口
$env:HTTPS_PROXY='http://127.0.0.1:<PORT>'
$env:PYTHONIOENCODING='utf-8'
# 验证 NotebookLM 认证状态
notebooklm status
如果未登录,参考 notebooklm skill 的说明完成登录。
工作流程概览
完整研究流程分为 4 个阶段:
- 资料搜集(NotebookLM):创建笔记本 → Deep Research → 导入资料
- 结构化提取(NotebookLM):从 40-50 个文件中提取结构化数据
- 深度分析(代理):基于结构化数据执行 6 阶段专业分析
- 输出报告:生成完整投资研究报告
阶段 1:资料搜集(NotebookLM)
步骤 1.1:解析目标公司
从用户输入中提取:
- 公司名称(中文/英文)
- 股票代码(如提供)
- 交易所(如提供)
步骤 1.2:创建专用笔记本
notebooklm create "投资研究: [公司名称]" --json
解析返回的 notebook_id 并设置上下文:
notebooklm use <notebook_id>
步骤 1.3:启动 Deep Research
notebooklm source add-research "[公司名称] [股票代码] 财报 年报 10-K 10-Q 电话会 earnings call 券商研报 analyst report" --mode deep --no-wait -n <notebook_id>
步骤 1.4:等待研究完成
notebooklm research wait -n <notebook_id> --import-all --timeout 1800
完成后,笔记本中将有 40-50 个导入的资料(财报、研报、电话会记录等)。
阶段 2:结构化数据提取(NotebookLM)
核心策略:在 NotebookLM 内部完成结构化提取,避免加载大量原始全文到上下文。
使用 notebooklm ask 命令执行以下 5 个提取任务。每个任务的提示词详见 references/prompts.md。
提取任务清单
| 任务 | 目标 | 输出格式 |
|---|---|---|
| 1. 业务构成数据 | 收入结构、利润构成、产品描述 | 结构化表格 |
| 2. 财务 KPI 数据 | 过去 3-5 年关键财务指标 | 结构化表格 |
| 3. 估值数据 | 历史估值倍数、竞争对手名单 | 结构化表格 + 列表 |
| 4. 市场观点汇总 | 分析师评级、共识观点 | 结构化列表 |
| 5. 管理层与分析师观点原文 | 驱动因素、风险点(原文摘录) | 原文引用 |
| 6. 核心风险与下行推演 | 10-K Item 1A Risk Factors, 诉讼, 客户集中度 | 结构化列表 |
| 7. 前瞻指引与催化剂 | 业绩指引 (Guidance), 新品发布, 重大事件 | 结构化列表 |
执行提取
对每个任务,运行:
notebooklm ask "<提取提示词>" -n <notebook_id> --json
将返回的结构化数据保存到变量中,供后续分析使用。
补充:竞争对手估值数据(联网抓取)
从提取任务 3 获取竞争对手名单后,使用 search_web 或直接查询 Yahoo Finance 获取实时估值数据:
搜索: "[竞争对手名称] PE ratio PS ratio PB ratio site:finance.yahoo.com"
构建对比表格(目标公司 vs. 竞争对手)。
阶段 3:深度分析(代理侧)
此时上下文中只有结构化数据,不再有大量原始全文。
基于提取的结构化数据,执行 6 阶段专业分析。每个阶段的详细提示词见 references/prompts.md。
分析阶段清单
| 阶段 | 分析内容 | 数据来源 |
|---|---|---|
| 1. 业务构成与竞争力 | 收入/利润拆解、护城河分析 | 提取任务 1 |
| 2. 财务指标与健康度 | KPI 趋势、审计师视角 | 提取任务 2 |
| 3. 估值分析 | 历史估值、同行对比、合理性判断 | 提取任务 3 + 联网数据 |
| 4. 市场共识与独特视角 | 共识观点 + 模型洞察 | 提取任务 4 + 模型推理 |
| 5. 关键驱动因子与系统图谱 | 模型构建因果关系 | 提取任务 5, 7 + 模型推理 |
| 6. 综合投资建议 | 投资论点、风险、估值区间、操作建议 | 整合所有分析 + 提取任务 6 |
重要说明:
- 阶段 4 的"独特视角":不是从资料中摘录,而是由模型基于所有数据主动挖掘市场可能忽视的洞察。
- 阶段 5 的"驱动因子与系统图谱":由模型识别核心驱动因子、分析相互关系、构建因果链,而非简单罗列资料中的观点。
用户投资偏好
在阶段 6 给出建议时,结合以下偏好:
- 基本面扎实:财务健康、业务逻辑清晰
- 估值合理:不追高,寻找合理估值区间
- 有弹性(成长空间):未来有明确的增长驱动因素
阶段 4:输出报告
整合 6 个阶段的分析内容,生成完整的投资研究报告。
报告结构
# [公司名称] 投资研究报告
## 执行摘要
[1-2 段概括核心投资逻辑和建议]
## 1. 业务构成与竞争力分析
[阶段 1 的分析内容,包含表格]
## 2. 财务指标与健康度分析
[阶段 2 的分析内容,包含表格]
## 3. 估值分析
[阶段 3 的分析内容,包含对比表格]
## 4. 市场共识与独特视角
[阶段 4 的分析内容,突出独特洞察]
## 5. 关键驱动因子与系统图谱
[阶段 5 的分析内容,包含因果关系图]
## 6. 投资建议
[阶段 6 的综合建议]
---
*本报告由 stock-research skill 自动生成,基于 NotebookLM Deep Research 搜集的公开资料。*
自治规则
自动运行(无需确认):
- 创建笔记本
- 启动 Deep Research
- 执行所有提取任务
- 执行所有分析阶段
- 生成最终报告
提示用户(需确认):
- 如果 Deep Research 超时(30 分钟),询问是否继续等待或使用已有资料
- 如果提取的数据明显不完整(如缺少关键财务指标),询问是否手动补充
错误处理
| 错误场景 | 处理方式 |
|---|---|
| NotebookLM 认证失败 | 提示用户运行 notebooklm login |
| Deep Research 超时 | 询问是否继续等待或使用已有资料 |
| 提取数据不完整 | 记录缺失项,继续分析并在报告中标注 |
| 联网查询失败 | 使用资料中的估值数据,标注竞争对手数据缺失 |
注意事项
- 代理配置:如果用户网络需要代理,确保在所有
notebooklm命令前设置环境变量。 - 时间预估:完整流程约需 20-30 分钟(Deep Research 15-30 分钟 + 提取和分析 5-10 分钟)。
- 数据时效性:报告基于 Deep Research 搜集的公开资料,时效性取决于资料发布时间。
- 投资建议免责:本 Skill 生成的报告仅供参考,不构成投资建议。