|
|
161b7cc690
|
fix(factors/engine): 修复 DataRouter 缓存 key 缺少 columns 导致的缓存污染
|
2026-04-06 00:19:15 +08:00 |
|
|
|
ad8ba8f6ec
|
fix(training): 保留 test 集中标签为 NaN 的样本用于预测
|
2026-04-05 23:24:22 +08:00 |
|
|
|
1fa4ff9544
|
feat(training): TabM 排序模型架构优化与 Rank-Gauss 标签工程
- TabMSetRank: 将 TabM 输出改为隐藏层特征,经 SetRankHead 交互后通过 final_mlp 输出 Ensemble 排序分
- SetRankHead 引入可学习残差缩放因子(Zero-init)与 Pre-Norm 结构,提升训练稳定性
- TabMRankTask 新增 Rank-Gauss 连续标签变换,支持标准分位数/指数增益/Rank-Gauss 三种标签模式
- 修复 NDCG 评估在负值标签下的计算问题
- 调整实验脚本超参数(dropout、hidden dim、weight decay)及排除因子列表
- 迁移废弃的 torch.cuda.amp 到 torch.amp,并将数据预加载至 GPU 减少循环拷贝
|
2026-04-05 19:01:08 +08:00 |
|
|
|
598f6eefd8
|
chore(experiment): 注释掉 regression 实验脚本中的 max_bin 参数
|
2026-04-05 18:34:14 +08:00 |
|
|
|
94d5d13bb1
|
feat(training): 新增 TabM SetRank 模型并支持任务注入
- 添加 TabMSetRankModel 实现集合排序训练
- TabMRankTask 支持通过 model_class 注入兼容模型
- 启用 common.py 中的流动性因子
|
2026-04-05 01:03:17 +08:00 |
|
|
|
a66d5e9db3
|
feat(training): 新增 TabM 排序学习模型支持并优化训练流程
- 新增 TabMRankModel、TabMRankTask 及配套损失函数与配置
- 将 DataQualityAnalyzer 从 experiment 迁移至 training 模块
- 调整数据处理器移除过度的 NaN/null 硬填充逻辑
- 优化 RankTask 评估指标使用分位数标签替代原始收益率
- 更新实验脚本处理器顺序与模型超参数配置
|
2026-04-04 22:39:58 +08:00 |
|
|
|
9e7d4241c6
|
feat(data): 添加个股资金流向接口并重构速率限制配置
- 新增 moneyflow 资金流向数据同步模块
- 实现接口级速率限制配置(sync_config.py)
- 更新流动性相关因子定义
- 添加非对称量化损失函数
|
2026-04-03 23:57:47 +08:00 |
|
|
|
c143815443
|
feat(training): TabM模型量化交易优化
- 新增 CrossSectionSampler 支持截面数据采样(按交易日批处理)
- 新增 EnsembleQuantLoss (Huber + IC) 替代 MSE 作为损失函数
- 重构 TabMModel 支持量化场景:Rank IC 作为验证指标、CosineAnnealingLR学习率调度、梯度裁剪
- 支持 date_col 参数和特征对齐
- 更新实验配置 batch_size 2048 和 weight_decay 等超参数
|
2026-04-01 00:20:05 +08:00 |
|
|
|
36a3ccbcc8
|
feat(training): 新增 TabM 模型支持及数据质量优化
- 添加 TabMModel、TabPFNModel 深度学习模型实现
- 新增 DataQualityAnalyzer 进行训练前数据质量诊断
- 改进数据处理器 NaN/null 双重处理,增强数据鲁棒性
- 支持 train_skip_days 参数跳过训练初期数据不足期
- Pipeline 自动清理标签为 NaN 的样本
|
2026-03-31 23:11:21 +08:00 |
|
|
|
9e0114c745
|
feat(training): 支持 Label 预处理器
- DataPipeline 新增 label_processor_configs 参数
- 分离特征与 label 的预处理流程
- regression.py 添加 label 缩尾处理配置
- 调整学习率并更新排除因子列表
|
2026-03-29 02:37:53 +08:00 |
|
|
|
c3d1b157e9
|
feat(factors): 新增筹码集中度相关因子并优化训练框架
- 添加 19 个筹码分布和胜率相关因子(包括chip_dispersion、winner_rate等系列)
- LightGBM模型添加早停和训练指标记录功能
- 统一Label配置到common.py模块
- 新增list_factors.py因子列表脚本
|
2026-03-29 01:34:58 +08:00 |
|
|
|
d4e0e2a0b6
|
feat(data): 添加每日筹码及胜率数据接口 (cyq_perf)
- 新增 api_cyq_perf 模块,支持筹码分布数据获取和同步
- 在 sync_registry 中注册 cyq_perf 同步器
|
2026-03-26 22:22:43 +08:00 |
|
|
|
6730acbae1
|
feat(data): 添加每日筹码及胜率数据接口 (cyq_perf)
- 新增 api_cyq_perf 模块,支持筹码分布数据获取和同步
- 在 sync_registry 中注册 cyq_perf 同步器
|
2026-03-26 00:15:30 +08:00 |
|
|
|
3806b8021b
|
refactor(training): 将旧版 Trainer 标记为废弃,推荐使用 TrainerV2
- 在 src.training.core.trainer.Trainer 添加废弃警告
- 更新 __init__.py 导入说明,标注旧版 Trainer 为废弃
- 新增 TrainerV2 到模块导出列表(推荐使用)
- 提供清晰的迁移路径:src.training.trainer_v2.Trainer
Refs: Trainer V2 采用模块化设计,支持 FactorManager、DataPipeline、Task 策略
|
2026-03-24 23:39:46 +08:00 |
|
|
|
e41a128ca3
|
feat(training): 实现 Trainer 模块化重构 (Trainer V2)
- 新增 FactorManager 组件:统一管理多种来源因子
- 新增 DataPipeline 组件:完整数据处理流程(注册、过滤、划分、预处理)
- 新增 Task 策略组件:BaseTask 抽象基类、RegressionTask、RankTask
- 新增 ResultAnalyzer 组件:特征重要性分析和结果组装
- 新增 TrainerV2:作为纯调度引擎协调各组件
- 支持回归和排序学习两种训练模式
- 采用组合模式解耦训练流程,消除代码重复
|
2026-03-24 23:35:31 +08:00 |
|
|
|
bace4cc5f4
|
feat(data): 为数据同步添加事务支持和同步日志
- Storage/ThreadSafeStorage 添加事务支持(begin/commit/rollback)
- 新增 SyncLogManager 记录所有同步任务的执行状态
- 集成事务到 StockBasedSync、DateBasedSync、QuarterBasedSync
- 在 sync_all 和 sync_financial 调度中心添加日志记录
- 新增测试验证事务和日志功能
|
2026-03-23 21:10:15 +08:00 |
|
|
|
31b25074c3
|
test(debug): 添加因子回测一致性问题的调试测试套件
- 分析GTJA_alpha032等因子在不同LOOKBACK_DAYS下的差异来源
- 验证cs_rank嵌套和截面股票数量对结果的影响
- 测试ts_rank NaN处理和除法除零修复
|
2026-03-22 02:43:23 +08:00 |
|
|
|
ccd42082c2
|
refactor(experiment): 重构模型保存机制,支持 processors 持久化
- 模型保存路径改为 models/{model_type}/ 目录结构
- save_model_with_factors 新增 fitted_processors 参数
- 新增 load_processors 函数加载处理器状态
- Storage 查询排序优化:ORDER BY ts_code, trade_date
|
2026-03-19 21:06:11 +08:00 |
|
|
|
0a29506f45
|
feat(experiment): 新增因子排除机制并优化模型训练参数
- 添加 EXCLUDED_FACTORS 列表支持批量排除效果不佳的因子
- 修复 LightGBM 树结构冲突,调整正则化和采样策略防过拟合
- 调整数据处理器配置,关闭模型自动保存
|
2026-03-18 20:57:02 +08:00 |
|
|
|
16f82d3458
|
feat(experiment): 添加模型保存功能及因子信息持久化
- 新增 SAVE_MODEL 配置控制是否保存模型
- 新增 get_model_save_path() 生成模型保存路径
- 新增 save_model_with_factors() 保存模型及关联因子信息
- 新增 load_model_factors() 加载因子信息用于模型复现
- 更新训练脚本使用新的模型保存方式
- 清理 data/sync.py 中的废弃代码
|
2026-03-16 22:50:47 +08:00 |
|
|
|
5ed06d20d2
|
feat(factors): 添加 GTJA alpha 因子并优化计算性能
- 新增 190+ 个 GTJA alpha 因子到因子列表
- 优化 ts_kurt、ts_rank、ts_argmax/min、ts_prod 计算性能
- 性能分析器新增超时检测(180秒)和实时打印功能
- 简化探针因子选择脚本的 main 函数入口
|
2026-03-15 22:21:21 +08:00 |
|
|
|
81e89f3796
|
feat(factors/engine): 添加性能分析器支持 debug 模式
- 新增 PerformanceProfiler 组件,与 FactorEngine 解耦
- 支持上下文管理器用法,安全计时处理异常
- 为 DataRouter/ComputeEngine/FactorEngine 添加 debug 参数
|
2026-03-15 19:34:33 +08:00 |
|
|
|
7bf2699652
|
feat(factors/translator): 新增 ts_rank 和 if 函数处理器,修复类型注解
- 添加 ts_rank 滚动排名函数(计算分位排名 0-1)
- 添加 if 条件选择函数
- 为 map_batches 调用添加 return_dtype=pl.Float64 类型注解
- 修复 ts_wma 边界条件判断
|
2026-03-15 18:43:55 +08:00 |
|
|
|
f943cc98d0
|
feat(factors): 添加 cs_mean 函数并增强 max_/min_ 单参数支持
- 新增 cs_mean 截面均值函数,支持 GTJA Alpha127 等因子转换
- max_/min_ 支持单参数调用,默认使用 252 天(约 1 年)滚动窗口
|
2026-03-15 18:00:48 +08:00 |
|
|
|
c6ebab0e58
|
feat(factors): 添加时间序列函数及智能路由
- 新增 8 个国泰君安 191 兼容的时间序列函数:ts_sma, ts_wma, ts_decay_linear, ts_argmax, ts_argmin, ts_count, ts_prod, ts_sumac
- max_/min_ 函数智能路由:正整数参数自动调用 ts_max/ts_min 实现滚动窗口逻辑
|
2026-03-15 13:05:55 +08:00 |
|
|
|
0e9ea5d533
|
refactor(experiment): 提取共用配置到 common 模块
- 将因子定义、日期配置、股票池筛选等提取到 common.py
- 重构 learn_to_rank 和 regression 脚本,统一使用公共配置
- 简化代码结构,消除重复定义
|
2026-03-15 05:46:19 +08:00 |
|
|
|
6927d20de1
|
feat(training): LightGBM支持验证集早停
- 为fit方法添加eval_set参数,支持验证集评估和早停
- 因子引擎简化初始化,移除metadata_path参数
- 回归实验精简因子定义,移除冗余因子库
|
2026-03-14 22:51:24 +08:00 |
|
|
|
5541373ded
|
feat(probe-selection): 添加探针法因子筛选模块
|
2026-03-14 22:50:32 +08:00 |
|
|
|
bdf937086f
|
refactor(training): 简化 LightGBM 模型参数处理
- 重构 LightGBM 和 LambdaRank 模型,移除参数提取逻辑
- 模型类只保留 params 属性,符合 LightGBM 设计规范
|
2026-03-14 02:41:24 +08:00 |
|
|
|
ecb22b826c
|
fix(factor-engine): 修复多因子计算时数据规格字段合并的 bug
- 修复 FactorEngine.compute() 中相同表的字段未正确合并的问题
- 将简单去重改为字段集合合并,确保所有因子依赖的字段都被获取
- 解决 high_low_ratio 等需要 high/low 字段的因子计算失败问题
|
2026-03-14 02:12:20 +08:00 |
|
|
|
ca27cb297a
|
docs: 精简 README 文档结构
|
2026-03-14 01:59:45 +08:00 |
|
|
|
a22bc2d282
|
refactor(data): 移除 api_daily 模块并更新文档
- 删除 src/data/api_wrappers/api_daily.py (240行)
- 更新 6 个文档文件,将 daily 表引用替换为 pro_bar
- 同步 README.md 中的因子框架和训练模块示例
BREAKING CHANGE: api_daily 模块已移除,请使用 api_pro_bar 替代
|
2026-03-14 01:48:56 +08:00 |
|
|
|
181994f063
|
perf(factors/engine): 重构计算引擎使用 Polars 原生并行
- 移除 Python 多进程/多线程池,消除 DataFrame 序列化开销
- 采用 BFS 分层执行策略,每层表达式通过单次 with_columns 提交
- 利用 Polars Rust 引擎实现零拷贝并行计算
- 添加死锁检测机制处理依赖环
|
2026-03-14 01:24:52 +08:00 |
|
|
|
2034d60fbb
|
fix(factors): 修复 AST 优化器并发命名冲突及逻辑运算支持
- 修复 ExpressionFlattener 跨实例临时名称冲突
- 添加 & 和 | 逻辑运算符的 DSL/Parser/Translator 支持
- 增加回归测试验证修复
|
2026-03-14 01:17:14 +08:00 |
|
|
|
c8808d07eb
|
feat(factors): 实现 AST 拍平优化支持嵌套窗口函数
- 新增 ExpressionFlattener 类自动拆解嵌套窗口函数(如 cs_rank(ts_delay(close, 1)))
- 支持因子引用其他因子:engine.register("fac2", cs_rank("fac1"))
- 给 DependencyExtractor 增加 ignore_symbols 免疫名单,防止已注册因子被当作数据库字段
- 添加完整测试覆盖嵌套场景和数值一致性验证
|
2026-03-14 01:06:17 +08:00 |
|
|
|
282fe1fef5
|
docs(AGENTS): 新增AI行为准则规范
- 添加代码存放位置规则,强制代码存放于 src/ 或 tests/ 目录
- 添加 Tests 目录代码运行规则,强制使用 pytest 运行测试代码
- 更新 learn_to_rank 实验代码:调整因子列表和处理器配置
- 修复 schema_cache 表结构缓存逻辑
|
2026-03-14 00:19:03 +08:00 |
|
|
|
3f8ca2cebf
|
feat(training): 添加数据质量检查工具并重构实验脚本
- 新增 check_data_quality 函数用于检测全空/全零/全NaN数据质量问题
- 重构 register_factors 函数,消除 FEATURE_COLS 和 PROCESSORS 冗余定义
- 修复实验脚本中特征列表不一致的问题,确保处理器覆盖所有特征
- 优化 LambdaRank 模型参数配置
|
2026-03-13 22:24:12 +08:00 |
|
|
|
5b4db7a2c2
|
docs: 全面更新 AGENTS.md 文档
|
2026-03-12 23:01:29 +08:00 |
|
|
|
4fe29b805f
|
feat(scripts): 添加因子批量注册脚本
- 新增 register_factors.py,支持通过 name/desc/dsl 自动注册因子
- 自动生成 F_XXX 格式 factor_id
- 默认保存到 src/experiment/data/factors.jsonl
|
2026-03-12 22:39:01 +08:00 |
|
|
|
ced7a929c3
|
refactor(factors): 简化 add_factor API 并默认启用 metadata
- 合并 add_factor_by_name 到 add_factor,支持三种调用方式
- FactorManager 构造函数改为可选参数,使用默认路径
- FactorEngine 默认启用 metadata,无需手动配置路径
|
2026-03-12 22:34:25 +08:00 |
|
|
|
2bb7718dd1
|
feat(factors): 集成 metadata 模块,支持按名称注册因子
- 新增 add_factor_by_name() 方法,从 metadata 查询 DSL 表达式并注册
- FactorEngine 支持可选的 metadata_path 参数初始化
- 将 regression.ipynb 和 learn_to_rank.ipynb 转换为 Python 脚本
- 新增 test_factor_engine_metadata.py 测试文件
|
2026-03-11 22:54:52 +08:00 |
|
|
|
038f5f1722
|
feat(factors): 实现因子元数据管理模块
- 新增 FactorManager 类,支持 JSONL 文件读写和 DuckDB SQL 查询
- 实现零拷贝输出 Polars DataFrame,与现有因子引擎无缝集成
- 添加字段校验器(FactorValidator)和完整的异常处理机制
- 包含 49 个示例因子数据(趋势、波动率、量价、基本面等类别)
- 更新 src/factors/__init__.py 导出元数据管理组件
|
2026-03-11 22:03:16 +08:00 |
|
|
|
e8ac9d8662
|
feat(data): 添加 DuckDB 只读模式支持
- Storage 类默认使用 read_only=True 模式,允许多进程并发读取
- ThreadSafeStorage 自动使用 read_only=False 模式,用于数据同步写入
- catalog.query_duckdb_to_polars 函数使用只读连接
|
2026-03-11 21:33:08 +08:00 |
|
|
|
f3b3560d26
|
fix(factors/engine): 修复列选择时基础列重复的问题
|
2026-03-11 00:12:05 +08:00 |
|
|
|
e6c3a918c7
|
feat(training): 添加 LightGBM LambdaRank 排序学习功能
新增基于 LambdaRank 的排序学习模型,用于股票排序预测任务:
- 实现 LightGBMLambdaRankModel 模型类,支持分位数标签转换
- 提供完整的训练流程和 NDCG 评估指标
- 添加实验 Notebook 演示排序学习全流程
|
2026-03-10 22:23:44 +08:00 |
|
|
|
f1811815e7
|
fix(factors): 修复 ts_corr/ts_cov 实现并添加 abs 函数支持
- 修复 ts_corr 和 ts_cov 使用 pl.rolling_corr/pl.rolling_cov 模块级函数
- 添加 abs 函数处理器到 translator
- 扩展 notebook 中的因子定义(24 -> 49 个)
- 更新 AGENTS.md 文档结构和 Training 模块说明
|
2026-03-09 23:37:20 +08:00 |
|
|
|
88fa848b96
|
refactor(training): 重构股票池管理 API 并更新训练流程
- 移除 StockFilterConfig/MarketCapSelectorConfig,改用 StockPoolManager + filter_func
- Trainer 支持 train/val/test 三分法划分
- 更新 regression.ipynb 适配新 API
- 删除已弃用的 test_selectors.py,后续补充 StockPoolManager 测试
|
2026-03-09 22:33:41 +08:00 |
|
|
|
a464ef70c0
|
feat(data): 新增财务指标和涨跌停数据接口
- 财务指标: fina_indicator_vip 封装,166 字段,季度同步
- 涨跌停价格: stk_limit 封装,日频数据同步
- 配套单元测试和调度中心集成
|
2026-03-08 23:14:18 +08:00 |
|
|
|
505279c08b
|
fix(data): 修复财务因子计算非确定性问题
重构 financial_loader 的去重逻辑,确保截面排名计算的股票集合一致:
- 引入"高水位线"算法剔除陈旧历史财报(解决2026年发布2021年财报的问题)
- 改变去重策略:按报告期(end_date)而非更新标识(update_flag)保留最新数据
- 扩展回看期从1年到2年,防止ST/停牌公司财报缺失
- 确保相同交易日在不同查询范围下返回一致的财务数据
|
2026-03-08 20:58:35 +08:00 |
|
|
|
3c7795f630
|
feat: 新增多项技术指标和成交量因子定义
|
2026-03-08 14:12:03 +08:00 |
|