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:
+675
@@ -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 1(1~2周)
|
||||
|
||||
完成:
|
||||
|
||||
```text
|
||||
finance/
|
||||
DataManager
|
||||
MariaDB
|
||||
AkShare
|
||||
```
|
||||
|
||||
目标:
|
||||
|
||||
```text
|
||||
获取任意股票历史数据
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint 2(1周)
|
||||
|
||||
完成:
|
||||
|
||||
```text
|
||||
Factor Engine
|
||||
```
|
||||
|
||||
目标:
|
||||
|
||||
```text
|
||||
计算10个基础因子
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint 3(1周)
|
||||
|
||||
完成:
|
||||
|
||||
```text
|
||||
VectorBT
|
||||
```
|
||||
|
||||
目标:
|
||||
|
||||
```text
|
||||
回测单因子策略
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint 4(1周)
|
||||
|
||||
完成:
|
||||
|
||||
```text
|
||||
Optuna
|
||||
```
|
||||
|
||||
目标:
|
||||
|
||||
```text
|
||||
自动参数优化
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint 5(2周)
|
||||
|
||||
完成:
|
||||
|
||||
```text
|
||||
LightGBM
|
||||
CatBoost
|
||||
```
|
||||
|
||||
目标:
|
||||
|
||||
```text
|
||||
训练未来5日收益预测模型
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint 6(2周)
|
||||
|
||||
完成:
|
||||
|
||||
```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 都只是插件式增加能力。
|
||||
|
||||
Reference in New Issue
Block a user