|
|
ecb22b826c
|
fix(factor-engine): 修复多因子计算时数据规格字段合并的 bug
- 修复 FactorEngine.compute() 中相同表的字段未正确合并的问题
- 将简单去重改为字段集合合并,确保所有因子依赖的字段都被获取
- 解决 high_low_ratio 等需要 high/low 字段的因子计算失败问题
|
2026-03-14 02:12:20 +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 |
|
|
|
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 |
|
|
|
f3b3560d26
|
fix(factors/engine): 修复列选择时基础列重复的问题
|
2026-03-11 00:12:05 +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 |
|
|
|
1520c2a51e
|
feat(factors): 新增 Phase 1-2 数学和统计因子函数
- 新增 atan, log1p 数学函数
- 新增 ts_var, ts_skew, ts_kurt, ts_pct_change, ts_ema 统计函数
- 新增 ts_atr, ts_rsi, ts_obv TA-Lib 技术指标函数
- 新增完整集成测试覆盖所有新函数
|
2026-03-07 01:03:49 +08:00 |
|
|
|
62a4635a71
|
feat: 新增因子装饰器系统和完整因子文档
- 添加因子表达式文档,收录180+个因子及数学表达式
- 添加因子实现分析报告,明确ts_*与cs_*算子分类
- 实现装饰器系统:@time_series/@cross_section/@element_wise
- 优化API和翻译器以支持新架构
|
2026-03-06 23:59:39 +08:00 |
|
|
|
3b42093100
|
feat(data): 财务数据加载与清洗模块
新增 FinancialLoader 类,提供:
- 财务数据加载与清洗(保留合并报表,按 update_flag 去重)
- 支持 as-of join 拼接行情数据(无未来函数)
- 自动识别财务表并配置 asof_backward 拼接模式
|
2026-03-04 23:35:20 +08:00 |
|
|
|
f1687dadf3
|
feat: 因子引擎字段验证改进、股票池过滤修复及实验模块增强
1. 因子引擎字段验证改进
- 新增 SchemaCache.get_all_fields() 方法,返回所有可用字段集合
- 修改 match_fields_to_tables(),对不存在的字段抛出明确错误
- 错误信息包含可用字段列表提示,帮助用户检查拼写
2. 股票池过滤修复
- 修复北交所股票排除逻辑:将识别方式从代码前缀(8/4开头)改为.BJ后缀
- 更新文档注释,明确北交所股票识别规则
3. 实验模块增强
- 新增 regression.py 实现回归实验逻辑
- 新增 output/ 目录存放实验输出结果
|
2026-03-03 23:51:08 +08:00 |
|
|
|
12ddb19b2e
|
feat(factors): 添加 SchemaCache 实现数据库表结构自动扫描
|
2026-03-03 17:32:58 +08:00 |
|
|
|
53225b9443
|
feat(data): 添加每日指标接口并优化因子引擎
- 新增 api_daily_basic.py 封装 Tushare 每日指标接口
- 因子引擎移除 lookback_days,支持 daily_basic 表字段路由
- 将每日指标纳入自动同步流程
- 删除废弃的 training/main.py
|
2026-03-03 17:09:39 +08:00 |
|
|
|
05d0c90312
|
feat(factors): 新增公式解析基础组件
新增公式解析相关模块,支持将字符串表达式解析为 DSL 节点树:
- exceptions.py: 定义公式解析异常体系
- FormulaParseError 基类,提供位置指示的错误信息
- UnknownFunctionError 支持模糊匹配建议
- InvalidSyntaxError、EmptyExpressionError 等具体异常
- parser.py: 基于 Python ast 的公式解析器
- 支持符号引用、数值常量、二元/一元运算
- 支持函数调用和比较运算
- 常量折叠优化
- registry.py: 函数注册表
- 支持动态注册和查询公式函数
- 提供可用函数列表和重复注册检查
|
2026-03-03 00:04:48 +08:00 |
|
|
|
77e4e94e05
|
refactor(factors): 拆分 engine.py 为模块化包
将单文件 engine.py (1064行) 拆分为 engine/ 包:
- 数据规格、路由器、计划器、计算引擎、因子引擎分离
- 保持向后兼容,API 无变化
|
2026-03-02 22:29:18 +08:00 |
|
|
|
1c0c4a0de1
|
fix(factors): 修复 cs_rank 等截面函数在依赖表达式时输出全 null 的问题
|
2026-03-02 22:21:43 +08:00 |
|
|
|
9b826c1845
|
feat(factors): 基础行情字段默认从 pro_bar 表获取
- 修改 Symbol 名称与数据库字段对齐:volume->vol, pct_change->pct_chg
- 修改 ExecutionPlanner._infer_data_specs,将基础行情字段路由到 pro_bar 表
- 支持的基础字段:open, high, low, close, vol, amount, pre_close, change, pct_chg 等
|
2026-03-02 20:59:36 +08:00 |
|
|
|
1a6fc2eeba
|
feat(engine): 实现 DataRouter 数据库连接功能
|
2026-03-02 20:47:01 +08:00 |
|
|
|
b461a4940d
|
refactor(factor): 完成因子框架 DSL 化重构
- 重构 FactorEngine 实现完整的 DSL 表达式执行链路
- 新增 DataRouter 数据路由器,支持内存模式和核心宽表组装
- 新增 ExecutionPlanner 执行计划生成器,整合编译器和翻译器
- 新增 ComputeEngine 计算引擎,支持并行运算
- 完善 factors/__init__.py 公开 API 导出
- 新增 test_factor_engine.py 引擎单元测试
- 移除旧引擎实现和废弃的 DSL promotion 测试
- 更新 AGENTS.md 添加 v2.2 架构变更历史和 Factors 框架设计说明
|
2026-03-01 15:03:56 +08:00 |
|
|
|
0698b9d919
|
feat: 添加DSL因子表达式系统和Pro Bar API封装
- 新增 factors/dsl.py: 纯Python DSL表达式层,通过运算符重载实现因子组合
- 新增 factors/api.py: 提供常用因子符号(close/open/high/low)和时序函数(ts_mean/ts_std/cs_rank等)
- 新增 factors/compiler.py: 因子编译器
- 新增 factors/translator.py: DSL表达式翻译器
- 新增 data/api_wrappers/api_pro_bar.py: Tushare Pro Bar API封装,支持后复权行情数据
- 新增 data/data_router.py: 数据路由功能
- 新增相关测试用例
|
2026-02-27 22:43:45 +08:00 |
|
|
|
a56433e440
|
refactor(factor): 完全重构因子计算框架 - 引入DSL表达式系统
- 删除旧因子框架:移除 base.py、composite.py、data_loader.py、data_spec.py
及所有子模块(momentum、financial、quality、sentiment等)
- 新增DSL表达式系统:实现 factor DSL 编译器和翻译器
- dsl.py: 领域特定语言定义
- compiler.py: AST编译与优化
- translator.py: Polars表达式翻译
- api.py: 统一API接口
- 新增数据路由层:data_router.py 实现字段到表的动态路由
- 新增API封装:api_pro_bar.py 提供pro_bar数据接口
- 更新执行引擎:engine.py 适配新的DSL架构
- 重构测试体系:删除旧测试,新增 test_dsl_promotion.py、
test_factor_integration.py、test_pro_bar.py
- 清理文档:删除8个过时文档(factor_design、db_sync_guide等)
|
2026-02-27 22:22:23 +08:00 |
|
|
|
a9e4746239
|
refactor: 代码审查修复 - 日期过滤、性能优化、数据泄露防护
- 修复 data_loader.py 财务数据日期过滤,支持按范围加载
- 优化 MADClipper 使用窗口函数替代 join,提升性能
- 修复训练日期边界问题,添加1天间隔避免数据泄露
- 新增 .gitignore 规则忽略训练输出目录
|
2026-02-25 21:11:19 +08:00 |
|
|
|
593ec99466
|
refactor: 存储层迁移DuckDB + 模块重构
- 存储层重构: HDF5 → DuckDB(UPSERT模式、线程安全存储)
- Sync类迁移: DataSync从sync.py迁移到api_daily.py(职责分离)
- 模型模块重构: src/models → src/pipeline(更清晰的命名)
- 新增因子模块: factors/momentum (MA、收益率排名)、factors/financial
- 新增API接口: api_namechange、api_bak_basic
- 新增训练入口: training模块(main.py、pipeline配置)
- 工具函数统一: get_today_date等移至utils.py
- 文档更新: AGENTS.md添加架构变更历史
|
2026-02-23 16:23:53 +08:00 |
|
|
|
e58b39970c
|
feat: HDF5迁移至DuckDB存储
- 新增DuckDB Storage与ThreadSafeStorage实现
- 新增db_manager模块支持增量同步策略
- DataLoader与Sync模块适配DuckDB
- 补充迁移相关文档与测试
- 修复README文档链接
|
2026-02-23 00:07:21 +08:00 |
|
|
|
0a16129548
|
feat(factors): 添加因子计算框架
- 新增因子基类 (BaseFactor, CrossSectionalFactor, TimeSeriesFactor)
- 新增数据规格和上下文类 (DataSpec, FactorContext, FactorData)
- 新增数据加载器 (DataLoader) 和执行引擎 (FactorEngine)
- 新增组合因子支持 (CompositeFactor, ScalarFactor)
- 添加因子模块完整测试用例
- 添加 Git 提交规范文档
|
2026-02-22 14:41:32 +08:00 |
|