Releases: kay-ou/SimTradeLab
Releases · kay-ou/SimTradeLab
SimTradeLab v2.2.1
🐛 Bug 修复
- 买入成本含佣金 -
cost_basis现在包含佣金,与 PTrade 实际行为对齐 - 除权事件处理修复 - 使用
date列匹配替代索引查找,除权时同步调整cost_basis - 空数据快速报错 -
StockData数据为空时抛出明确ValueError - 日期类型修正 - 回测循环中确保
current_date为pd.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
✨ 新增功能
- 分钟线回测 - 支持
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
🎉 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
🎉 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
🎉 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
🎉 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
🎉 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
🎉 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
🎉 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.toml和src/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-buildjob的条件判断 - 之前:
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
🎉 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