看股功能更新
This commit is contained in:
36
README.md
36
README.md
@@ -7,6 +7,25 @@
|
||||
|
||||
---
|
||||
|
||||
## 快速启动
|
||||
|
||||
两个终端分别启动后端与前端:
|
||||
|
||||
```bash
|
||||
# 终端 1 —— 后端 API(http://localhost:8000)
|
||||
cd backend
|
||||
uv run uvicorn app.main:app --reload --port 8000
|
||||
|
||||
# 终端 2 —— 前端开发服务器(http://localhost:5173)
|
||||
cd frontend
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
首次运行前先安装依赖:后端 `uv sync`(backend 下)、前端 `pnpm install`(frontend 下)。
|
||||
浏览器打开 http://localhost:5173 即可使用。详细说明见下文「快速开始(开发模式)」。
|
||||
|
||||
---
|
||||
|
||||
## 功能特性
|
||||
|
||||
**已实现(Phase 0 MVP)**
|
||||
@@ -20,7 +39,6 @@
|
||||
- 回测运行注册表(每次回测落库,可复现/审计的基础)
|
||||
|
||||
**规划中(见 TECH_STACK.md 路线图)**
|
||||
- 接入 Tushare/AKShare 真实 A 股数据(替换 DEMO 合成数据)
|
||||
- 防过拟合体检(walk-forward / 样本外 / FDR 多重比较修正)
|
||||
- 基准归因(对比沪深300/中证500:超额、信息比率、beta/alpha)
|
||||
- 复权因子管道、回放式模拟盘
|
||||
@@ -34,7 +52,7 @@
|
||||
|---|---|
|
||||
| 后端 | Python 3.12+ · FastAPI · Pydantic v2 · SQLAlchemy 2.0 (async) · uv(包管理) |
|
||||
| 回测引擎 | 自研单一引擎(fast/strict 两档),指标纯 numpy/pandas(生产可换 TA-Lib) |
|
||||
| 数据库 | MVP 用 SQLite 零配置;生产切 PostgreSQL 16/17 + TimescaleDB |
|
||||
| 数据库 | PostgreSQL 16/17(后端强制要求)+ Redis 缓存;TimescaleDB 规划中 |
|
||||
| 前端 | Vue 3.5 · Vite · TypeScript · Pinia · PrimeVue 5 · pnpm |
|
||||
| 图表 | lightweight-charts 5(K 线)· ECharts 6(净值) |
|
||||
|
||||
@@ -60,7 +78,7 @@ stock/
|
||||
│ ├── commission.py # A 股交易成本(已修正、可配置)
|
||||
│ ├── indicators.py # 指标:MACD/RSI/KDJ/布林/均线(单一事实源)
|
||||
│ ├── api.py # 路由:/health /candles /backtest
|
||||
│ ├── data/ # DataProvider 适配器 + 合成数据 + 周期聚合
|
||||
│ ├── data/ # DataProvider 适配器(Tushare/AKShare)+ 周期聚合
|
||||
│ └── backtest/ # engine / broker(PaperBroker) / metrics / strategies
|
||||
└── frontend/ # Vue SPA
|
||||
├── src/
|
||||
@@ -82,7 +100,7 @@ stock/
|
||||
| pnpm | ≥ 9(实测 11) | 前端包管理 |
|
||||
| Python | ≥ 3.12(实测 3.14) | 后端 |
|
||||
| uv | 任意(实测 0.12) | 后端包管理,[安装](https://docs.astral.sh/uv/) |
|
||||
| (可选)PostgreSQL | 16/17 | 生产数据库;MVP 用 SQLite 无需安装 |
|
||||
| PostgreSQL | 16/17 | 数据库(必装,后端已不再支持 SQLite) |
|
||||
|
||||
**安装 uv**(若未装):
|
||||
```bash
|
||||
@@ -103,7 +121,7 @@ uv sync # 创建 .venv 并安装依赖(首
|
||||
uv run uvicorn app.main:app --reload --port 8000
|
||||
```
|
||||
|
||||
- 首次启动自动建表(SQLite:`backend/stock.db`)并播种约 500 个交易日的合成 K 线(symbol=`DEMO`)。
|
||||
- 数据库结构由 Alembic 管理:首次部署/更新代码后先执行 `uv run alembic upgrade head`(见「初始化登录系统」)。
|
||||
- 交互式 API 文档:http://localhost:8000/docs
|
||||
|
||||
**自检**(无需起服务器,验证全链路):
|
||||
@@ -141,7 +159,7 @@ CORS_ORIGINS=http://localhost:5173
|
||||
# 生产建议关闭接口文档
|
||||
EXPOSE_API_DOCS=true
|
||||
|
||||
# 真实数据源(Tushare Pro;免费版即可。留空则仅 DEMO 合成数据可用)
|
||||
# 真实数据源(Tushare Pro;免费版即可)
|
||||
TUSHARE_TOKEN=你的token
|
||||
DATA_ADJUST=qfq # 复权:qfq 前复权 / hfq 后复权 / 留空不复权
|
||||
DATA_DEFAULT_START=20200101
|
||||
@@ -204,7 +222,7 @@ EXPOSE_API_DOCS=false
|
||||
```json
|
||||
POST /api/backtest
|
||||
{
|
||||
"symbol": "DEMO",
|
||||
"symbol": "000001",
|
||||
"timeframe": "1d",
|
||||
"strategy": "macd_cross",
|
||||
"params": { "fast": 12, "slow": 26, "signal": 9 },
|
||||
@@ -214,7 +232,7 @@ POST /api/backtest
|
||||
```
|
||||
返回:`candles`(K线)、`indicators`(MACD 三线)、`signals`(买卖点)、`equity`(净值序列)、`metrics`(绩效)、`final_cash`/`final_position`。
|
||||
|
||||
> **关于「标的」**:`DEMO` 为内置合成数据;其余为真实 A 股代码(如 `000001`、`600519`),首次回测时**自动经 Tushare 拉取并本地缓存**(需配置 `TUSHARE_TOKEN` + 联网),二次回测秒出。默认初始资金 100 万,足够交易高价股(如茅台)。
|
||||
> **关于「标的」**:标的为真实 A 股代码(如 `000001`、`600519`),首次回测时**自动经 Tushare 拉取并本地缓存**(需配置 `TUSHARE_TOKEN` + 联网),二次回测秒出。默认初始资金 100 万,足够交易高价股(如茅台)。
|
||||
|
||||
---
|
||||
|
||||
@@ -235,7 +253,7 @@ uv run alembic upgrade head
|
||||
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
|
||||
# 或 gunicorn(Linux):uv run gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker
|
||||
```
|
||||
生产务必设置 `DATABASE_URL` 指向 PostgreSQL,不要用 SQLite。
|
||||
后端强制要求 `DATABASE_URL` 使用 PostgreSQL(`postgresql+asyncpg://`),已不再支持 SQLite。
|
||||
|
||||
### 参考:docker-compose(具备 Docker 后使用)
|
||||
```yaml
|
||||
|
||||
Reference in New Issue
Block a user