Back to skills
extension
Category: Data & AnalyticsNo API key required

持仓股跟踪器

Thesis-driven portfolio tracker with 5 data sources, dual-layer validation, thesis breakdown, and adversarial review. Automatically tags marginal impact, detects anomalies with 5-dimension traceback.

personAuthor: user_c2b475a3hubcommunity

Stock Thesis Tracker — 持仓股跟踪器

一句话概括

围绕你的投资逻辑(Thesis),每天自动告诉你的持仓有没有变化需要关注。


怎么用(3 句话讲完)

  1. 写逻辑:用自然语言告诉我每只股票的投资逻辑——"我看盐湖是因为锂价中枢抬升 + 钾肥战略属性"
  2. 说「跟踪持仓」:我自动从 5 路数据源(公告/研报/行业站/新闻/行情)抓增量,逐条标注对你的逻辑是利好还是利空,市场有没有已经定价,异动了帮你溯源
  3. 要审视时:说「审查这个逻辑」——我帮你找假设漏洞、反方论点、失效路径、隐藏风险,逼你重新想一遍

使用说明

日常跟踪

对 AI 说「跟踪持仓」或「跟踪 [标的名]」。AI 自动完成:

  1. 抓取 5 路数据源的最新增量信息
  2. 逐条标注对你的逻辑是利好(+)还是利空(-),市场是否已定价
  3. 若单日涨跌超阈值(默认 5%),触发 5 维度异动溯源
  4. 生成结构化日度报告(横截面快照 + 逐标的增量分析 + 一句话结论)
  5. 更新每只标的的事件日志

示例对话

你:跟踪持仓 AI:[运行采集 → 分析 → 输出报告]

深度分析(每周)

对 AI 说「深度分析持仓」。在日度摘要基础上增加:

  • 短/中/长期逻辑逐段验证(成立/需观察/边际削弱)
  • 竞品横截面对比(估值分位、近期催化)
  • 估值状态快照(当前 PE/PB 分位 vs 历史)
  • 本周预期差全景

建议每周一执行一次。

建立新标的

直接告诉 AI:

「我要跟踪 XX 股票,代码 XXXX,投资逻辑是:[你的逻辑]」

AI 会自动完成所有配置:创建 thesis.md + 配置 portfolio.json + 自动匹配行业信源 + 拆解投资逻辑为跟踪清单。

也可以手动操作(见下方「上手准备」)。

拆解投资逻辑

对 AI 说「拆解 [标的名] 的投资逻辑」。AI 会将你的逻辑拆成:

| 类别 | 跟踪指标 | 优先级 | 信源 | |------|---------|--------|------| | [需求/供给/价格/政策] | [具体可量化数据] | ★★★/★★/★ | [网站/报告] |

日常跟踪时 AI 会按这个清单重点采集对应数据。

对抗式审查

对 AI 说「审查 [标的名] 的投资逻辑」。AI 会:

  1. 逐条假设挑战——"这条逻辑成立需要什么前提?如果前提不成立最可能的原因?"
  2. 搜集市场上反对这条逻辑的观点和论据
  3. 列出最可能击穿你逻辑的 2-3 条具体事件链
  4. 检查隐藏风险——逻辑对但赚不到钱的场景(估值陷阱、时间成本、杠杆风险等)

建议每月执行一次,或在重大市场事件后立即执行。

修改投资逻辑

直接告诉 AI 你想修改哪个标的的哪部分逻辑。AI 会更新 thesis.md,并自动重新拆解跟踪清单。


上手准备(AI 自动创建更简单,见上方「建立新标的」)

如果需要手动操作:

  1. 复制 coverage/portfolio_example.jsonportfolio.json,编辑为你的持仓
  2. 复制 coverage/thesis_template.md 为每只标的写投资逻辑
  3. pip install akshare pandas
  4. 对 AI 说「跟踪持仓」

IMA 浑水知识库需要手动在 WorkBuddy 中添加(id: 7297249738490228),不添加则自动降级到 WebSearch 替代。


功能概览

| 模式 | 触发方式 | 输出 | 频率 | |------|---------|------|------| | 摘要模式 | "跟踪持仓" / "跟踪[标的名]" | 增量信息标注(+/-/0) + 失效条件检查 + 横截面快照 | 日常 | | 深度模式 | "深度分析持仓" | 短/中/长期逻辑完整验证 + 竞品分析 + 估值状态 | 每周/事件触发 | | Thesis 拆解 | "拆解[标的名]投资逻辑" / 修改 thesis 后 | 关键假设→可跟踪指标→数据清单(含优先级+信源) | 新建/修改 thesis 时 | | 对抗式审查 | "审查[标的名]投资逻辑" / "对抗式审查持仓" | 逻辑漏洞扫描+反方论点+失效路径+隐藏风险 | 按需/定期 |


数据源

| 数据源 | 内容 | 用途 | 是否需要配置 | |--------|------|------|------------| | 巨潮资讯网 WebFetch | cninfo fulltextSearch(A股+H股) | 公司公告(JS渲染,AI层WebFetch) | portfolio.json 自动导出 announcement_source | | 港交所披露易 WebFetch | hkexnews.hk(港股本体) | 腾讯本体公告 | 同上 | | 行业信源映射表 | 25 行业 × 3 类信源(协会/数据/媒体) | WebSearch site:/keyword 定点搜索 | portfolio.json → industry_sources | | IMA 浑水调研 | 53k+ 外资研报/电话会 | 行业深度/卖方观点/预期差 | 需要在 IMA 中加入知识库 | | AKShare | 东方财富个股新闻 | 基础增量新闻 | pip install akshare | | 新浪实时行情 | A股+港股实时价格 | 盘中异动检测(三源链兜底) | 无需配置,外网可达 | | WebSearch | 全品类实时信息 | 政策/竞品/共识/事件 | 无需配置 |

已废弃:portfolio.json 中 search_config.ima_cninfofolder_id 配置(原 IMA 巨潮公告库路径)已由 cninfo WebFetch 全量替代,保留字段仅作向后兼容,AI 层不再读取使用。


浑水搜索核心规则

浑水的搜索是话题驱动而非公司名驱动:

| ✅ 有效搜索 | 实测效果 | ❌ 无效搜索 | |-----------|---------|-----------| | CATL / BYD / Tencent | 英文ticker直接命中外资研报 | 中文公司名(宁德时代 → 0条) | | 钾肥 / 碳酸锂 / 机场 / 固态电池 | 行业关键词找到行业报告(含公司分析) | 泛化词(锂矿 / 互联网 → 0条) | | Potash / ESS | 英文行业词命中外资行业报告 | 股票代码(000792 → 0条) |

核心原则:搜行业不搜公司。 搜"钾肥"能找到盐湖股份完整研报,搜"盐湖股份"反而 0 条。


行业信源自动查表(v5 新增)

系统根据标的 industry 字段自动从 portfolio.json 顶层的 industry_sources 映射表获取行业信源,无需手动配置。

映射规则

  • 标的声明 industry: ["基础化工/钾肥化肥", "有色金属/锂业/碳酸锂"]
  • 系统先试子级 key(精确定位),不命中回退父级
  • 每个行业 key 含 3 类信源:协会/官方 + 数据/价格平台 + 行业媒体
  • AI 层逐站用 WebSearch site:[站名] [关键词] 定点搜索(共 6-9 站/标的)

搜索策略分支

| 站点类型 | 策略 | 示例 | |---------|------|------| | SEO 可达 | site:[站名] [关键词] | site:bjx.com.cn 固态电池 | | paywall/JS 渲染 | [站名] [关键词](去 site:) | smm.cn 碳酸锂 报价 | | 数据平台 | 优先 WebFetch 价格页 | oilchem.net 钾肥报价表 |

预置覆盖 13 个父级行业(基础化工、电力设备/新能源、互联网/传媒等)+ 12 个子行业(钾肥化肥、锂电设备、速冻预制菜等),新增标的只需声明 industry 即可自动对号入座。


执行流程(MUST 强顺序)

每次执行「跟踪持仓」时,必须严格按以下顺序执行,不可跳过:

Step 1:数据采集

  1. 运行 fetch_data.py --mode all 获取:实时价格 + 异动检测 + AKShare 7天新闻 + 全市场PB + 公告源导出(保存到 reports/announcement_sources.json
  2. 公告采集(两轮): a) 标的公告:读取 announcement_sources.json,对每只标的用 WebFetch 抓取 cninfo/hkexnews 公告列表(仅取标题+日期,7天时效筛后入库) b) 竞品交叉公告:读 holdings[i].competitors_a / competitors_global,对每个竞品生成 cninfo 搜索 URL(同标生成规则),WebFetch 抓取公告列表(限前 5 条/竞品,避免信息爆炸)。合并为"[标的]+竞品行业公告流",与标的本体公告一同进入时效筛。报告中标注 [cninfo-竞品名] 区分来源
  3. 并行搜索 IMA 浑水(行业关键词,5 只标的)。cursor 分页规则:若搜索结果 is_end=false 或数据量过大导致截断,用 next_cursor 逐页获取,累计取 5-10 条最新后停止,避免 token 溢出。
  4. portfolio.jsonindustry_sources 和每标的 industry 字段,自动查表获取对应行业协会/数据平台/媒体站点 → 按站点类型选择搜索策略:SEO 可见站用 site:[站名] [关键词],paywall/JS 渲染站用 [站名] [关键词](去 site: 限制)。
  5. 并行 WebSearch 补充(stock_news + competitor + thesis_trigger + consensus_search)

Step 2:时效筛 ← 关键步骤,不可跳过

在写入报告之前,逐条检查所有采集到的信息的日期。

  • 日期 ≤ 7 天 → 放入「增量信息标注」
  • 日期 8-30 天,且仍影响 Thesis → 放入「已知事实」
  • 日期 > 30 天 → 丢弃,不写入报告
  • 如果一条信息没有明确日期 → 标记为「日期未确认」放在已知事实区

时效筛检查清单:在生成每只标的的报告前,先回答——"这条信息的原始发布日期是哪天?距离今天几天了?属于哪个区域?"

Step 3:双层分析

每条款式标注:

[日期 来源] 事件 → [+] / [-] / [0]  ← Thesis影响
                  → [超预期] / [符合预期] / [低于预期] / [已定价] / [未定价]  ← 预期差

Step 4:生成报告

严格按下方强制模板输出。 横截面表的列名和顺序不可改变。

Step 5:更新 log.md

追加关键事件的日志到每只标的的 coverage/{标的}/log.md


数据源降级矩阵

| 数据源 | 正常状态 | 降级方案 | 检测方法 | |--------|---------|---------|---------| | IMA 浑水 | 搜索返回结果 | 自动切换 WebSearch 增补行业研报/政策搜索 | 搜索返回空或 connector disconnected | | 巨潮/港交所公告 | WebFetch 正常返回 | WebSearch site:cninfo.com.cn [标的名]site:hkexnews.hk [标的名] 替代 | WebFetch 无公告列表数据 | | 新浪实时行情 | 返回有效价格 | 新浪空→东方财富push2(重试3次)→腾讯行情(qt.gtimg.cn)→快照回退/占位 | 价格=null | | 行业信源定点站 | WebSearch site: 有返回 | 降级为普通关键词搜索(去 site: 限制) | 连续3站无返回 | | WebSearch | 正常返回 | 报告底部标注不可用 | 返回空 |

核心原则:数据源断了不能导致报告不生成。降级后标注,不停机。


强制输出模板(MUST)

A. 横截面快照

放在报告最顶部。列名和顺序不可变:

| 标的 | 收盘价 | 日涨跌幅 | 较上周 | 预期差信号 | 优先级 | |------|--------|---------|--------|-----------|--------|

  • 「较上周」:与上一个交易周收盘的累计涨跌幅
  • 「预期差信号」:选择最显著的预期差标注(超预期/低于预期/未定价/符合预期)

B. 每只标的章节

## [标的名] (代码) 每日跟踪摘要

### 增量信息标注(≤7天)
[日期 来源] 事件描述
  → Thesis: [+] / [-] / [0]
  → 预期差: [超预期] / [符合预期] / [低于预期] / [已定价] / [未定价]

### 预期差检查
- 市场共识:[当前市场一致预期的核心假设]
- 偏差发现:[新信息与市场共识之间的差距在哪里?]

### 已知事实(8-30天持续背景)
[仍在影响Thesis但超过7天的关键信息]

### 失效条件状态
[逐条检查,标注是否触发]

### ⚠️ 股价异动溯源(仅触发阈值时)
5维度:公司层面 / 行业层面 / 竞品联动 / 大盘资金 / 边际对比

### 一句话结论
> [Thesis判断] + [预期差判断]

C. ⚠️ 异动溯源(触发阈值时)

当单日跌幅 ≥ alert_threshold_pct 时,必须输出完整 5 维度溯源,不可省略为普通跟踪格式。


深度分析模式(周度/事件触发)

触发方式:说「深度分析持仓」。每周一自动执行。

内容要求

深度模式 = 日度摘要骨架 + 以下 4 个额外维度:

1. 短/中/长期逻辑逐段验证

  • 对 thesis.md 中每段逻辑,写明当前状态:“成立 / 需观察 / 边际削弱”
  • 引述本周增量信息作为证据

2. 竞品横截面对比

  • 当前价格位置、估值分位、近期催化对比表
  • 回答:“相对竞品,我的持仓被高估还是低估?”

3. 估值状态快照

  • 当前 PE/PB 分位 vs 历史分位
  • 当前隐含的长期增长预期 vs 我的 thesis 假设
  • 标注:“当前估值在定价什么故事?”

4. 预期差全景

  • 市场共识(EPS/目标价/关键假设)vs 我的判断
  • 本周新增的预期差有哪些?有哪些旧预期差被修复了?

输出格式

# 持仓股深度分析 — YYYY-MM-DD

## 全景透视
[所有标的的横截面对比表 + 预期差矩阵]

## 逐标深度分析
### [标的1]
#### 短/中/长篇逻辑逐段验证
#### 竞品对比
#### 估值快照
#### 本周预期差

### [标的2] ...

频率

  • 常规:每周一 08:00 自动执行(模型 deepseek-V4-Pro)
  • 手动:市场有重大事件时手动触发

文件结构

项目根目录/
├── coverage/
│   ├── portfolio.json           ← 持仓配置 + industry_sources
│   ├── market_pb_latest.json    ← 全市场PB分位(单份)
│   └── {代码}_{名称}/
│       ├── thesis.md            ← 投资逻辑(必填)
│       ├── log.md               ← 边际变化流水账(自动追加)
│       ├── snapshot.json        ← 价格快照 + price_history
│       └── news_latest.json     ← AKShare新闻快照
├── scripts/
│   └── fetch_data.py            ← 数据采集脚本 v4.1
└── reports/
    ├── YYYY-MM-DD_daily.md      ← 日度分析报告
    ├── fetch_report_latest.json ← 脚本采集汇总(覆盖)
    ├── intraday_latest.json     ← 盘中异动检测
    └── announcement_sources.json← 公告源导出(AI层消费)

Thesis 拆解模式(新建/修改投资逻辑时)

触发方式

  • 用户说「拆解 [标的名] 的投资逻辑」
  • 用户新建或修改 thesis.md 后主动询问是否需要拆解
  • 输入:thesis.md 中用户写的投资逻辑文本 OR 用户口述的逻辑

拆解流程(MUST 顺序)

Step T1:提取关键假设 从用户的短/中/长期逻辑中逐段提取隐含假设。每条假设表述为"如果 X 成立,则 Y 成立"。区分三个时间维度。

Step T2:映射为可跟踪指标 将每条假设拆解为可量化、可观测的数据指标。每个指标标注:

  • 优先级:★★★(核心,每期必看)/ ★★(重要,每周看)/ ★(参考,月度看)
  • 数据来源:具体网站或报告(优先从 industry_sources 查表匹配)
  • 跟踪频率:日度/周度/月度

Step T3:构建数据清单 按类别(价格/需求/供给/政策/竞争)组织为结构化表格,包含指标名称、优先级、信源建议。写入 thesis.md 底部的「跟踪数据清单」章节。

示例(盐湖 v2 拆解结果)

[用户输入] 锂价中枢抬升:需求端全球电车+储能IRR拐点,供给端资本开支萎缩+边际成本12万

[拆解输出]
需求-电车:全球新能源车月度销量 ★★★ → 乘联会/SNE
需求-储能:中国储能IRR及容量电价 ★★★ → 国家能源局
供给-资本开支:全球锂矿资本开支数据 ★★★ → IEA/机构研报
供给-成本线:江西锂云母边际成本 ★★ → SMM/百川盈孚

完整的盐湖 v2 拆解结果参考 coverage/000792_盐湖股份/thesis.md 底部的「跟踪数据清单」。


对抗式审查模式(审视投资逻辑)

触发方式

  • 用户说「审查 [标的名] 的投资逻辑」
  • 用户说「对抗式审查持仓」
  • 重大市场事件后用户要求重新审视逻辑

审查流程(MUST 顺序)

Step A1:逐条假设挑战 对 thesis.md 中每条短/中/长期逻辑,依次执行以下检查:

  1. 隐含假设显性化——"这条逻辑成立需要哪些前提?"
  2. 假设失效测试——"如果这个前提不成立,最可能的原因是?"
  3. 未明说的信仰——"作者没说出来但默认相信的是什么?"

Step A2:反方论点矩阵 为每只标的构建市场反方观点表。来源包括:浑水研报中的看空观点、财报中的风险提示、行业竞争者的威胁、WebSearch 的负面讨论。

| 反方论点 | 来源 | 可信度 | 对Thesis的冲击 | |---------|------|--------|---------------| | [反方观点] | [出处] | 高/中/低 | 哪些逻辑会被击穿 |

Step A3:最可能失效路径分析 列出 2-3 条最可能击穿 thesis 的路径(不是泛泛的不利情况,而是具体的事件链),并评估每条路径的触发概率。

Step A4:隐藏风险清单 找出那些"逻辑正确但可能赚不到钱"的场景:

  • 估值陷阱:基本面正确,但市场永远不给合理估值(如市场把"稳定盈利"当"没有增长")
  • 时间成本:逻辑需要 3-5 年兑现,但持仓期只有 12-18 个月
  • 杠杆/仓位风险:正确的逻辑被融资盘/仓位管理放大为亏损
  • 相关性风险:标的与大盘/板块高度相关,Beta 掩盖 Alpha
  • 流动性风险:小市值标的即使逻辑兑现也无法顺利退出

Step A5:生成审查报告 输出结构化报告,包含:

# 对抗式审查 — [标的名] ([代码])

## 一、逐条假设挑战
[对短/中/长期每条逻辑的挑战分析]

## 二、反方论点矩阵
[表格:反方观点、来源、可信度、冲击评估]

## 三、最可能失效路径 Top 3
1. [具体事件链] — 触发概率: X%
2. [具体事件链] — 触发概率: X%
3. [具体事件链] — 触发概率: X%

## 四、隐藏风险
- [估值陷阱/时间成本/杠杆风险/相关性风险/流动性风险]

## 五、综合评分
- 逻辑稳健度: ★★★☆☆ (评估整体逻辑结构)
- 反方说服力: ★★★☆☆ (反方论点的杀伤力)
- 隐藏风险: ★★★☆☆ (风险严重程度)
- 建议:保持 / 减仓观察 / 重新审视

使用原则

  • 不替你决策——审查报告是镜子,不是命令
  • 必看隐藏风险——"逻辑正确但赚不到钱"比"逻辑错误导致亏损"更隐蔽
  • 定期执行——建议每月一次,或重大市场事件后立即执行

核心分析框架:双层验证

第一性原理

持仓跟踪的本质目的不是"验证自己是对是错",而是识别市场定价与客观现实之间的偏差

可操作的信号 = (新信息 vs 你的Thesis) + (新信息 vs 市场共识)

两层验证

| 层次 | 对比对象 | 回答的问题 | 信息来源 | |------|---------|-----------|---------| | 第一层:Thesis 验证 | 我的投资逻辑 | "这个信息是否改变了我的判断?" | thesis.md | | 第二层:预期差验证 | 市场共识预期 | "这个信息是否超出/低于市场已有预期?" | 浑水研报 / WebSearch 一致性预期 |

预期差判定

对于每条增量信息,不仅标注对 Thesis 的影响,还需判断市场是否已经定价

| 标注 | 含义 | 场景示例 | |------|------|---------| | [超预期] | 信息好于市场一致预期 | 订单6亿,市场只估了3亿 | | [符合预期] | 信息与市场预期一致 | 业绩在一致预期±5%范围内 | | [低于预期] | 信息差于市场一致预期 | 碳酸锂跌破15万,市场原以为16万是底 | | [未定价] | 市场尚未充分反应 | 新政策刚出台,卖方报告还没跟上 | | [已定价] | 市场早已反应 | 连续下跌后,负面信息已经price-in |

重要:一条信息可能同时是 [+]利好Thesis[已定价],这意味着它对股价已经没有推动力。最值钱的信号是 [+]利好Thesis + [未定价]——这是买入窗口。

如何获取市场共识

  1. 浑水研报:从外资/内资卖方的目标价和一致预期中提取
  2. WebSearch:搜索 [标的] 一致预期 2026 EPS 券商 目标价 [标的]
  3. 近期价格:价格本身隐含了市场当前定价
  4. 估计修正方向:最近一个月 EPS 估计是上调还是下调?

portfolio.jsonsearch_config 中新增 consensus_search 字段配置共识预期搜索。


重要原则

  1. 围绕 Thesis 分析 — 所有结论必须映射回你的投资逻辑
  2. 增量思维 — 只关注边际变化,不重复已知信息
  3. 失效条件优先 — 首先检查 Thesis 的失效条件是否被触发
  4. 预期差优先于方向[+]利好+[已定价]不如[0]中性+[未定价]有价值
  5. 不替你做决策 — 提供分析框架,买卖由你决定
  6. 时效纪律 — 每日摘要只展示最近 7 天增量,老数据放背景区

依赖

  • Python 3.8+ (pip install akshare pandas)
  • IMA MCP 连接(用于搜索浑水调研知识库;IMH 巨潮公告库已由 cninfo WebFetch 替代)
  • 网络连接(新浪/东方财富/腾讯实时行情 + cninfo + hkexnews + WebSearch)