|
|
c098631487
|
feat(factorminer): 新增 LocalFactorEvaluator 集成到评估管线
- 新增 LocalFactorEvaluator 类封装 FactorEngine,提供 (M,T) 矩阵输出
- evaluate_factors_with_evaluator() 支持新评估方式
- ValidationPipeline 优先使用 evaluator 计算信号
- 新增测试文件验证功能
|
2026-04-09 00:46:39 +08:00 |
|
|
|
dd2e8a4a8e
|
refactor(factorminer): 将 LLM Prompt 和解析器改造为直接输出本地 DSL
- DSL 规范改为 snake_case、中缀运算符,示例同步替换
- 移除 ExpressionTree 依赖,改为括号匹配等基础校验
- retry prompt 适配本地 DSL 规则
|
2026-04-08 22:27:33 +08:00 |
|
|
|
65500cce27
|
refactor(factorminer): 禁用 npz 信号缓存并将库 I/O 对接本地 DSL
- 为 Factor 数据类新增 metadata 字段,用于标记未实现算子(unsupported)
- save_library 废弃 save_signals 参数,内部强制忽略,仅持久化 JSON 元数据,不再写入 .npz
- load_library 删除 .npz 恢复逻辑;加载时自动将 # TODO 公式的 unsupported 标记设为 True
- import_from_paper() 直接基于已本地化的 PAPER_FACTORS 构建库,并同步标记 TODO 公式
- 新增 tests/test_factorminer_library_io.py,覆盖序列化、加载及 paper factors 导入
|
2026-04-08 22:10:17 +08:00 |
|
|
|
d71f723602
|
refactor(factorminer): 将 110 个 PAPER_FACTORS 迁移到本地 snake_case DSL
- 新增一次性翻译脚本 src/scripts/translate_paper_factors.py
- 将 library_io.PAPER_FACTORS 中的 CamelCase DSL 公式替换为本地 DSL
- 对使用未实现算子(Decay、TsLinRegSlope、TsLinRegResid、Resid、
Quantile、HMA、DEMA)的 16 个因子注释为 # TODO
- 新增 test_factorminer_paper_factors.py 验证所有翻译后公式的 DSL 解析
- 更新整合计划中 step1 的状态
|
2026-04-08 22:03:52 +08:00 |
|
|
|
eadae6a34c
|
refactor(factorminer): 统一导入路径为 src.factorminer
- 将 70+ 个文件中的 `from factorminer.*` 和 `import factorminer.*`
替换为 `src.factorminer.*`
- 新增 `src/factorminer/__init__.py`,统一导出 core、data、agent、
evaluation、operators、memory 等子模块的公共 API
- 修复 cli、benchmark、tests 中的功能性包名字符串引用
|
2026-04-07 23:00:26 +08:00 |
|
|
|
e5e636d6cd
|
refactor(factorminer): 统一模块引用路径并移除独立包配置
- 删除无用文件
- 新增本地框架整合实施计划文档
|
2026-04-07 22:49:33 +08:00 |
|
|
|
a51701e2da
|
refactor(factorminer): 统一模块引用路径并移除独立包配置
- 批量替换 60+ 个文件中的 factorminer 导入为 src.factorminer.factorminer.*
- 删除子项目独立的 .gitignore、pyproject.toml、uv.lock
- 新增本地框架整合实施计划文档
|
2026-04-07 22:19:02 +08:00 |
|
|
|
dadf8da145
|
feat: 引入 FactorMiner 开源量化因子挖掘项目
|
2026-04-07 20:41:10 +08:00 |
|
|
|
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 |
|