Initial commit: cc-cursor 全链路量化研究平台

7 Sprints 全部完成:
  Sprint 0: 基础设施 (DataManager + MariaDB)
  Sprint 1: 因子引擎 (34因子/12分类)
  Sprint 2: VectorBT 回测 (5策略+截面)
  Sprint 3: Optuna 优化 (+Walk-Forward)
  Sprint 4: ML 模型 (LightGBM+CatBoost)
  Sprint 5: Qwen 情绪因子 (三源新闻+日期对齐)
  Sprint 6: Agent 系统 (4Agent+日报.md/.html)

生产加固 (15项): Tushare双源fallback, SSH自动恢复, pool_pre_ping,
  save_daily先删后插, load_dotenv绝对路径, 日报5d/20d修复,
  RiskAgent改上证指数, 昨日对比+数据截止, mac_report utf8mb4,
  CLAUDE-*.md 9条已知Bug, demo全参数化, djapi数据源归一化,
  indexDatas API修正

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 15:59:05 +08:00
co-authored by Claude Opus 4.7
commit 271a9343a5
293 changed files with 59598 additions and 0 deletions
+675
View File
@@ -0,0 +1,675 @@
我认真看了你的目标和现有环境,我认为有一个关键点需要调整:
**不要把 Claude Code Plugin 当成系统主体。**
对于你的项目:
```text
Claude Code
MCP-Hub
Django API
AkShare
MariaDB
VectorBT
Optuna
LightGBM
Qwen
```
Claude Code 应该只是:
```text
AI开发助手
AI研究助手
```
而不是:
```text
系统运行时核心
```
真正的核心应该是:
```text
finance/
```
finance 目录下python虚拟环境位于 finance/.venv/,在项目根目录下 可用 source finance/.venv/bin/activate激活
这个目录未来即使你不用 Claude、换成 Cursor、Codex、OpenHands、Aider,都应该能独立运行。
---
# 推荐总体架构
未来你的根目录:
```text
/Users/summer/Downloads/cc-cursor
├── djapi/
├── finance/
├── mcp-servers/
├── shared/
├── docs/
└── .claude/
```
---
# 各目录职责
## djapi
仅负责:
```text
数据库
用户管理
任务管理
API接口
报告管理
```
类似:
```text
Quant Platform Backend
```
---
## finance
核心量化引擎
未来90%的代码都在这里。
---
结构:
```text
finance/
├── config/
├── data/
├── factors/
├── models/
├── strategy/
├── optimizer/
├── backtest/
├── portfolio/
├── execution/
├── reports/
├── scheduler/
└── cli/
```
---
# 第一阶段(V1
目标:
```text
数据获取
因子计算
回测
参数优化
```
技术栈:
```text
AkShare
MariaDB
VectorBT
Optuna
```
---
## 实施周期
### Week 1
基础设施
---
目录:
```text
finance/
config/
data/
database/
```
---
完成:
### DataManager
```python
class DataManager:
```
统一管理:
```text
股票列表
日线
分钟线
财务数据
```
---
不要让策略直接调用:
```python
ak.stock_zh_a_hist()
```
而是:
```python
data_manager.get_daily()
```
这样以后换 TuShare 不改策略。
---
### Week 2
因子引擎
建立:
```text
factors/
technical/
fundamental/
```
---
例如:
```text
MomentumFactor
RSIFactor
ROEFactor
PEFactor
```
统一接口:
```python
factor.calculate(df)
```
---
### Week 3
VectorBT回测层
建立:
```text
backtest/vectorbt/
```
---
统一接口:
```python
engine.run(strategy)
```
以后:
```text
VectorBT
Backtrader
Zipline
```
都能替换。
---
### Week 4
Optuna优化层
建立:
```text
optimizer/
```
---
统一接口:
```python
optimizer.optimize(strategy)
```
实现:
```text
MA
RSI
MACD
```
自动寻优。
---
# 第二阶段(V2
目标:
```text
机器学习选股
```
技术:
```text
LightGBM
CatBoost
```
---
## 新增目录
```text
models/
├── lightgbm/
└── catboost/
```
---
建立统一模型接口:
```python
class BaseModel:
```
---
例如:
```python
fit()
predict()
save()
load()
```
---
所有模型遵循:
```python
BaseModel
```
接口。
---
# 第三阶段(V3
目标:
```text
新闻因子
公告因子
研报因子
```
技术:
```text
Qwen
```
---
新增:
```text
factors/sentiment/
models/qwen/
```
---
Qwen职责:
```text
文本转因子
```
例如:
```text
公告
Qwen
sentiment_score
feature_101
```
---
注意:
Qwen不是策略。
Qwen是:
```text
因子生产工具
```
---
# 第四阶段(V4
Agent化
新增:
```text
finance/agents/
```
---
结构:
```text
research_agent
selection_agent
risk_agent
report_agent
```
---
例如:
### ResearchAgent
负责:
```text
发现新因子
```
---
### SelectionAgent
负责:
```text
股票打分
```
---
### RiskAgent
负责:
```text
仓位控制
```
---
# Claude Code 接入时间点
很多人一开始就写 Skill。
我建议:
### 不要现在写大量 Skill
第一阶段只保留:
```text
.claude/
skills/
factor-research
backtest
stock-selection
```
三个就够。
---
等 V2 完成以后再扩展。
---
# 数据流设计(必须遵守)
未来所有代码都遵守:
```text
Data
Factor
Model
Strategy
Backtest
Report
```
---
禁止:
```text
Strategy
直接访问AkShare
```
---
禁止:
```text
Model
直接访问数据库
```
---
全部通过 Service 层。
---
# 推荐实施顺序
## Sprint 11~2周)
完成:
```text
finance/
DataManager
MariaDB
AkShare
```
目标:
```text
获取任意股票历史数据
```
---
## Sprint 21周)
完成:
```text
Factor Engine
```
目标:
```text
计算10个基础因子
```
---
## Sprint 31周)
完成:
```text
VectorBT
```
目标:
```text
回测单因子策略
```
---
## Sprint 41周)
完成:
```text
Optuna
```
目标:
```text
自动参数优化
```
---
## Sprint 52周)
完成:
```text
LightGBM
CatBoost
```
目标:
```text
训练未来5日收益预测模型
```
---
## Sprint 62周)
完成:
```text
Qwen情绪因子
```
目标:
```text
新闻情绪打分
```
---
## Sprint 7
完成:
```text
Agent
Dashboard
自动日报
```
---
按照这个路线,你的代码会从:
```text
Mac Mini 单机量化研究平台
```
平滑演进到:
```text
多因子 + ML + LLM + Agent
量化研究平台
```
中间不会出现“推倒重写”的情况。最关键的是先把 **DataManager → Factor Engine → Backtest Engine → Model Engine** 四个基础引擎设计好,后面的 LightGBM、Qwen、Agent 都只是插件式增加能力。