第 11 篇:数据接力赛——"以后每天 PB 从哪来啊"
这个策略,我想了很久
10 月 29 日下午 16:17,我把一个琢磨了好几天的策略发过去,开头照例是那句"先不改代码":
> 我(10-29 16:17):你看一下这个策略,怎么样,先不改代码:困境反转策略 > 跌幅规则:标的 传媒ETF 512980,计算其距离近 5 年最高点的回撤幅度,回撤 ≤ -50%(回撤越深越优先)。 > 入场条件(同时满足):回撤 ≤ -50%;估值条件(满足其一):PB 分位 ≤ 20%; > 满足后建立初始底仓 30%,记录初始建仓价 C0、初始估值分位 P0。 > 左侧加仓:基准始终以 C0 为基准,不滚动更新;每次加仓时,当前 PB 分位 P ≤ P0,防止"越跌越贵";同一交易日最多触发一档。 > 档位:底仓 30% / 第 1 档(较 C0 ≤ -8%)20% / 第 2 档(≤ -16%)20% / 第 3 档(≤ -24%)10% > 退出规则:强制止损 > 首次止盈卖 50% > 移动止盈清仓……单只 ETF 总投入浮亏 ≤ -15%,次日开盘全部清仓。
这个策略的想法很朴素:找那些跌了五年、估值也被打到历史低位的行业,分批买,等它回来。
AI 评审的结果是:规则自相矛盾。
按我的加仓节奏算:底仓 30% + 第 1 档 20% + 第 2 档 20% + 第 3 档 10% = 80% 仓位。而第 3 档的触发条件是"较 C0 跌 24%"。到那时候,前面几档的浮亏已经接近甚至超过 15%——也就是说,第 3 档刚买完,就满足了"全部清仓"的条件。
我设计了一个"买满即清仓"的策略。
一行代码没动,一次对话,避免了半个月的返工。这也印证了第 4 篇那条经验:新策略先让它挑毛病。
第二个问题:数据从哪来
规则里有一句"PB 分位 ≤ 20%"。AI 说:没有历史 PB 数据。
我第一反应是"我有理杏仁会员啊",去导了一份,回来发现:
> 我(10-29 16:37):理杏仁导出数据,没有这些 中证传媒之类的 pb,只有指数点位;只有申万什么分类,才有 PB 可以导出
这是个典型的"看起来有、其实没有":理杏仁能导出指数的点位,但行业 PB 只有申万分类里有。而我要买的标的,是传媒 ETF、军工 ETF、农业 ETF——它们跟踪的是中证指数。
半小时后,我找到了办法,一口气导了 6 个行业:
> 我(10-29 17:14):好的,我找到 6 个行业的 PB 数据,证券、医药,都已经有 ETF,剩余的 4 个 ETF,我提供一下:传媒ETF 512980、军工ETF国泰 512660、农业ETF 159825、食品饮料 ETF 515170;其他的都按你的意见来
17:45 又补了一份:
> 我(10-29 17:45):给你农林牧渔的
(第一份给的是"农业综合",代表性弱,换成了"农林牧渔"。)
CSV 是手动的,七个文件,一个一个点导出。到这里,功能可以做出来了。
但 16 分钟后,我问了那个关键问题
18:01,我发了这条消息:
> 我(10-29 18:01):我问你啊,现在历史 PB 估值数据,我给你了;那以后每天拉取 PB,你从哪里拉取啊
这是我在这 19 天里问得最值钱的一个问题。
历史数据可以手工导入,未来的数据只能自动获取。 一个策略回测很好看,但如果它的核心指标每天要人工导一次 CSV,它就是一周之后必然失效的东西——不是策略失效,是流程失效。
AI 的回答很老实:目前没有自动源,这是个缺口。
18:06 我又推了一把:
> 我(10-29 18:06):我可能没法定期给你导哦,你看看还有哪些渠道:乐咕乐股网;申万宏源研究官网;或者用 baifenwei.com 这个网站做平替,还有什么渠道吗
"我可能没法定期给你导哦"——这句话是整个项目里最真实的约束。工具是给人用的,人不会每天为工具做手工劳动。凡是需要人每天动手的自动化,都不是自动化。
三个渠道,实测两个不能用
AI 就去试了:
| 渠道 | 结果 |
|---|---|
| baifenwei | 有全 A 估值,没有申万行业分类的 PB,排除 |
| 乐咕乐股 | 有,但反爬,无法稳定抓取,排除 |
| 申万宏源研究官网 | 有免费公开接口,历史能拉到 2016 年,T+1 更新 ✅ |
最后落在这个官方接口上:每天收盘后自动拉当天数据,增量入库,不再需要我导任何 CSV。
这件事我后来写成了单独一篇笔记(申万行业 PB 数据从哪来),因为过程太典型:用户提需求 → AI 说没有 → 用户给资源清单 → AI 实测筛选 → 找到一条能长期活着的路。
后记:它后来长成了什么
这一篇发出来的时候,那个"只有 6 个行业"的功能已经变样了:
- 从 6 个行业扩到申万全部 31 个一级行业,可以在 /pb 页按分位排序、筛选低估/高估
- 数据全部走官方接口,每天 T+1 自动更新,一天手工都不用
- 中途还发现一个坑:申万在 2021 年 12 月改过一版行业分类,煤炭、商贸零售、社会服务、综合这四个行业在改版前后数据不可比(跳变 43%~75%)。现在这几个行业的分位从新口径起算,页面上做了标注。
如果你不做这一步,那个策略会在某个安静的日子开始算错,而你不会知道。
这一篇学到的
1. "以后每天怎么办"是自动化项目的灵魂之问。 功能做出来的兴奋期,最容易忘掉这个问题。但它决定了这个东西能活一周还是一年。
2. 历史数据 ≠ 未来数据。 能导入的历史,和能自动获取的未来,是两条完全不同的链路。
3. 用户提供资源清单,比让 AI 无限试错快得多。 乐咕、baifenwei、申万——这三个名字是我给的。AI 不知道中文互联网上有哪些数据站。
4. 口径变化要写进系统,不能留在脑子里。 2021 年那次行业分类改版,官方数据里没有"注意断点"这四个字。你不处理,它就是一个永远算错的估值分位。
【你也可以】
做完任何自动化,追问这三句:
1. "这个数据/这个动作,一年后谁来维护?" 2. "如果我明天开始不提供任何手工输入,它还能跑吗?" 3. "这个数据源的口径,历史上变过吗?变了怎么办?"
第 3 句听起来很专业,其实只需要一句大白话:"这个数,十年前和现在,是一个东西吗?"
本系列为个人研究与搭建记录,所有数据与策略均不构成投资建议。
数据仅供参考,不构成任何投资建议。市场有风险,投资需谨慎。
其他笔记
- 开篇:我不懂代码,19 天搭了一套每天替我盯盘的系统 2026-11-03
- 德隆「三知道」投资理论完整版 2026-11-02
- 申万行业 PB 数据从哪来:从手工导出到官方 API 全自动 2026-11-02
- 动量方舟是什么:一个人如何搭一套动量轮动策略监控平台 2026-11-02
- 第 7 篇:第三次大事故——假暴跌、另一个 AI 的报告,和一个"对账员" 2026-10-30