Rockyzsu/stock / 版本核验
README 说有的东西,仓库里现在还有吗:36 个路径逐条核对
这是本站最重要的一个页面,因为 Rockyzsu/stock 的官方 README 自己就写着「目前正在重构项目代码,目录结构可能与下面描述有些出入」(2022-12-08)。这句话不是免责声明,而是一个需要被量化的事实。
本站的做法是把 README.MD 里出现的每一个文件路径与目录名抽出来,与固定提交 9478dee528cc(2026-04-17)的完整目录树逐条比对。结果:36 个被点名的 .py 路径里,15 个完全一致、9 个已经搬到别的目录、12 个在仓库中不存在;README 列出的 11 个目录里,log/ 根本不在仓库中;反过来,10 个真实存在的顶层目录 README 从未提及。
Rockyzsu/stock · 核验方法
这份 Rockyzsu/stock 核验怎么做:六项检查与可复现证据
| 核验项 | 具体做法 | 产出证据 | 你能复现吗 |
|---|---|---|---|
| 文件路径是否存在 | 用正则从 README.MD 抽出所有 *.py 与 目录/文件 形式,与 GitHub tree 全量路径做精确匹配 | _readme_diff.txt 的 §B 段(36 行逐个标注 OK / MOVED / MISSING) | 可以:给定 commit 拉一次 tree 即可复算 |
| 匹配不到时是否只是改名 | 对每个缺失路径取其 basename,在整棵树里再找一遍同名的文件 | §B 的 MOVED/renamed 列 | 可以:同名文件搜索不需要额外数据 |
| 目录是否存在 | 抽取 README 中以 *目录/* 形式出现的全部目录名,与 tree 的 tree 类型条目比对 | _readme_diff.txt 的 §A 段(11 行) | 可以 |
| 有没有 README 漏掉的目录 | 取 tree 的全部顶层目录,减去 §A 中出现过的目录名 | _readme_diff.txt 的 §C 段(10 行) | 可以 |
| 文档与代码的细节是否一致 | 人工核对 README 内嵌的一段配置源码与仓库里 configure/settings.py 的实际实现 | §「另外五处不一致」表的逐字段对照 | 可以:两段代码都在仓库里 |
.gitignore 是否解释了缺失 | 逐条取出 .gitignore 的规则,检查被忽略的路径在 tree 中是否存在 | _readme_diff.txt 的 §E 段 | 可以 |
为什么要固定 commit:README 会改、代码也会改。如果只写「某天看的时候不一致」,几个月后读者无法复现。本站所有结论都锚定 9478dee528cc(2026-04-17),半年后你按同一个 commit 拉一次,看到的仍是同一份代码。
Rockyzsu/stock · 目录清单
Rockyzsu/stock 的 README 目录清单:11 个里哪些还存在
| README 里写的目录 | 实际是否存在 | 仓库内文件数 | README 的说明文字 |
|---|---|---|---|
analysis/ | 存在 | 49 | 数据分析部分 |
datahub/ | 存在 | 32 | 数据采集部分 |
fund/ | 存在 | 53 | 基金相关的分析部分 |
futu/ | 存在 | 5 | 富途牛牛接口的基本用法 |
hk_stock/ | 存在 | 2 | 港股部分 |
k-line/ | 存在 | 4 | K线技术形态部分 |
machine_learning/ | 存在 | 1 | 机器学习预测 |
trader/ | 存在 | 2 | 交易部分 |
ptrade/ | 存在(但只有一个 0 字节 __init__.py) | 2 | ptrade自动交易实盘代码 |
common/ | 存在 | 7 | (无说明) |
log/ | 不存在 | 0 | 存放日志 |
log/ 为什么不在?看 .gitignore 就明白了:其中一条规则是 log/jsl_monitor,日志目录本来就不入库。所以这不是「README 写错了」,而是「README 描述的是一个本地运行态目录」。区分这两者很重要——它决定你该不该去找这个目录。
Rockyzsu/stock · 缺失文件
Rockyzsu/stock 缺失的 12 个文件是什么:README 写了但仓库没有
| README 写的路径 | 说明原文 | 实际情况 |
|---|---|---|
fund/LOFShareDection.py | 监控 LOF、ETF 场内份额变动 | 仓库中无同名文件;fund/ 下有 fund_share_monitor.py 等多个份额相关脚本 |
datahub/niwen.py | 宁稳可转债下载 | 真实文件名是 datahub/ninwen.py(多一个 n) |
datahub/jucao_ammouncement.py | 巨潮公告批量获取+PDF 下载 | 真实文件名是 datahub/jucao_announcement.py(少一个 m) |
fetch_each_day.py | 获取每天换手率前 50 的热门股 | 仓库中不存在 |
filter_stock.py | 通过不同的因子策略选股(市盈率、流通量、股东数、基金持股数等) | 仓库中不存在;功能由根目录 select_stock.py 承接 |
foreign_exchange.py | 获取美元汇率的每天走势并存入 Mysql | 真实文件名是 datahub/foreignexchange.py(无下划线) |
get_break_high.py | 获取当天破 50 天新高的股票 | 仓库中不存在 |
ipo_stock.py | 新股统计 | 仓库中不存在;analysis/ 下有 ipospeed.py(IPO 速度与指数相关性) |
pledgeed_validation.py | 股权质押数据整理 | 真实文件名是 pledged_validation.py(少一个 e) |
simulation.py | 记录自己的模拟仓 | 仓库中不存在 |
win_or_lost_each_day.py | 评估自己每天每只股票的盈亏情况 README 注明该脚本已完成 | 仓库中不存在;相近功能见根目录 recordMyChoice.py 与 utils/profit_compare.py |
12 个里有一半是「拼写差异」而不是「功能消失」:niwen→ninwen、ammouncement→announcement、pledgeed→pledged、foreign_exchange→foreignexchange。剩下几个则是真的没有对应文件。照 README 搜索文件名时,请先看这张表。
Rockyzsu/stock · 已移动文件
Rockyzsu/stock 的 9 个文件移到哪里了:README 停在扁平时代
| README 写的路径 | 真实位置 | 说明原文 | 迁移的连带影响 |
|---|---|---|---|
datahub/ceiling_break.py | monitor/ceiling_break.py | 涨停板封榜监控 | 同目录下另有 monitor/jsl_monitor.py,可转债与股票监控被归到一起 |
big_deal.py | monitor/big_deal.py | 监控每天 A 股市场上的大单交易 | 根目录还有一份 real_time_big_deal.py,两者是不同实现 |
ceiling_break.py | monitor/ceiling_break.py | 新股一直板开板后多少天能够重新回到开板价格 | README 同一段两次提到该名字,实际只对应一个文件 |
delivery_order.py | utils/delivery_order.py | 把交割单导出到 Mysql | 同目录还有 utils/profit_compare.py、utils/push_msn.py |
ipospeed.py | analysis/ipospeed.py | 统计每天 IPO 新股发行速度与大盘的相关性 | 该目录以 Notebook 为主 |
jisilu.py | datahub/jisilu.py | 获取集思录的可转债行情 | 同目录还有 jisilu_bond_announcement.py、jsl_login.py |
push_msn.py | utils/push_msn.py | 短信提醒自己设定的某个股票价格或者涨幅达到要求 | 实际推送走 QQ 邮箱与 Server 酱,不是短信 |
SPSIOP_PRICE.py | datahub/SPSIOP_PRICE.py | 华宝油气估值,通过爬虫获取数据然后计算 | 依赖雪球接口 |
zdt.py | datahub/zdt.py | 每天股票市场的涨停热度 | 写入 db_zdt 库 |
迁移的规律很清楚:与「监控」相关的进 monitor/,与「本地记录」相关的进 utils/,与「抓数」相关的进 datahub/,与「分析」相关的进 analysis/。README 停留在根目录平铺时代的描述。理解了这条规律,你就能自己推断新脚本的归属。
Rockyzsu/stock · 未提及目录
Rockyzsu/stock 有哪些目录 README 从未提及
| README 未提及的目录 | 文件数 | 实际职责 | 为什么值得知道 |
|---|---|---|---|
backtest/ | 5 | backtrader 入门示例与均线回测 | 仓库里仅有的回测目录,README 完全没写 |
configure/ | 3 | config.json 模板、配置读取类、通用工具 | 所有脚本的运行前提,README 只在正文提了配置方法 |
daily/ | 2 | 复盘 Notebook | 含被提交入库的 .ipynb_checkpoints 残留 |
data/ | 1 | 临时数据(new_stock_zzk.txt) | 被 .gitignore 忽略却仍有文件在库内 |
juejin/ | 1 | 掘金平台取数 Notebook | 无对应脚本 |
market/ | 1 | 上交所开户数与指数关系 | 最近一次改动是 6 个月前,属活跃目录 |
monitor/ | 9 | 可转债监控、自选池实时监控、大单、封板 | 9 个脚本全部漏写,是漏得最多的一处 |
source_code_reading/ | 2 | 源码阅读笔记 | 仅一份 15 字节的说明文件 |
temp/ | 1 | 临时文件(edit.txt) | 无职责 |
utils/ | 3 | 交割单入库、盈亏对比、价格提醒 | 被 README 点名的 3 个文件都在这里,目录本身却没写 |
这一栏比「缺失文件」更值得注意:漏掉 monitor/(9 个脚本)意味着只看 README 的人会完全不知道这个项目有监控能力;漏掉 backtest/ 意味着会以为它不做回测;漏掉 configure/ 意味着不知道该先配哪个文件。
Rockyzsu/stock · 细节不一致
另外五处 Rockyzsu/stock 细节为什么不一致:照着做会失败
| 不一致点 | README 写的 | 仓库里实际的 | 会不会让你踩坑 |
|---|---|---|---|
| README 文件名 | README.md(常规写法) | README.MD(全大写) | 会:用 /README.md 取原文直接 404 |
| 配置示例的函数签名 | def config(self, db_type='mysql', local='ubuntu') | def config(self, db_type='mysql', local='qq') | 会:默认数据库档案不同,按 README 改配置可能连错库 |
| 配置示例的字符集 | charset='utf8' | charset='utf8mb4' + read_timeout=10 + 可选 DictCursor | 会:含 emoji 或特殊字符的数据在两种字符集下行为不同 |
| README 提到的配置文件名 | configure/setting.py(单数) | configure/settings.py(复数) | 会:按名字找文件找不到 |
ptrade/ 的定位 | 「ptrade 自动交易实盘代码」 | 目录内只有一个 0 字节 __init__.py | 会:以为有实盘代码可以读,实际没有 |
| 对当前状态的自述 | 「目录结构可能与下面描述有些出入」 | 实测 12 个路径不存在、9 个已移动、10 个目录未提及 | 不会,但需要你主动去核 |
前四条都是「照 README 做会直接失败」的类型。第六条是作者自己的提醒——这句话本身就值得写进任何一份基于该仓库的笔记里。
Rockyzsu/stock · 怎么用
拿到这份 Rockyzsu/stock 核验之后该怎么用
| 你的目的 | 先做什么 | 看哪一页 | 别做什么 |
|---|---|---|---|
| 想找某个功能在哪个文件 | 用本页的「缺失/已移动」两张表定位真实路径 | 本页 §缺失文件 / §已移动文件 | 别直接按 README 的文件名搜索 |
| 想判断项目还有没有在维护 | 看提交时间与 README 自述日期的差距 | 概览页的核验快照 | 别只看 Star 数 |
| 想用这个仓库做二次开发 | 先确认真实目录结构与不要碰的文件 | 工作台地图页 | 别改动被 .gitignore 排除的文件(如 configure/) |
| 想评估自己能不能跑起来 | 先看导入期报错清单 | 报错排查页 | 别以为 clone 完就能直接跑 |
| 想在文章里引用这个项目 | 引用时要写清 commit 与核验日期 | 本页顶部的核验基准 | 别引用 README 的路径清单当现状 |
一个通用的教训:任何停更几个月以上的个人项目,README 都可能已经变成「历史文档」。判断一个路径是否存在,永远以固定 commit 的目录树为准,而不是以 README 的清单为准。
FAQ
关于 Rockyzsu/stock 的常见问题
为什么 README 和代码会不一致?
我应该信 README 还是信代码?
9478dee528cc 复现。那 12 个「不存在」的文件,功能去哪了?
niwen→ninwen、ammouncement→announcement、pledgeed→pledged、foreign_exchange→foreignexchange,功能还在。另一类是真的没有对应文件,例如 get_break_high.py(破 50 天新高)、simulation.py(模拟仓)、win_or_lost_each_day.py(每日盈亏评估)——相近能力散落在其他脚本里,但没有同名实现。逐条对应关系见本页的缺失清单表。log/ 目录为什么不存在?
.gitignore 里:规则包含 log/jsl_monitor,日志本来就不入库。所以这是「本地运行态目录」而不是「文档错误」,你不需要去仓库里找它,运行脚本时会自己生成。区分「文档写错」与「描述运行态」是读旧项目文档的基本功。这份核验会不会很快过期?
9478dee528cc(2026-04-17),只要不做新提交就永远成立。但仓库元数据(star、fork、是否新增提交)会变,本站对这些数字一律标注采集日期 2026-10-09。如果你要引用,请同时带上 commit 与日期。怎么自己复算一遍?
git/trees/{commit}?recursive=1 得到全量路径;②用正则从 README.MD 里抽出 xxx.py 与 目录/文件 形式的字符串;③对每个路径做精确匹配,匹配不到时再用 basename 在全树里回查一次(用于识别「改名/移动」)。本站用的就是这三步,不依赖任何私有数据。