|
|
|
|
|
# 期货统一数据平台
|
|
|
|
|
|
|
|
|
|
|
|
期货行情统一数据平台,对接多个数据源(Tushare/CTP等),提供统一的数据出口。
|
|
|
|
|
|
|
|
|
|
|
|
## 功能
|
|
|
|
|
|
|
|
|
|
|
|
- **数据源管理**: 可配置启用/禁用的数据源,优先级管理
|
|
|
|
|
|
- **历史K线**: 日K/周K/60m/30m/15m/5m 数据存储与查询
|
|
|
|
|
|
- **合约管理**: 合约信息同步与查询
|
|
|
|
|
|
- **管理后台**: 数据源监控、接口测试、K线展示
|
|
|
|
|
|
- **RESTful API**: 统一的数据接口供其他系统调用
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 配置环境变量
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
# 编辑 .env,填入你的 Tushare Token
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Docker 启动
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker compose up -d --build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
启动后访问:
|
|
|
|
|
|
- 管理后台: http://localhost:3000
|
|
|
|
|
|
- 后端API: http://localhost:8000
|
|
|
|
|
|
- API文档: http://localhost:8000/docs
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 初始配置
|
|
|
|
|
|
|
|
|
|
|
|
1. 打开 http://localhost:3000
|
|
|
|
|
|
2. 进入"数据源监控"页面
|
|
|
|
|
|
3. 点击 tushare 行的"配置"按钮,填入你的 Tushare Token
|
|
|
|
|
|
4. 点击"测试连接"确认
|
|
|
|
|
|
5. 开启"启用"开关
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
├── backend/ # 后端 (FastAPI + SQLAlchemy)
|
|
|
|
|
|
│ ├── app/
|
|
|
|
|
|
│ │ ├── main.py # 入口 & API路由
|
|
|
|
|
|
│ │ ├── config.py # 配置
|
|
|
|
|
|
│ │ ├── database.py # 数据库连接
|
|
|
|
|
|
│ │ ├── models/ # 数据库模型
|
|
|
|
|
|
│ │ ├── schemas/ # Pydantic 模型
|
|
|
|
|
|
│ │ ├── services/ # 业务逻辑
|
|
|
|
|
|
│ │ │ ├── datasource/ # 数据源适配器
|
|
|
|
|
|
│ │ │ ├── kline_service.py
|
|
|
|
|
|
│ │ │ └── contract_service.py
|
|
|
|
|
|
│ │ └── api/
|
|
|
|
|
|
│ └── requirements.txt
|
|
|
|
|
|
├── frontend/ # 前端 (Vue3 + Element Plus)
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── views/ # 页面
|
|
|
|
|
|
│ │ └── api/ # API调用
|
|
|
|
|
|
│ └── package.json
|
|
|
|
|
|
├── docker-compose.yml
|
|
|
|
|
|
└── .env
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## API 接口
|
|
|
|
|
|
|
|
|
|
|
|
### 合约
|
|
|
|
|
|
- `GET /api/v1/contracts` - 合约列表
|
|
|
|
|
|
- `GET /api/v1/contracts/{symbol}` - 合约详情
|
|
|
|
|
|
- `POST /api/v1/contracts/sync` - 同步合约
|
|
|
|
|
|
|
|
|
|
|
|
### K线
|
|
|
|
|
|
- `GET /api/v1/kline?symbol=rb2401&period=daily&limit=100` - 查询K线
|
|
|
|
|
|
- `POST /api/v1/kline/sync` - 同步K线数据
|
|
|
|
|
|
|
|
|
|
|
|
### 数据源
|
|
|
|
|
|
- `GET /api/v1/datasources` - 数据源列表
|
|
|
|
|
|
- `PUT /api/v1/datasources/{name}` - 更新配置
|
|
|
|
|
|
- `POST /api/v1/datasources/{name}/test` - 测试连接
|
|
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
| 层次 | 技术 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| 后端 | Python / FastAPI / SQLAlchemy |
|
|
|
|
|
|
| 数据库 | PostgreSQL + TimescaleDB |
|
|
|
|
|
|
| 缓存 | Redis |
|
|
|
|
|
|
| 前端 | Vue3 / Element Plus / ECharts |
|
|
|
|
|
|
| 部署 | Docker Compose |
|