Skip to content

Releases: kay-ou/SimTradeLab

SimTradeLab v2.2.1

09 Feb 20:42

Choose a tag to compare

🐛 Bug 修复

  • 买入成本含佣金 - cost_basis 现在包含佣金,与 PTrade 实际行为对齐
  • 除权事件处理修复 - 使用 date 列匹配替代索引查找,除权时同步调整 cost_basis
  • 空数据快速报错 - StockData 数据为空时抛出明确 ValueError
  • 日期类型修正 - 回测循环中确保 current_datepd.Timestamp,避免 datetime.date 无法 replace 时间分量

🔧 改进

  • 路径处理重构 - 使用 Path 对象替代字符串拼接,跨平台兼容
  • 项目根目录查找优化 - 新增 CWD 优先检测,支持 manifest.json 判定
  • 图表 x 轴自适应 - 根据回测时长自动选择年/季/月刻度间隔
  • 控制台编码修正 - 使用 reconfigure 确保 UTF-8 编码和实时输出

📦 升级指南

从 v2.2.0 升级:

pip install --upgrade simtradelab==2.2.1

兼容性: ✅ 向后兼容,无 breaking change。

SimTradeLab v2.2.0

07 Feb 16:29

Choose a tag to compare

✨ 新增功能

  • 分钟线回测 - 支持 frequency='1m' 分钟级回测,需配合 data/stocks_1m/ 分钟数据
  • API 增强 - 增强股票筛选和策略参数配置能力
  • Ptrade API 类型声明脚本 - scripts/setup_typeshed.sh,让 Pylance 识别策略中的 Ptrade API 全局函数

🔧 改进

  • 回测图表中文化 - 图表标签从英文改为中文(策略净值、每日盈亏、买卖金额、持仓市值)
  • 图表柱宽自适应 - 根据回测周期自动调整柱状图宽度
  • 统计数据收集优化 - 改进 StatsCollector 数据采集流程
  • 复权计算向量化 - _apply_adj_factors 替代逐行计算,提升性能
  • 类型注解现代化 - 全面使用 list[str]dict[str, Any]X | None 等现代语法
  • 发布工作流精简 - 移除冗余步骤,简化 CI 配置

📦 升级指南

从 v2.1.0 升级:

pip install --upgrade simtradelab==2.2.0

兼容性: ✅ 向后兼容,无 breaking change。分钟回测为新增功能,需额外准备分钟数据。

v2.1.0

30 Jan 20:31

Choose a tag to compare

🎉 SimTradeLab v2.1.0 发布

📋 版本信息

  • 版本号: v2.1.0
  • 发布日期: 2026-01-30
  • 发布类型: 补丁更新 (Patch)

✨ 新增功能

🔧 改进优化

优化持仓更新逻辑和卖出验证
优化API异常处理和复权计算性能

🐛 问题修复

订单处理中使用symbol替换stock字段

📚 文档更新

⚠️ 破坏性变更

数据保存格式从h5改为parquet

📦 安装方法

通过pip安装

pip install simtradelab==2.1.0

通过Poetry安装

poetry add simtradelab@2.1.0

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v2.1.0
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 0 次提交
  • 贡献者: 0 位贡献者
  • 文件变更: 0 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: HEAD...v2.1.0

SimTradeLab v2.0.0

08 Jan 21:05

Choose a tag to compare

🎉 SimTradeLab v2.0.0 发布

📋 版本信息

  • 版本号: v2.0.0
  • 发布日期: 2026-01-08
  • 发布类型: 重大更新 (Major)

✨ 新增功能

  • 从 911 行压缩到 340 行(压缩 62.7%)
  • 移除冗余的技术细节和重复内容
  • 保留核心使用指南和快速开始流程
  • 许可证说明提前到更显眼位置
  • docs/INSTALLATION.md - 详细安装指南
  • 多平台系统依赖安装(macOS/Linux/Windows)
  • 源码安装和PyPI安装方式
  • 工作目录配置和数据准备
  • 常见问题排查(Q&A 6条)
  • docs/ARCHITECTURE.md - 架构设计文档
  • 核心模块职责说明
  • 性能优化详解(数据常驻、多级缓存、向量化计算)
  • 策略执行引擎设计
  • 生命周期管理机制
  • 持仓管理与分红税算法
  • docs/TOOLS.md - 工具脚本说明
  • 参数优化框架(Optuna集成)
  • 性能监控工具(@Timer装饰器)
  • 策略代码静态分析
  • Python 3.5兼容性检查
  • docs/IDE_SETUP.md - IDE配置指南
  • VS Code 和 PyCharm 配置
  • 类型提示和代码片段
  • 开发环境优化
  • src/simtradelab/ 下所有 .py 文件(30个)
  • 提升法律合规性和机器可读性
  • 符合 SPDX 规范 2.3

🔧 改进优化

  • 交易API统一使用 security 参数(与PTrade官方一致)
  • get_fundamentals 支持 str | list[str] 类型(更灵活)
  • 明确贡献者版权归属
  • 说明开源许可和商业许可权利
  • 提供清晰的贡献指南
  • 您拥有提交代码的完整版权
  • 您同意按照 AGPL-3.0 许可证发布
  • 您同意项目维护者有权用于商业许可授权
  • 完整 API 文档
  • 架构设计文档
  • 安装指南
  • 贡献指南
  • 商业许可咨询

🐛 问题修复

📚 文档更新

  • 更新许可证文件路径
  • 更新类型提示文档说明
  • 更新IDE开发配置文档
  • 添加 VS Code 代码片段配置说明

⚠️ 破坏性变更

  • 开源使用:AGPL-3.0 许可证
  • ✅ 免费用于开源项目
  • ✅ 个人学习和研究
  • ⚠️ 网络使用需开源(AGPL要求)
  • 商业使用:需购买商业许可
  • 用于商业/闭源产品
  • 作为内部工具但不希望开源代码
  • 需要技术支持和定制开发
  • 📧 联系: kayou@duck.com
  • 现有开源项目:✅ 可继续使用(符合AGPL要求)
  • 商业闭源项目:⚠️ 需购买商业许可或迁移到v1.x
  • 个人学习研究:✅ 无影响
  • ✅ 使用位置参数的代码:无需修改
  • ⚠️ 使用关键字参数的代码:必须修改参数名
  • get_fundamentals 现在支持单个股票和股票列表

📦 安装方法

通过pip安装

pip install simtradelab==2.0.0

通过Poetry安装

poetry add simtradelab@2.0.0

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v2.0.0
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 12 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 45 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.2.4...v2.0.0

SimTradeLab v1.2.4

03 Jan 12:25

Choose a tag to compare

🎉 SimTradeLab v1.2.4 发布

📋 版本信息

  • 版本号: v1.2.4
  • 发布日期: 2026-01-03
  • 发布类型: 功能更新 (Minor)

✨ 新增功能

  • release-notes workflow自动触发publish workflow
  • 重构前复权计算逻辑并优化性能
  • feat(optimizer):改进策略优化器框架,适配5mv优化器
  • 实现智能参数优化框架并添加5mv策略优化示例

🔧 改进优化

  • revert: 恢复release-notes.yml到1.2.3时的版本
  • revert: 恢复publish.yml到1.2.3时的简单版本
  • bump version to 1.2.4

🐛 问题修复

  • 移除workflow_call,改为提示手动触发publish
  • 添加trigger-publish job的id-token权限
  • 修复publish workflow支持手动触发和workflow_call

📚 文档更新

  • 更新1.2.4版本变更内容
  • bump version to 1.2.4 in README
  • 更新示例策略路径和数据获取说明
  • 移除Docker相关配置文件

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.2.4

通过Poetry安装

poetry add simtradelab@1.2.4

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.2.4
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 14 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 15 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.2.3...v1.2.4

SimTradeLab v1.2.3

14 Dec 15:32

Choose a tag to compare

🎉 SimTradeLab v1.2.3 发布

📋 版本信息

  • 版本号: v1.2.3
  • 发布日期: 2025-12-14
  • 发布类型: 功能更新 (Minor)

✨ 新增功能

  • 添加自动生成 Release Notes 功能
  • ci(publish): 添加发布工作流的写入权限

🔧 改进优化

  • bump version to 1.2.3

🐛 问题修复

  • 确保 publish workflow checkout 正确的 release tag
  • 调整交易日索引查找逻辑
  • 添加 GitHub token 权限以支持脚本操作

📚 文档更新

  • 更新版本号至1.2.2并调整目录结构说明

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.2.3

通过Poetry安装

poetry add simtradelab@1.2.3

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.2.3
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 8 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 11 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.2.2...v1.2.3

SimTradeLab v1.2.2

09 Dec 17:42

Choose a tag to compare

🎉 SimTradeLab v1.2.2 发布

📋 版本信息

  • 版本号: v1.2.2
  • 发布日期: 2025-12-09
  • 发布类型: 功能更新 (Minor)

✨ 新增功能

  • ci(publish): 添加 PyPI 环境配置
  • ci(publish): 添加id-token写入权限
  • 更新项目根目录查找逻辑   优先通过 data 目录定位项目根路径,提高路径查找的可靠性;   同时保留 pyproject.toml 和固定层级作为备选方案。
  • build(.gitignore): 添加赞助商图片到git跟踪

🔧 改进优化

  • ci(github-actions): 移除重复的发布工作流并优化安装验证脚本
  • build(workflows): 移除顶层权限配置并更新发布流程
  • build(pyproject.toml): 更新项目版本号至1.2.2
  • build(workflows): 移除PyPI可信发布所需的id-token权限

🐛 问题修复

  • ci(publish): 修复PyPI发布环境配置

📚 文档更新

  • 添加虚拟环境创建和激活命令
  • 更新赞助二维码图片路径
  • 更新赞助二维码图片路径

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.2.2

通过Poetry安装

poetry add simtradelab@1.2.2

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.2.2
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 12 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 10 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.2.1...v1.2.2

SimTradeLab v1.2.1

01 Dec 17:39

Choose a tag to compare

🎉 SimTradeLab v1.2.1 发布

📋 版本信息

  • 版本号: v1.2.1
  • 发布日期: 2025-12-01
  • 发布类型: 功能更新 (Minor)

✨ 新增功能

  • ci(publish): 添加 PyPI 可信发布所需的 id-token 权限

🔧 改进优化

  • ci(publish): 更新发布工作流触发条件
  • ci(publish): 更新PyPI发布工作流配置
  • ci(publish): 简化 PyPI 发布工作流配置
  • ci(publish): 配置PyPI可信发布权限和环境
  • build(poetry): 更新 poetry.lock 文件内容哈希值
  • build(src): 更新版本号至1.2.1
  • bump version to 1.2.1 and remove redundant [project] section
  • build(workflow): 更新构建工作流以从源码安装 ta-lib

🐛 问题修复

  • 添加 TWINE 环境变量用于 PyPI 认证
  • 切换到 API token 认证方式

📚 文档更新

  • 更新安装指南并添加PyPI安装方式

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.2.1

通过Poetry安装

poetry add simtradelab@1.2.1

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.2.1
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 12 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 7 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.2.0...v1.2.1

SimTradeLab v1.2.0

30 Nov 10:38

Choose a tag to compare

🎉 SimTradeLab v1.2.0 发布

📋 版本信息

  • 版本号: v1.2.0
  • 发布日期: 2025-11-30
  • 发布类型: 功能更新 (Minor)

✨ 新增功能

  • 添加核心依赖
  • cachetools ^5.3.0 - LRU缓存支持,提升性能
  • joblib ^1.3.0 - 并行处理支持
  • matplotlib ^3.7.0 - 图表绘制功能
  • optuna ^3.0.0 - 参数优化器(可选依赖)
  • 新增PyPI发布指南 - 详细的发布流程和配置说明(docs/PYPI_PUBLISHING_GUIDE.md
  • 新增快速发布指南 - 简化的发布操作步骤(RELEASE.md
  • 完善README - 添加详细的功能对比和项目状态说明
  • PTrade有的我们也有:52个核心API详细列表
  • PTrade没有我们有:独特的性能优化和智能功能
  • PTrade有我们还没有:99个待实现API清单

🔧 改进优化

  • 版本号统一 - 同步pyproject.tomlsrc/simtradelab/__init__.py的版本号
  • 添加__version__ - 在包根目录导出版本号
  • 修正API数量 - 从56个修正为52个(移除未实现的API)
  • 更新完成度统计
  • 总体完成度:34%(52/151个API)
  • 回测场景:75%(49/65个API)
  • 研究场景:60%(35/58个API)
  • 交易场景:22%(15/67个API)
  • 详细功能对比
  • 核心交易功能:4个基础API
  • 数据查询功能:完整支持
  • 技术指标计算:100%完成(4个指标)
  • 策略配置:75%完成
  • 新增项目状态章节 - 清晰展示已完成和正在进行的工作
  • 新增功能对比章节 - 详细对比PTrade和SimTradeLab的功能
  • 新增待改进章节 - 坦诚说明已知问题和改进计划
  • 命令行/UI优化需求
  • 内存优化方案(8-12GB占用问题)
  • SimTradeData性能问题
  • 测试覆盖不全面的说明
  • 更新项目结构 - 反映实际的代码组织
  • 精简冗余内容 - 移除重复的示例和API列表
  • LRU缓存优化 - 通过cachetools实现高效缓存管理
  • 并行处理 - 通过joblib支持多进程并行计算
  • 测试覆盖不全 - 由于时间限制,主要通过实际策略发现和修复问题
  • 内存占用较大 - 全量加载5000+股票需要8-12GB内存
  • SimTradeData性能 - 数据获取项目存在性能问题,需要优化
  • 部分API未实现 - 还有99个PTrade API待实现
  • 融资融券:19个API
  • 期货交易:7个API
  • 期权交易:15个API
  • 实时交易:高级交易、盘后交易、IPO申购等
  • 报告bug和问题
  • 实现缺失的API
  • 优化性能和内存
  • 完善文档和示例
  • 分享策略和使用经验
  • 新增必需依赖:cachetools, joblib, matplotlib
  • 版本号统一管理
  • API数量从56个修正为52个
  • ✅ 向后兼容 - 策略代码无需修改
  • ✅ 数据格式兼容
  • ✅ 配置文件兼容

🐛 问题修复

  • 修复系统依赖安装问题
  • Linux: 从源码编译安装ta-lib(Ubuntu仓库无libta-lib-dev包)
  • macOS: 添加TA_LIBRARY_PATH和TA_INCLUDE_PATH环境变量
  • Windows: 暂时跳过ta-lib安装(编译复杂)
  • 简化CI矩阵 - 仅在Linux上运行自动CI(移除macOS/Windows以提升速度)
  • 修复publish workflow逻辑 - 修正release-build job的条件判断
  • 之前:if: ${{ !inputs.skip_tests || success() }}(逻辑错误)
  • 现在:if: ${{ always() && (inputs.skip_tests == true || needs.test.result == 'success') }}
  • 修复导入测试 - 使用正确的模块路径
  • 错误:from simtradelab import BacktestEngine, Context
  • 正确:from simtradelab.backtest.runner import BacktestRunner
  • 修复__init__.py编码问题 - 解决中文注释乱码(UTF-8编码)
  • 更新poetry.lock - 同步依赖锁文件

📚 文档更新

  • docs/PYPI_PUBLISHING_GUIDE.md - 完整的PyPI发布指南
  • Trusted Publishing配置
  • 发布流程详解
  • 常见问题排查
  • RELEASE.md - 快速发布操作指南
  • docs/PTrade_API_Implementation_Status.md - API实现状态更新
  • README.md - 大幅更新,增加功能对比和项目状态
  • 各workflow文件的注释和说明

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.2.0

通过Poetry安装

poetry add simtradelab@1.2.0

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.2.0
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 123 次提交
  • 贡献者: 2 位贡献者
  • 文件变更: 166 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.1.0...v1.2.0

SimTradeLab v1.1.1

07 Jul 23:14

Choose a tag to compare

🎉 SimTradeLab v1.1.1 发布

📋 版本信息

  • 版本号: v1.1.1
  • 发布日期: 2025-07-07
  • 发布类型: 补丁更新 (Patch)

✨ 新增功能

🔧 改进优化

  • 更新依赖包配置为必选并扩展分组

🐛 问题修复

  • 升级版本号至1.1.1修复依赖错误

📚 文档更新

⚠️ 破坏性变更

📦 安装方法

通过pip安装

pip install simtradelab==1.1.1

通过Poetry安装

poetry add simtradelab@1.1.1

从源码安装

git clone https://github.com/kay-ou/SimTradeLab.git
cd SimTradeLab
git checkout v1.1.1
poetry install

🔗 相关链接

📊 项目统计

  • 代码提交: 2 次提交
  • 贡献者: 1 位贡献者
  • 文件变更: 2 个文件

🙏 致谢

感谢所有为这个版本做出贡献的开发者和用户!


完整变更日志: v1.1.0...v1.1.1