## 变更日志（Changelog）

本文件汇总 New Tea Quant 的主要版本变更。  
自 `v0.1.0` 起采用统一版本规范 `v[a].[b].[c]`（a=Version，b=Function，c=Patch）。  
`v0.0.x` 段为对历史内部里程碑（原文档中的 v2/v3/v4）的回溯编号。

新版本更新清单：
``python devcli.py p -core_vx.x.x``

[] (已自动化)同步 ``core/system.json`` / ``core/system.py`` 中的版本与 ``new_features``（自 CHANGELOG 对应版本段落读取）
[] (已自动化)同步版本徽章
[] (已自动化)确保所有test都能跑过
[] (已自动化)检查安装依赖的数据是不是齐全，是不是足够新
[] (已自动化)npm run build 产生UI资产
[] (已自动化)检查是不是有py3.9不支持的格式
[] (快捷命令)是否需要更新init data，``python devcli.py ex``
[] (快捷命令)是否需要更新init userspace，``python devcli.py pu``
[] 检查是不是正确配置了.gitignore
[] Changelog 里注明改动和可能存在的破坏性改动
[] 更新模块文档（模块 readme，API，module_info 含 changelog）
[] 有破坏性更改或者新的模块需要在module_info.yaml里更新core的依赖
[] 更新项目README文档


---

### v0.5.x (TBD)

目标，决策者模式
- 全线重命名capital allocation simulator成portfolio simulator
- 加入on select investment回调函数（capital allocation超出最大持股的回调函数）
- 加入多策略并行 on portfolio 选股时的决策函数


---

---

### v0.4.3 (2026-6-25)
- 修复了windows找不到文件的问题，现在windows能够正常运行了
- 修复了python3.13的依赖问题
- 修复了枚举UI上会显示没有机会的单个股票的bug
- 增强了tag和strategy的profiler，帮助性能测试收集必要的数据
- 推出了一套NTQ的基线性能指标
- 对tag模块的切片模式增加了数据游标，性能测试6-9倍提升，且数据量越大提升越明显
- 修复了UI进度显示不准确的问题
- 重新定义了回测的缓存指纹，提高了效率和可靠性，让tag和strategy使用同一套指纹逻辑
- 修复了UI上修改参数后会产生2个缓存版本的bug

---


---

### v0.4.2 (2026-6-21)

- 重大更新：回测器和标签计算器支持多股并行的切片式回测
- 使用多进程分散计算和数据预读取的方式加快效率
- 加入探针，对切片进行自动大小分配以提高运行效率
- 新增加低价策略来演示幸存者偏差
- (破坏性改动)重构tag的设置格式，分组并移除了一些配置，让配置更简单和直观
- 增加了新的空的策略和标签模版，可以直接拷贝和修改
- 重写了 cli 和 devcli
- ui新增加“高级功能”, 包含特征标签，数据源（暂时不能更新），数据契约
- 在设置中增加了data.json全局数据管理的设置，并在一些页面显示被截断的警告，策略扫描演示模式的截止时间变成读取data.json
- 给设置里增加清除缓存的功能
- 在策略调试的界面加入“上一步”的按钮
- 重新写了项目readme，更新用例
- 清理了core/global_enums文件夹，将枚举分散到各自的主模块里

---

---

### v0.4.1 (2026-6-15)

- 重大更新：新增加了3组共9个层层递进的演示策略来帮助理解框架和概念（注意：回测结果仅供参考，不是任何投资建议）
- 重大更新：增加策略回测report里的单股K线的点击界面，能够打开单个股票查询详细机会和交易回测点位
- 重大更新：重建回测的UI，将三层回测变成三个单独页面而不再集中在一页上，提升了用户体验并且减小了UI渲染压力
- (破坏性改动)将策略 settings 的一些信息字段收入meta中, 顶层只留is enabled字段；
- (破坏性改动)改动了data.json, 重命名了数据截断日期为 as of latest completed date
- (破坏性改动)所有k线的最高最低价从highest和lowest变成high和low
- (破坏性改动)对公司财务表加入了披露日期的列
- (破坏性改动)将K线的数据契约从一个按照周期分成了3个，补上了STOCK_INDICATORS_DAILY的数据契约
- (破坏性改动)策略设置里指标的声明归入了数据的私有属性，不再是 data 的根目录
- 新增加了个股资金流向数据表
- 新增加了策略导入和导出功能
- 让复权因子可以根据data.json的配置先行导入可用的数据，大大降低了更新的时间
- 重新定义了复权因子的存储结构和计算方式，使复权因子能够累加而不是刷新式更新。增加了复权因子链式检查以确保实效性。
- 策略 settings 加入display name作为展示名称
- 新增加命令行和UI的策略导入和导出功能
- 修复了UI上的回测缓存有的时候会取错的bug
- 修复了UI上有的时候回测报告会显示无效数据的bug
- 修复了回测进度完成后会马上返回一份report然后又被另一个专门拿report的API覆盖的bug
- 修复了回测进度只管回测股票进度的bug，现在整个回测进度由加载数据，分发任务，执行计算和总结结果4个部分构成
- 修复了market profile忘了加入T+1交易的逻辑
- 修复了价格回测在遇到跌停无法卖出导致交易最终无法平仓的bug
- 修复策略报告 K 线 tooltip 将 dataIndex 误显示为开盘价的问题
- 简化命令行入口文件名，从 start-cli.py 改名成为 cli.py，从 dev-cli.py 改成 devcli.py

---


---

### v0.4.0 (2026-6-7)

- (重大更新)引入duckdb，当前项目不再依赖任何第三方数据库，只要有python就可以运行了
- (重大更新)计算管道与多进程更新：现在回测效率提高了6倍以上：以前全流程约180秒，现在约30秒
- (破坏性改动)修改了userspace的文件夹结构，对原来的平铺结构进行收纳，突出核心文件夹，并且配有中文文件夹结构说明文档
- 在dev-cli里加入init userspace的自动打包命令和清除缓存命令
- duckdb：更新data source模块，使用批量写入以避免duckdb单写瓶颈
- duckdb：更新并加入duckdb锁管理器，避免子进程和主进程抢占duckdb的单进程锁
- duckdb：给所有写入操作加入完成后自动checkpoint之类，避免wal和db文件双重锁导致的随机错误，牺牲一小点写入代价换取数据库锁的稳定和可预测性
- 性能更新：原单进程处理单只股票变成单进程处理多只股票，降低数据库读取时的IO，大幅度提升效率
- 性能更新：更改了K线读取，复权还有计算指标的逻辑，提高内存使用，降低数据查询次数，大幅提高效率
- 性能更新：加入探针模式，让内存和进程进行自动分配。
- 性能更新(破坏性改动)：从原来策略的设置里去掉了性能配置，放入全局设置，减小用户心智
- 将回测引擎的数据加载和缓存彻底委托给数据契约，现在的数据读取和缓存全部由数据契约完成。
- 清理所有模块的module info，并且加入每个模块的change log
- 修改了策略使用采样发生变化依然会触发缓存的bug

---


---

### v0.3.3 (2026-5-27)

- 重构获取股票列表的handler，获取全量股票列表，包括退市的
- 增加交易日历表和数据获取逻辑
- 增加风险时段表，记录每个股票的黑历史
- 资金回测过程中加入交易量限制，提高模拟准确性
- 重新打包了init_data里边包含回测期间已经退市的股票，清理老的数据表，减小对用户的认知负担
- 集成新表，数据和API进入回测系统，大幅减小幸存者偏差
- 优化了K线指标计算逻辑，指标计算速度提升65%以上
- 在dev-cli里加入自动检查python 3.9不支持语法的检查
- 在dev-cli加入数据打包功能（-ex）

---


---

### v0.3.2 (2026-5-20)
- 为非开发用户去除了Nodejs依赖
- 增加market profile模块，细化回测时候的交易规则
- 在userspace中提供了可以复写/添加新的market profile的配置
- 最小买入手数从100股变成了不同板块不同股数
- 加入涨停和跌停时限制交易的配置
- 根据不同股票或不同上市阶段，限制不同最大最小涨跌幅度
- 重新划分了project context模块的职责边界
- 新增加了一些UI样式：比如读取的动画，随机背景
- 优化UX，为很多地方添加了解释的tooltip。对次要内容使用tooltip进行归纳。最后增强了tooltip的视觉效果。
- 修复了核心设置的json发生变化就会导致整个设置区域消失的bug
- 在回测报告里加上了回测时间区间信息，并改进了枚举器关于时间的IO，大概提高6-8%的执行效率
- 为核心参数设置增加了大窗口编辑模式
- 优化了策略工作台执行步骤的进度显示
- 修复了工作台版本差异状态的变化显示错误
- UI header上的版本号改为从API获取

---


---

### v0.3.1 (2026-5-16)
- 将setup步骤变成UI版和命令行版本
- 修复了UI的npm安全性问题
- 修复了前端ESLint的警告
- 让UI端口使用python server，取消了使用者的Nodejs依赖（开发仍然需要）
- 增加了回测准确性的配置，可以配置交易终结价格以什么价格为主，从而更贴近现实交易回测
- 增加updater的一些基础功能，从0.4.x起，应该支持UI一键升级

---


---

### v0.3.0 (2026-05-11) - 此次版本更新将会引入破坏性改动

- 重大更新：UI系统发布，引入nodejs依赖
- 加入 `launcher.py`，一键启动 app 和 UI，自动发现安装状态并引导完成 Setup
- 在核心内加入BFF和UI，引入前端UI
- 完成策略工作台和策略扫描的UI和BFF
- 对齐UI和命令行的report，使输出结果保持一致
- 对命令行和UI的回测加入缓存系统，现在重复的回测会直接返回report
- 清理文件夹结构，将backup文件夹放入userspace，将docker以及badge生成还有自动更新readme这类代码放入devtools文件夹并更新代码引用和文档
- 收敛复权因子的逻辑进入model底层，并且为K线复权做了一条特殊快速通道，以便回测减小IO次数
- 在userspace里放入tables的文件夹，加入文档引导用户建立自己的数据表
- 重构strategy核心模块的组织方式，变成更直观的编排层 + flow流模式
- Strategy里加上了为支持输出的launcher和支持UI的adapter
- 扫描系统加入缓存，如果当日扫描过，将直接返回结果
- 清理start cli，变成代理层


破坏性改动：
- backup文件夹从更目录移动到了userspace
- app不再自带userspace文件夹，而是安装的时候自动创建
- start-cli 的扫描命令现在降级成一次只能用一个策略进行扫描
- 引入Nodejs依赖
- simulator的回测report格式发生了变化

---

---

### v0.2.2 (2026-04-21)

- 增加了Readme里的小徽章和相应的github gitee自动化
- 添加英文Readme
- 增加了UT coverage和merge的最小要求
- 对所有模块增加了测试的覆盖率，修复Github的CI错误
- 为官网增加了不少新的样式
- 在官网重新写了API文档，对NTQ的死链接进行了清理
- 修复了官网注册不成功的bug，修改了官网提交反馈form的时候会出现email无法发送的bug

---

---

### v0.2.1 (2026-04-14)

- 为所有模块设计并添加了info的信息，并增加了对核心的版本支持能力
- 废弃并删除了core/data_class
- 重构所有文档的位置和内容，让文档保持最新状态
- 重构userspace里的用户readme文档，让概念和例子更加易懂
- 定义了文档标准并记录在`docs/module-doc-standard.md`
- cli增加显示版本信息的命令`python start-cli --version`

---

### v0.2.0 (2026-04-13)

- 新增加了data contract的核心模块，为核心策略和标签模块增加了用户可扩展的数据契约
- 制作了一个最小demo合集，让用户5分钟能跑起来框架
- 在tag和strategy里集成了data contract模块
- 去掉了tag模块写死的多进程分配逻辑，变成可自动通过内存变化分配进程的auto模式
- 增加了所有相关UT

---


---

### v0.1.1 (2026-04-05)

- 修复了数据库配置中配置需要mysql：或者 postgresql：包裹的bug，更新了db的example的配置文件
- 更新了所有的UT，增加coverage，更新了README里的运行pytest的部分

---


---

### v0.1.0 (2026-02-11)

- 首个对外开源的预发布版本；
- 统一许可证为 Apache License 2.0，并清理文档中与之冲突的非商业条款；
- 清理硬编码的本地路径和个人 workspace 配置，完善 Tushare token 等配置指引；
- 新增开源配套文档：`CONTRIBUTING.md`、`CODE_OF_CONDUCT.md`、`SECURITY.md`、`SUPPORT.md`、`.github` issue/PR 模板；
- 新增基础 CI（GitHub Actions）流水线与测试说明；
- 在 README 中补充项目定位、版本规范说明以及公共 API / 内部实现的边界说明。

---

### v0.0.3 (2026-01-15)

- 🎯 **三层回测架构**：机会枚举 → 价格因子模拟 → 资金分配模拟；
- 💰 **资金分配模拟器**：真实资金约束下的组合回测，支持等资金/等股/Kelly 分配策略；
- 📉 **价格因子模拟器**：无资金约束的信号质量评估，快速验证策略有效性；
- 🏷️ **版本管理系统**：独立的版本控制，支持多轮回测结果对比；
- ⚙️ **配置系统重构**：统一的配置结构，移除向后兼容，更清晰的字段命名；
- 🔄 **模块化优化**：代码拆分和重构，提高可维护性；
- 📊 **结果输出优化**：详细的交易记录、权益曲线、汇总统计；
- 🗄️ **DataManager 重构**：Facade + Service 架构，职责分离，明确性优先；
- 📦 **DataSource 系统**：Handler + Provider 架构，配置驱动、易于扩展，支持多数据源切换；
- 🏷️ **Tag 系统**：Scenario + Tag 三层架构，配置驱动的标签计算框架，支持多进程并行计算；
- 📈 **Indicator 模块**：基于 `pandas-ta-classic`，支持 150+ 技术指标，通用模块设计；
- 🔧 **Infrastructure 完善**：Database 和 Worker 系统优化，多进程安全，自动资源管理。

---

### v0.0.2 (2025-09-25)

- 重构策略框架，支持插件化策略；
- 新增投资目标管理系统；
- 新增自定义结算逻辑支持；
- 新增 Momentum、MeanReversion 策略；
- 优化 RTB 策略（ML 增强版）；
- 完善文档和示例。

---

### v0.0.1 (2025-07-26)

- 从 Node.js 迁移到 Python；
- 重构系统架构；
- 添加多数据源支持。

