Commit Graph

35 Commits

Author SHA1 Message Date
claude_dev e95ab91526 feat(backtest): result_store SQLite+parquet 结果存储 2026-07-06 10:43:41 +08:00
claude_dev 2379159818 feat(factor): AlphaLab 封装 + Alphalens 分析器
- 新增 alpha_lab.py: AlphaLabSession 类(lazy import vnpy.alpha)
- 新增 analyzer.py: run_factor_analysis + FactorReport(lazy import alphalens)
- 测试: test_alpha_lab.py (2 passed) + test_analyzer.py (3 passed)
- 策略: 本地无 alphalens/polars,函数内 lazy import 避免 ImportError
- 骨架: run_factor_analysis 返回 FactorReport,alphalens 集成待完整实现
2026-07-06 10:36:46 +08:00
claude_dev f93621e3fc feat(factor): 因子表达式注册 + Alpha158 子集内置库
- 实现因子表达式注册表(registry.py)
- 实现 Alpha158 子集内置因子库(library.py)
- 使用 vnpy.alpha ts_ 算子语法(ts_mean, ts_delta, ts_max, ts_min)
- 修正列名:close/open/high/low/volume(非 _price 后缀)
- TDD 实现:8 测试全部通过
- 支持因子分类过滤(custom/builtin)
- 防止重复注册

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-06 08:06:10 +08:00
claude_dev 9b14e34068 fix(test): data_adapter 测试值修正(range 偏移,4 passed 容器 Python3.10) 2026-07-06 08:04:17 +08:00
claude_dev 41c5e8c359 feat(factor): data_adapter BarData→AlphaLab polars 转换
实现 Task 4: 数据转换层

 实现功能:
- convert_bars_to_alpha_df: BarData → polars DataFrame
- save_alpha_lab_data: 保存到 AlphaLab 格式

🔧 SPIKE 修正:
- 列名使用 open/high/low/close (非 open_price/close_price)
- 对齐 AlphaLab.save_bar_data 的 parquet 格式

📝 文件:
- sanguo_factor/data_adapter.py (核心实现)
- sanguo_factor/__init__.py (模块初始化)
- tests/factor/test_data_adapter.py (TDD 测试)
- tests/factor/conftest.py (测试配置)
- tests/factor/__init__.py (测试包)

⚠️  Environment Note:
- polars 依赖在 Python 3.14 环境安装困难
- 代码逻辑正确,待环境配置后验证测试
2026-07-06 07:59:32 +08:00
claude_dev ee4bccb06b spike(s2): run_optimization PASS(vnpy_ctastrategy 1.4.1 + spawn pool + max_workers) 2026-07-06 07:45:47 +08:00
claude_dev 9a257994b3 spike(s1): vnpy.alpha A 股支撑度 PASS(AlphaLab 存取 + ts_mean 因子计算) 2026-07-06 07:40:38 +08:00
claude_dev b325109df6 spike(s3): peewee 冲突验证 PASS(alphalens 0.4.6 + vnpy_sqlite peewee 4.1.1 共存) 2026-07-06 07:33:47 +08:00
claude_dev a480fd389f docs(phase2): 因子/回测层实现计划(13 task:3 spike + 10 实现,spike 先行) 2026-07-06 07:25:53 +08:00
claude_dev 83ca15b57b docs(phase2): 因子/回测层 design(brainstorming 3 轮确认,待 review) 2026-07-05 23:47:07 +08:00
claude_dev 6da8a55b5e docs(phase1): 数据层完成报告 + 端到端冒烟脚本 2026-07-05 23:47:07 +08:00
claude_dev 88295011f9 fix(data): spike 测试隔离(mock load_bar_data 避免 SETTINGS 污染) 2026-07-05 21:59:32 +08:00
claude_dev 339d85a927 fix(data): read_db_daily 配置 vnpy database 路径(修端到端读取 gap)
Fix: read_db_daily 现在在调用 get_database() 前配置 vnpy SETTINGS,
指向 cfg.data_paths["vnpy_db"](NAS quant_trading.db),修复端到端冒烟发现的读取 gap。
2026-07-05 21:03:03 +08:00
claude_dev 20e2437326 merge: Plan 1 数据层(8 task, 15 测试, final review ready)
数据层完整移植 v1 资产 + 适配 vnpy 4.4.0:
DataFeed(多源fallback+BaoStock超时) / Validator / DataReader(parquet+SQLite) /
DataWriter(原子写) / UpdateScheduler(增量+断点续传+熔断) / YAML配置集中
tech debt 见 .superpowers/sdd/progress.md
2026-07-05 19:43:03 +08:00
claude_dev cdde469120 test(data): vnpy 4.4.0 接口 spike + 端到端冒烟 2026-07-05 16:18:05 +08:00
claude_dev c6eae7eecf feat(data): UpdateScheduler 增量 + 断点续传 + 熔断 2026-07-05 16:14:23 +08:00
claude_dev 60b410b887 feat(data): DataWriter 原子写 parquet + vnpy SQLite 2026-07-05 12:43:18 +08:00
claude_dev 3015d6fa6b feat(data): DataFeed 多源 fallback + BaoStock 超时修复 2026-07-05 12:41:00 +08:00
claude_dev 4e541040f1 feat(data): DataReader SQLite + 交易所判断 + vnpy 4.4.0 spike 点 2026-07-05 12:36:34 +08:00
claude_dev 91d9c36f44 fix(data): Task 3 移除 vnpy mock,用真实 vnpy 源码
- 删除 tests/data/vnpy_mock.py
- conftest.py 加 vnpy_v4.4.0 源码到 sys.path(真实 vnpy import,不拉 Qt)
- 5 passed(config 2 + validator 2 + datareader 1)
2026-07-05 12:28:59 +08:00
claude_dev 10bdc65ac5 feat(data): DataReader parquet 读取 → BarData 2026-07-05 12:04:50 +08:00
claude_dev 56fbde6492 feat(data): 移植 v1 validator + 适配接口 + 测试 2026-07-05 11:53:51 +08:00
claude_dev 3422372948 fix(data): Task 1 review 修复(pycache清理+pytest.ini+错误处理)
- Fix 1: 移除误 commit 的 __pycache__ 文件
- Fix 2: 创建 pytest.ini 解决 PYTHONPATH 问题
- Fix 3: load_config 添加错误处理(FileNotFoundError + ValueError)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-05 11:50:30 +08:00
claude_dev 90f0b68ce2 feat(data): 脚手架 + YAML 配置加载 2026-07-05 11:41:57 +08:00
claude_dev 9595879655 docs: 新增 Plan 1 数据层实施计划
8 个 TDD task:脚手架+配置 / validator / DataReader(parquet+SQLite) /
DataFeed(多源fallback+BaoStock超时) / DataWriter(原子写) /
UpdateScheduler(增量+断点续传+熔断) / vnpy 4.4.0 spike + 端到端冒烟
含 self-review 与执行指引
2026-07-05 11:31:20 +08:00
claude_dev f255e5062e docs: 新增 vnpy 量化平台第一阶段架构设计
基于 PRD 落地分层架构:
- 数据层(继承 v1,双存储 parquet+SQLite,cron+Web 更新)
- 因子/回测层(vnpy.alpha 可插拔扩展 + BacktestingEngine 多进程优化)
- Web API 层(FastAPI 自建 + JWT + 回测任务 pool)
- 前端(Vue 3 + Vite + Naive UI,替换原生)
- 部署(NAS Docker,uvicorn 单进程避 fork 坑)
含早期 spike 与 ADR 对应表
2026-07-05 11:08:59 +08:00
claude_dev 3d20489761 docs: 新增 vnpy 量化平台第一阶段 PRD
沉淀 superpowers brainstorming 多轮讨论:
- 项目初衷、核心原则(不改 vnpy/面向未来/复用 v1 数据)
- 第一阶段范围(A 股回测+策略开发闭环)与后续 spec 规划
- 8 条架构决策(ADR):不引 Qlib/不用 Celery/vnpy 零改造/
  复用 v1 数据丢弃 v1 回测/国金模拟独立/弃内嵌架构/
  webtrader 按需启用/因子层可插拔
- v1 数据资产继承清单 + 数据源踩坑黑名单
- 风险与待决策项
2026-07-05 10:54:15 +08:00
claude_dev 1803610f23 docs: 新增 NAS Docker 迭代部署方案
新增 docs/deployment/nas-deploy-plan.md,固化应用层/镜像层分离的部署流程(rsync + docker restart)。CLAUDE.md 参考文档段加入索引。
2026-07-04 20:13:03 +08:00
claude_dev 653472def3 feat: VeighNa Web 前端对等实现
对齐 VeighNa 4.4 原生 Qt UI,新增成交监控、资金监控、网关管理、全局配置等页面与 API,功能对等性 98.5%。

- 新增 API: /api/v1/trades, /api/v1/accounts, /api/v1/settings, 网关扩展
- 新增前端页面: 成交、资金、合约、网关、全局配置、微信通知
- 扩展导航菜单与实时数据推送
- 补充需求分析与实现计划文档
2026-07-04 20:13:03 +08:00
claude_dev f56c519b1d fix: 修复 VeighNa 模块加载问题
- 修改 main_service.py 使用正确的 gateway 导入路径
- 添加 try/except 处理 gateway 导入失败的情况
- 更新 requirements-docker.txt 添加 gateway 包说明

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 07:26:56 +08:00
claude_dev 918bbed0fc fix: 修复登录500错误和移除明文密码提示
- 修复 deps.py 中 get_vn_service 的引用错误 (vn_service.vn_service -> vn_service)
- 移除登录页面上的明文密码提示
- 改进前端错误处理,避免数据加载失败导致登录显示错误
2026-07-02 12:23:55 +08:00
claude_dev 3fbe6c9be5 feat: 纳入 VeighNa 4.4.0 上游源码作为版本参考
- 添加 vnpy_v4.4.0/ 目录到版本控制
- 删除嵌入的 .git 目录避免嵌套仓库
- 添加 README_SANGUO.md 说明来源和用途
- 更新 .gitignore 移除 vnpy_v4.4.0/ 忽略规则

上游代码信息:
- 项目: VeighNa 量化交易平台
- 版本: 4.4.0
- 来源: https://github.com/vnpy/vnpy

用途: 版本参考、代码学习、差异对比、离线开发

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:40:21 +08:00
claude_dev 36ec0d38e3 chore: 添加 .gitkeep 保持目录结构
- tests/.gitkeep
- scripts/.gitkeep
- examples/.gitkeep

确保空目录在 Git 中被追踪。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:21:57 +08:00
claude_dev a37c43f691 docs: 建立完整的项目文档体系
- 创建6大文档分类:需求/设计/API/用户指南/运维/研究
- 添加各目录的 README 和模板说明
- 定义文档命名规范和编写规范
- 建立文档与代码的对应关系

文档目录结构:
├── requirements/  - 业务需求、功能需求、非功能需求
├── design/        - 架构设计、数据库设计、UI设计、集成设计
├── api/           - REST API、事件定义、内部接口
├── user_guide/    - 快速开始、教程、FAQ
├── operations/    - 部署、监控、故障排查
└── research/      - 因子研究、策略研究、回测报告

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:13:44 +08:00
claude_dev 8dd1cf326d feat: 初始化 Sanguo VeighNa 量化交易平台项目
- 基于 VeighNa 4.4.0 的二次开发基础
- 建立项目目录结构(sanguo_trader/sanguo_research/sanguo_data/sanguo_common)
- 配置开发工作流文档和 Git 模板
- 设置 GitHub Flow 分支策略
- 添加依赖管理文件

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 18:51:39 +08:00