尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

程序员量化交易实战 28:把价格输入抽象成价格源

程序员量化交易实战 28:把价格输入抽象成价格源
📅 发布时间:2026/7/2 11:14:03

到目前为止,每日流程里的价格都是调用方传进来的last_prices字典。

这对测试很方便,但对系统边界还不够清楚。第 28 篇新增价格源抽象,把“需要哪些价格”和“从哪里取价格”分开。

价格源要解决什么

模拟盘至少需要两类股票价格:

  • 当前持仓里的股票。
  • 目标权重里准备买入或继续观察的股票。

如果缺了任何一个,调仓和快照都可能失真。

这里的价格不是逐笔成交价,也不是盘口五档,而是每日流程用来估算账户权益和目标仓位的“最近可用价格”。在日频模拟盘里,它通常可以是收盘价、复权收盘价或经过清洗后的最新价。关键是口径要稳定,不能今天用收盘价、明天又混入盘中价。

价格快照

第 28 章新增app/price_providers.py。

@dataclass(frozen=True) class PriceSnapshot: trade_date: date prices: dict[str, float] missing_symbols: tuple[str, ...]

缺失价格被明确放进missing_symbols,而不是悄悄忽略。

静态价格提供者

provider = StaticPriceProvider({"000001.SZ": 10.0}) snapshot = provider.get_last_prices(["000001.SZ", "600000.SH"], trade_date=today)

静态实现只服务于测试和文章演示。后续真实行情接入时,可以实现同一个协议,不影响每日流程的上层结构。

当前联动运行结果

paper-notify命令会先合并当前持仓和目标权重里的 symbol,再向StaticPriceProvider请求价格:

uv run python -m scripts.chapter_examples paper-notify

这次运行需要000001.SZ和600519.SH两个价格,静态价格源都返回了,所以missing_symbols=()。如果真实价格源缺失某只股票,后续生产检查和健康报告就能把问题显式暴露出来。

本章更新与代码仓库

本章更新内容:

  • 新增app/price_providers.py。
  • 定义PriceProvider协议和PriceSnapshot。
  • 实现StaticPriceProvider。
  • 新增collect_required_price_symbols(),合并持仓和目标权重所需价格。
  • 增加paper-notify联动示例,展示价格需求合并、静态取价和缺失价格检查。
  • 补充日频模拟盘里价格口径稳定性的背景说明。
  • 新增tests/test_price_providers.py,覆盖价格命中、缺失和 symbol 合并。

代码仓库:

https://github.com/ax2/zi-quant-platform

本章代码:

git clone https://github.com/ax2/zi-quant-platform.git cd zi-quant-platform git checkout chapter-28 uv sync --extra dev uv run pytest tests/test_price_providers.py

第 28 章提交为985e045,tag 为chapter-28。

本篇小结

价格输入不能一直散落在调用方。

第 28 篇把价格源抽象出来,让缺失价格成为可检查状态。下一篇会继续补目标权重策略,让每日流程不再只靠手写权重字典。

相关新闻

  • auto 关键字
  • std::thread
  • Blender MMD Tools终极指南:跨平台3D动画数据转换完整解决方案

最新新闻

  • 企业AI应用API中转服务选型指南:2026年主流平台深度横评与技术解析
  • 3个步骤掌握League Akari:英雄联盟玩家的终极效率工具
  • 如何在M1 Mac上快速部署原生ARM64 Android模拟器:完整配置指南
  • 终极指南:5个技巧实现Go2 ROS2 SDK高效异步机器人控制开发
  • 联盟营销代理指南:类型、应用场景与配置教程
  • GPT-4的1.8万亿参数与2%稀疏激活:MoE架构原理与工程实践

日新闻

  • Python Playwright录制功能:从零到一构建自动化测试脚本
  • 如何用开源工具永久保存你心爱的小说:novel-downloader全攻略
  • In-Context Learning不是教知识,而是模式对齐:从5个示例到100个工业级样本的真相

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号