尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
程序员量化交易实战 38:给日报归档建立索引
第 32 篇已经能把每日运行结果写成 JSON第 33 篇能做简单历史汇总。第 38 篇补一个夹在中间的小工具给归档目录建立索引。后面无论做 CLI 展示、页面列表还是人工排查都不应该每次手写 glob 和 JSON 读取逻辑。索引项包含什么日报索引不需要复制完整报告只保留列表页真正需要的信息。字段含义trade_date交易日status当日健康状态path归档文件路径完整报告仍然留在 JSON 文件里需要详情时再读。索引对象第 38 章新增app/report_index.py。dataclass(frozenTrue) class ReportIndexEntry: trade_date: str status: str path: Path这个对象以后可以直接用于命令行表格也可以喂给一个简单的 Web 页面。扫描归档目录实现逻辑复用第 32 章的读取函数。for path in sorted(Path(directory).glob(*-paper-report.json)): payload read_archived_report(path) entries.append( ReportIndexEntry( trade_datepayload[trade_date], statuspayload[health][status], pathpath, ) )排序基于文件名。归档文件名本身以交易日开头所以这个排序稳定且直观。获取最新报告索引为空时返回None不要让调用方处理下标异常。def latest_report_entry(entries: tuple[ReportIndexEntry, ...]) - ReportIndexEntry | None: if not entries: return None return entries[-1]这类小函数看起来简单但在生产代码里能减少很多重复判断。当前联动运行结果paper-run-plan会在临时目录里写入三天日报归档然后生成索引uv run python -m scripts.chapter_examples paper-run-plan索引里能看到2026-03-04、2026-03-05、2026-03-06三条记录其中中间一天是 blocker。索引不读取完整正文只保留列表页和排障入口需要的最小字段。测试索引顺序运行本章测试uv run pytest tests/test_report_index.py tests/test_report_archive.py tests/test_run_history.py关键断言assert [entry.trade_date for entry in entries] [2026-02-05, 2026-02-06] assert [entry.status for entry in entries] [ok, blocker] assert latest_report_entry(entries) entries[-1]这说明索引能稳定列出归档报告并能取到最新一条。本章更新与代码仓库本章更新内容新增app/report_index.py。实现ReportIndexEntry。从归档目录生成报告索引。实现latest_report_entry()。增加paper-run-plan联动示例展示三天归档如何变成可查询索引。新增tests/test_report_index.py覆盖索引顺序和空索引。代码仓库https://github.com/ax2/zi-quant-platform本章代码git clone https://github.com/ax2/zi-quant-platform.git cd zi-quant-platform git checkout chapter-38 uv sync --extra dev uv run pytest tests/test_report_index.py tests/test_report_archive.py tests/test_run_history.py第 38 章提交为6d848cetag 为chapter-38。本篇小结日报归档有了索引历史文件就不再只是散落在目录里的 JSON。第 38 篇把交易日、状态和路径抽成轻量列表。下一篇会处理 blocked 结果检查失败以后系统应该给出明确处理动作而不是只告诉你失败了。
RELATED

相关推荐

FSLogix 深入剖析与 Citrix / Omnissa 同类产品对比

FSLogix 深入剖析与 Citrix / Omnissa 同类产品对比

一、背景:VDI 场景下的 Profile 与用户数据问题在 RDSH / VDI 环境中,每个用户登录都会产生:用户配置文件(User Profile):注册表 hive(NTUSER.DAT) AppData\Local / Roaming 下的应用…

📅 2026/9/27 6:49:13
国产雷达物位计厂家深耕工况测量,一站式解决粉尘、泡沫、高温液位料位监测难题

国产雷达物位计厂家深耕工况测量,一站式解决粉尘、泡沫、高温液位料位监测难题

工业自动化生产体系中,物料、液体的实时精准监测,是保障生产连续、规避溢罐爆仓、降低原料损耗的核心环节。传统浮球、超声波、导波类测量仪表,长期面临粉尘遮挡、蒸汽干扰、介质挂料、高温腐蚀、测量漂移等痛点,大量工厂频繁停机…

📅 2026/10/22 4:36:19
数据产业服务分类(36)——原则、目标与方法——分类设计目标

数据产业服务分类(36)——原则、目标与方法——分类设计目标

数据产业分类设计的目的是明确界定数据产业服务的范围和内容,有效识别和区分各种服务内容,为数据产业服务的获取与提供、政策制定及行业发展提供坚实基础、提供支撑。构建数据产业服务分类的核心目标是为数据产业服务的标准体系建立奠定基础。达到覆盖数据全生命周期…

📅 2026/9/29 20:00:51
MORE NEWS

更多资讯

📰

免费服务器五种形态与自建内网穿透实战指南

“免费服务器”这四个字在搜索框里的出现频率高得离谱,但点进去看会发现,大家想要的根本不是同一个东西。有人只想把几十兆的静态页面挂上去,有人想跑个定时脚本抓数据,有人想给家里那台吃灰的旧笔记本找个出门在外的访问入口&…

📰

免费服务器五种形态选型指南:从云免费额度到自建内网穿透

1. 免费服务器这件事,先把账算明白再动手聊"服务器免费"这个话题,我见过太多人第一反应是去找一个"永久免费"的机器,结果折腾两周,要么被限额卡死,要么到期扣了一笔说不清的钱。免费服务器的本质不…

📰

Chrome扩展程序管理技巧:安全安装、权限审查与高效使用

我电脑上的 Chrome 扩展数量一度飙到四十多个,直到某天打开一个普通网页,风扇狂转、页面卡死,逐个禁用才揪出三个功能高度重叠的插件在同时改同一个 DOM 节点。那之后我把扩展管理当成一件正经事来做:装之前查来源、装之后审权限、…

📰

Illustrator矢量绘图核心技能:从路径逻辑到交付避坑指南

很多刚接触矢量设计的人,第一次打开Illustrator时都会经历一个相似的困惑期:工具栏里几十个图标,面板叠着面板,随手画个圆、拉条曲线,看起来和别的绘图软件差不多,可一旦真正要交付一个能改、能缩放、能印刷…

📰

C# WinForm激光打标二次开发底座:快速集成硬件SDK

简介:本资源是一套基于C# WinForm平台的激光打标机二次开发实战项目,面向工业自动化软件开发者、产线设备集成工程师及.NET桌面应用进阶学习者,聚焦金橙子打标控制SDK的封装调用与人机交互界面构建。压缩包共27个文件,含8个核心C#…

📰

绿色便携软件实战指南:轻量、安全、跨环境的生产力方案

1. 为什么“绿色便携”在今天依然值得认真对待你有没有过这样的经历:刚重装完系统,兴冲冲打开浏览器下载几个常用工具,结果安装包动辄上百MB,点下一步、同意协议、选安装路径、勾选“捆绑软件”——稍不注意,桌面就多出…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬