|
|
36e0e4b234
|
feat(training): 新增财务数据因子并修复多表 join 冲突
- 添加 9 个财务数据因子(利润表/资产负债表/现金流量表)
- 修复多表 asof join 时 f_ann_date_right 列名重复错误
- 将 Top5 改为可配置的 TopN 参数
- 删除已弃用的 regression.py 脚本
|
2026-03-08 11:46:30 +08:00 |
|
|
|
eb76cbbd52
|
feat(financial): 实现资产负债表和现金流量表同步接口
- 新增 BalanceQuarterSync 类,封装 balancesheet_vip 接口(157个字段)
- 新增 CashflowQuarterSync 类,封装 cashflow_vip 接口(95个字段)
- 在财务数据调度中心注册资产负债表和现金流量表
- 更新规范文档,标记接口为已实现
|
2026-03-08 10:57:39 +08:00 |
|
|
|
0aec87281e
|
docs: 完善财务数据 API 规范文档
- 更新 FINANCIAL_API_SPEC.md,添加首次同步优化策略
- 添加日期格式转换规范(YYYYMMDD → YYYY-MM-DD)
- 补充存储层 UPSERT 禁用说明和删除计数处理
- 扩充常见问题(Q7-Q9)
- 完善 financial_api.md,补充资产负债表接口完整文档和报表类型说明
Closes: 文档更新 v1.1
|
2026-03-08 01:16:25 +08:00 |
|
|
|
592126c376
|
feat(training): 实现 train/val/test 三分法并添加训练指标可视化
- DateSplitter 支持三分法划分,修复 test 数据泄露问题
- 添加训练指标曲线绘制和100轮早停
|
2026-03-08 01:09:47 +08:00 |
|
|
|
85044a74c6
|
refactor(financial-sync): 重构财务数据同步架构
- 新增 base_financial_sync.py 基础同步抽象类
- 重构 api_financial_sync.py 简化调度逻辑
- 重命名 IncomeSync 为 IncomeQuarterSync 继承新基础类
- 增强 storage.py 支持 use_upsert 参数
- 更新 __init__.py 导出符号
|
2026-03-08 00:30:04 +08:00 |
|
|
|
c01bf76a3d
|
docs: 添加财务数据同步模块重构相关文档
- 添加财务数据 API 封装规范文档 (FINANCIAL_API_SPEC.md)
包含架构设计原则、类设计规范、同步策略、数据差异检测等
- 添加 n_income 因子生命周期分析文档
详细追踪因子从定义到训练的全流程
- 添加财务数据同步模块重构计划文档
明确 QuarterBasedSync 基类设计、重构任务清单
这些文档为后续财务数据同步模块重构提供完整的设计依据和实施方案
|
2026-03-07 22:14:04 +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 |
|
|
|
8b85a02003
|
feat: 添加 LightGBM 回归训练示例 Notebook
|
2026-03-06 20:57:27 +08:00 |
|
|
|
555cb00276
|
fix: 修正回归训练中的未来收益率计算公式
- 修复 Label 公式从过去收益率改为未来收益率
|
2026-03-06 20:56:24 +08:00 |
|
|
|
7b935b0fa3
|
feat(training): 添加缺失值填充处理器 NullFiller
新增 NullFiller 处理器,支持 zero/mean/median/value 填充策略,
支持全局统计量或按日期截面填充。在回归训练流程中添加 NullFiller。
|
2026-03-05 21:57:34 +08:00 |
|
|
|
aefe6d06cf
|
refactor(sync): 引入 SyncRegistry 注册表模式管理同步任务
- 新增 sync_registry.py 模块,提供统一的同步任务注册和管理机制
- 在 api_wrappers/__init__.py 中实现自动注册逻辑,新增接口无需修改 sync.py
- 重构 sync_all_data() 函数,使用注册表模式替代手动罗列,代码从 400+ 行精简至 293 行
- 新增 selected 参数,支持选择性执行特定同步任务
- 新增 list_sync_tasks() 函数,方便查看所有已注册任务
|
2026-03-05 21:11:18 +08:00 |
|
|
|
5a1f278df8
|
refactor: 优化回归实验配置和模型参数
- 将因子定义、模型参数、日期配置提取为模块级常量
- 优化 LightGBM 参数(降低过拟合风险)
- LightGBMModel 支持 params 字典参数传入
- 修复 StockFilter 创业板排除逻辑(支持 301xxx)
- 添加 experiment/output 到 .gitignore
|
2026-03-05 00:38:20 +08:00 |
|
|
|
3b42093100
|
feat(data): 财务数据加载与清洗模块
新增 FinancialLoader 类,提供:
- 财务数据加载与清洗(保留合并报表,按 update_flag 去重)
- 支持 as-of join 拼接行情数据(无未来函数)
- 自动识别财务表并配置 asof_backward 拼接模式
|
2026-03-04 23:35:20 +08:00 |
|
|
|
620696c842
|
refactor: rename src/data/data_router.py to catalog.py
|
2026-03-04 22:09:53 +08:00 |
|
|
|
af5c96cd53
|
feat(training): 添加数据过滤器支持及 ST 股票过滤
- 新增 filters.py 模块,实现 BaseFilter 抽象类和 STFilter 过滤器
- 在 Trainer 中支持 filters 参数,可在股票池筛选之前执行数据过滤
- 更新 training/__init__.py 导出 BaseFilter 和 STFilter
- 在 regression.py 中集成 STFilter,用于过滤 ST 股票
|
2026-03-04 21:14:39 +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 |
|
|
|
192718095f
|
feat(training): 实现训练模块核心组件(commits 6-9)
- StockPoolManager:每日独立筛选股票池,支持代码过滤和市值选择
- Trainer:整合训练完整流程,支持 processor 分阶段行为和模型持久化
- TrainingConfig:pydantic 配置管理,含必填字段和日期验证
- experiment 模块:预留结构
- 从计划中移除 metrics 组件
- 调整 commit 序号(7-10 → 6-9)
- 更新 training/__init__.py 导出所有公开 API
|
2026-03-03 22:57:01 +08:00 |
|
|
|
f35a6a76a6
|
feat(training): 实现 LightGBM 模型
- 新增 LightGBMModel:LightGBM 回归模型实现
- 支持自定义参数(objective, num_leaves, learning_rate, n_estimators 等)
- 使用 LightGBM 原生格式保存/加载模型(不依赖 pickle)
- 支持特征重要性提取
- 已注册到 ModelRegistry(@register_model("lightgbm"))
|
2026-03-03 22:30:37 +08:00 |
|
|
|
9ca1deae56
|
feat(training): 实现数据处理器
- 新增 StandardScaler:全局标准化,训练集学习参数,测试集复用
- 新增 CrossSectionalStandardScaler:截面标准化,每天独立计算
- 新增 Winsorizer:支持全局/截面两种缩尾模式
- 处理器统一遵循 fit/transform 接口,Trainer 可无差别调用
- 添加 17 个单元测试覆盖各种场景
|
2026-03-03 22:23:43 +08:00 |
|
|
|
6b63c428d9
|
feat(training): 实现股票池选择器配置
- 新增 StockFilterConfig:支持按代码前缀过滤创业板/科创板/北交所
- 新增 MarketCapSelectorConfig:配置市值选择参数(数量、排序、列名)
- 添加参数验证(n>0, 列名非空)
- 在 components 模块导出配置类
- 添加 15 个单元测试覆盖各种场景
|
2026-03-03 22:10:36 +08:00 |
|
|
|
f48b307ad2
|
feat(training): 实现 DateSplitter 数据划分器
- 新增 DateSplitter 类,支持基于日期范围的一次性训练/测试划分
- 实现日期格式验证和日期范围逻辑检查
- 支持自定义日期列名参数
- 添加完整的单元测试(12个测试用例)
- 在 components 模块导出 DateSplitter
|
2026-03-03 22:07:45 +08:00 |
|
|
|
317ecd87e7
|
feat(data): 封装ST股票列表接口(stock_st)
- 新增 api_stock_st.py,实现ST股票数据获取和日期遍历同步
- 更新 sync.py,将ST股票同步加入第7步流程
- 移除 base_sync.py 中未使用的 get_last_n_trading_days 导入
|
2026-03-03 22:04:22 +08:00 |
|
|
|
472b2b665a
|
feat(training): 添加训练模块基础架构
实现 Commit 1:训练模块基础架构
新增文件:
- src/training/__init__.py - 主模块导出
- src/training/components/__init__.py - components 子模块导出
- src/training/components/base.py - BaseModel/BaseProcessor 抽象基类
- src/training/registry.py - 模型和处理器注册中心
- tests/training/test_base.py - 基础架构单元测试
功能特性:
- BaseModel: 提供 fit, predict, feature_importance, save/load 接口
- BaseProcessor: 提供 fit, transform, fit_transform 接口
- ModelRegistry/ProcessorRegistry: 支持装饰器风格组件注册
- 支持即插即用的组件扩展机制
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-03-03 21:55:39 +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 |
|
|
|
780284af7f
|
feat(test): 添加两支股票因子字符串计算测试
测试基于 Formula Parser + DSL 的字符串因子表达式计算,
包含 return_5、ma5、ma10 等因子及截面排名验证
|
2026-03-03 00:15:16 +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 |
|
|
|
e8158a8d59
|
fix(api_pro_bar): 使用 Tushare 原始字段名
删除 turnover_rate/volume_ratio 到 tor/vr 的不必要重命名,
直接使用 Tushare API 返回的原始字段名。
|
2026-03-02 01:05:15 +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 |
|
|
|
84479ee9ff
|
refactor: 将表结构定义从 storage 迁移到各 API 文件
- 移除 storage.py 集中式建表逻辑,改为各 API 文件自管理
- base_sync.py 新增 ensure_table_exists() 和表探测机制
- api_daily/api_pro_bar/api_bak_basic 添加 TABLE_SCHEMA 定义
- api_financial_sync 添加完整利润表字段定义
- sync.py 更新职责文档,明确仅同步每日更新数据
- AGENTS.md 添加 v2.1 架构变更历史和 AI 行为准则
|
2026-03-01 01:24:39 +08:00 |
|
|
|
484bcd0ab7
|
refactor: 提取数据同步逻辑为抽象基类
新增 base_sync.py 模块,提供三层抽象结构统一数据同步流程:
- BaseDataSync: 所有同步类型的基础抽象(客户端、股票代码获取、交易日历)
- StockBasedSync: 按股票同步抽象类(适用于 daily, pro_bar)
- DateBasedSync: 按日期同步抽象类(适用于 bak_basic)
|
2026-02-27 23:34:12 +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 |
|
|
|
c3c20ed7ea
|
refactor(factor): 计划重构factor模块
|
2026-02-26 20:38:26 +08:00 |
|
|
|
51578e9af8
|
refactor(factor): 计划重构factor模块
|
2026-02-26 20:23:25 +08:00 |
|
|
|
990a77ec6c
|
refactor(training): 重构训练管道,支持灵活因子配置
- 添加 FactorConfig 类,支持链式 API 和动态因子列表
- 重构 prepare_data 使用 FactorEngine 计算因子,确保防泄露机制生效
- 新增 prepare_data_and_train / train_and_predict 分步执行接口
- 修复 factors/__init__.py docstring 语法错误
|
2026-02-25 23:39:02 +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 |
|
|
|
9f95be56a0
|
feat(models): 实现机器学习模型训练框架
- 添加核心抽象:Processor、Model、Splitter、Metric 基类
- 实现阶段感知机制(TRAIN/TEST/ALL),防止数据泄露
- 内置 8 个数据处理器和 3 种时序划分策略
- 支持 LightGBM、CatBoost 模型
- PluginRegistry 装饰器注册,插件式架构
- 22 个单元测试
|
2026-02-23 01:37:34 +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 |
|
|
|
9965ce5706
|
refactor: 重构 API 接口模块,整合为 api_wrappers 目录结构
- 将独立 API 模块 (daily, stock_basic, trade_cal) 整合至 api_wrappers/
- 重写 sync.py 使用新的 wrapper 结构,支持更多同步功能
- 更新测试文件适配新的模块结构
- 添加 pytest.ini 配置文件
|
2026-02-21 03:43:30 +08:00 |
|
|
|
e81d39ae0d
|
chore: 添加 .opencode 到 gitignore
|
2026-02-01 23:50:17 +08:00 |
|
|
|
8fc88b60e3
|
docs: 添加 Tushare API 接口规范文档
|
2026-02-01 23:50:03 +08:00 |
|
|
|
05228ce9de
|
refactor: 调整项目结构,新增数据同步和交易日历模块
- 移除 pyproject.toml,改用 uv 管理项目
- 新增 data/* 忽略规则
- 新增数据同步模块 sync.py
- 新增交易日历模块 trade_cal.py
- 新增相关测试用例
- 更新 API 文档
|
2026-02-01 04:44:01 +08:00 |
|