程序员量化交易实战 27:用文件记录模拟盘日报发送

📅 2026/7/2 11:15:27 ✍️ 编辑团队 👁️ 阅读次数
程序员量化交易实战 27:用文件记录模拟盘日报发送
第 26 篇抽象了提醒通道。现在需要一个真实可运行的实现。第 27 篇先做文件型通道把日报发送记录写入 JSONL。它不是最终通知方案但很适合本地调试和测试回放。为什么先写文件真实通知平台会带来网络、鉴权、限流和配置问题。这些都重要但不是当前最该解决的问题。我们先要证明每日流程能产出日报通道能接收发送结果能保存。JSONL 发送记录第 27 章新增app/file_notifications.py。FileNotificationChannel会把每次发送写成一行 JSONchannel FileNotificationChannel(pathPath(data/paper-alerts.jsonl)) receipt send_paper_alert(channel, message, destinationpaper-daily, sent_atnow)每行包含通道、是否接收、目的地、标题、发送时间、严重级别、正文和错误信息。为什么不是 CSV日报正文天然可能有换行CSV 也能处理但阅读和追加都不如 JSONL 直接。JSONL 的好处是每一行都是完整记录后续可以按行读取也可以用命令行工具快速检查。它还有一个工程上的好处追加写入天然适合做本地审计日志。即使程序中途退出已经写入的行也不会因为某个大 JSON 数组没闭合而整体不可读。当前联动运行结果继续运行同一条命令uv run python -m scripts.chapter_examples paper-notify文件通道会把日报写入paper-alerts.jsonl示例命令随后用read_file_notifications()回读记录这张图里保留的是一行 JSONL 的核心字段。后续如果接入飞书或邮件也可以保持类似的回执结构只是通道名和外部平台字段不同。本章更新与代码仓库本章更新内容新增app/file_notifications.py。实现文件型提醒通道。将发送记录追加写入 JSONL。提供read_file_notifications()回读函数。增加paper-notify联动示例展示日报发送、JSONL 记录和回读结果。补充 JSONL 作为追加审计日志的适用场景。新增tests/test_file_notifications.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-27 uv sync --extra dev uv run pytest tests/test_file_notifications.py第 27 章提交为5191340tag 为chapter-27。本篇小结文件型通道让提醒这件事先变得可验证。第 27 篇没有接任何外部平台但已经能保存日报发送记录。下一篇会继续拆边界把每日流程里的价格输入抽象出来。