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 从未提及。

核验提交:9478dee核验日期:2026-10-09比对方式:程序化逐行比对README 文件名:README.MD
README 点名 36 个路径README.MD 正文中出现的 .py 路径
15 个路径一致文件名与目录都还对得上
9 个已搬到新目录datahub → monitor / root → utils 等
12 个仓库中不存在含拼写差异与彻底删除
依据 README.MD 与仓库 tree(提交 9478dee)逐条比对得出的分类示意;数字为 2026-10-09 核验结果,非官方架构图。

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/存在4K线技术形态部分
machine_learning/存在1机器学习预测
trader/存在2交易部分
ptrade/存在(但只有一个 0 字节 __init__.py)2ptrade自动交易实盘代码
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.pymonitor/ceiling_break.py涨停板封榜监控同目录下另有 monitor/jsl_monitor.py,可转债与股票监控被归到一起
big_deal.pymonitor/big_deal.py监控每天 A 股市场上的大单交易根目录还有一份 real_time_big_deal.py,两者是不同实现
ceiling_break.pymonitor/ceiling_break.py新股一直板开板后多少天能够重新回到开板价格README 同一段两次提到该名字,实际只对应一个文件
delivery_order.pyutils/delivery_order.py把交割单导出到 Mysql同目录还有 utils/profit_compare.py、utils/push_msn.py
ipospeed.pyanalysis/ipospeed.py统计每天 IPO 新股发行速度与大盘的相关性该目录以 Notebook 为主
jisilu.pydatahub/jisilu.py获取集思录的可转债行情同目录还有 jisilu_bond_announcement.py、jsl_login.py
push_msn.pyutils/push_msn.py短信提醒自己设定的某个股票价格或者涨幅达到要求实际推送走 QQ 邮箱与 Server 酱,不是短信
SPSIOP_PRICE.pydatahub/SPSIOP_PRICE.py华宝油气估值,通过爬虫获取数据然后计算依赖雪球接口
zdt.pydatahub/zdt.py每天股票市场的涨停热度写入 db_zdt 库

迁移的规律很清楚:与「监控」相关的进 monitor/,与「本地记录」相关的进 utils/,与「抓数」相关的进 datahub/,与「分析」相关的进 analysis/。README 停留在根目录平铺时代的描述。理解了这条规律,你就能自己推断新脚本的归属。

Rockyzsu/stock · 未提及目录

Rockyzsu/stock 有哪些目录 README 从未提及

README 未提及的目录文件数实际职责为什么值得知道
backtest/5backtrader 入门示例与均线回测仓库里仅有的回测目录,README 完全没写
configure/3config.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 里写明了「目前正在重构项目代码,目录结构可能与下面描述有些出入」(2022-12-08),而最后一次提交是 2026-04-17——也就是说重构从声明到今天已经持续了三年多,README 没有被同步更新。这在个人项目里很常见:代码是给自己用的,文档是给外人看的,后者自然落后。以官方仓库当前状态为准。
我应该信 README 还是信代码?
信代码。判断一个文件是否存在、一个功能有没有实现,永远以固定 commit 的目录树与源码为准;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 与日期。
怎么自己复算一遍?
三步:①用 GitHub REST API 拉git/trees/{commit}?recursive=1 得到全量路径;②用正则从 README.MD 里抽出 xxx.py 与 目录/文件 形式的字符串;③对每个路径做精确匹配,匹配不到时再用 basename 在全树里回查一次(用于识别「改名/移动」)。本站用的就是这三步,不依赖任何私有数据。
这份核验和 SEO 有关系吗?
有直接关系。用户搜索「Rockyzsu/stock 怎么用」时,最常踩的坑就是照着 README 找文件——搜索结果里如果只有翻译版 README,读者会立刻卡住。这个页面存在的意义,就是让搜索进来的人立刻看到「哪些路径已经变了、真实入口在哪」。

接下来读哪一页?

知道有哪些路径变了之后,下一步是理解这些目录在整条流水线里各自负责什么;或者直接跳到环境安装,看最短的一条可运行路径。