You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

199 lines
4.9 KiB

# AmazingData 金融数据服务平台
基于银河证券星耀数智量化平台SDK构建的金融数据服务系统提供历史数据缓存、实时数据订阅、批量数据管理等功能。
## 功能特性
-**完整SDK接口封装** - 封装AmazingData所有接口
-**智能数据缓存** - 优先本地缓存缺失自动从SDK补全
-**实时数据订阅** - WebSocket实时推送股票/期货行情
-**缺失数据检测** - 自动检测并提示缺失数据
-**批量缓存管理** - 一键检测、一键缓存
-**可视化K线图** - ECharts展示历史K线数据
-**完整测试中心** - 所有接口一键测试
-**配置管理** - SDK账号配置可视化维护
## 技术栈
| 层级 | 技术 |
|------|------|
| 后端 | Python 3.10+, FastAPI, SQLAlchemy 2.0 |
| 数据库 | PostgreSQL 15+ |
| 缓存 | Redis 7+ |
| 前端 | Vue3, TypeScript, Element Plus |
| 图表 | ECharts 5+ |
| 部署 | Docker, Docker Compose |
## 快速开始
### 1. 克隆项目
```bash
git clone <repository-url>
cd amazing-data-service
```
### 2. 安装AmazingData SDK
```bash
# 从银河证券获取 SDK wheel 文件
pip install AmazingData-1.0.24-py3-none-any.whl
```
### 3. 使用Docker启动
```bash
docker-compose up -d
```
服务将启动在:
- 前端: http://localhost
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
### 4. 初始化数据库
```bash
# 数据库会自动执行 init.sql 初始化脚本
# 默认管理员账号: admin / admin123
```
### 5. 配置SDK连接
1. 登录系统admin / admin123
2. 进入"配置管理"页面
3. 添加AmazingData SDK连接信息
4. 点击"测试连接"验证
## 项目结构
```
amazing-data-service/
├── backend/ # FastAPI后端
├── frontend/ # Vue3前端
├── database/ # 数据库脚本
├── docker/ # Docker配置
├── docs/ # 文档
└── README.md
```
## API接口文档
启动服务后访问http://localhost:8000/docs
### 主要接口分类
- `/api/v1/auth/*` - 认证接口
- `/api/v1/configs/*` - 配置管理
- `/api/v1/stock/*` - 股票数据
- `/api/v1/future/*` - 期货数据
- `/api/v1/realtime/*` - 实时数据
- `/api/v1/finance/*` - 财务数据
- `/api/v1/cache/*` - 缓存管理
- `/api/v1/test/*` - 测试中心
## 核心功能说明
### 1. 数据缓存策略
系统采用"本地优先"策略:
1. 查询请求首先检查本地数据库
2. 检查数据完整性(与交易日历对比)
3. 缺失数据自动从AmazingData SDK获取
4. 新数据写入数据库时自动去重
### 2. 缺失数据检测
检测逻辑:
- 按交易日查询数据条数
- 与最近交易日数据对比
- 偏差超过10%标记为缺失
### 3. 实时数据订阅
- WebSocket连接`ws://localhost:8000/api/v1/realtime/stream`
- 支持股票、期货、指数快照订阅
- 数据自动保存7天后清理
### 4. 测试中心
提供所有接口的自动化测试:
- 单个接口测试(参数调试)
- 批量接口测试(回归测试)
- 测试历史记录
## 数据库表结构
### 核心表
| 表名 | 说明 |
|------|------|
| users | 系统用户 |
| sdk_configs | SDK配置 |
| stock_kline_daily | 股票日线数据 |
| stock_kline_min | 股票分钟数据 |
| future_kline_daily | 期货日线数据 |
| future_kline_min | 期货分钟数据 |
| realtime_snapshot | 实时快照数据 |
| cache_tasks | 缓存任务 |
| api_test_logs | API测试日志 |
完整表结构见:`database/init.sql`
## 开发指南
### 后端开发
```bash
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
```
### 前端开发
```bash
cd frontend
npm install
npm run dev
```
## 配置说明
### 环境变量
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| DATABASE_URL | 数据库连接URL | postgresql://postgres:postgres@localhost:5432/amazing_data |
| REDIS_URL | Redis连接URL | redis://localhost:6379/0 |
| SECRET_KEY | JWT密钥 | your-secret-key |
| ACCESS_TOKEN_EXPIRE_HOURS | Token过期时间 | 24 |
## 常见问题
### Q: 如何添加新的SDK配置
A: 登录系统后,进入"配置管理"页面,点击"添加配置"填写AmazingData账号信息。
### Q: 如何批量缓存历史数据?
A: 进入"缓存管理"页面,选择时间区间,点击"检测缺失数据",然后点击"一键缓存"。
### Q: 实时数据如何订阅?
A: 在数据查询页面,输入代码后勾选"实时订阅"系统会自动建立WebSocket连接。
### Q: 数据去重是如何工作的?
A: 系统比较open/high/low/close/volume五个核心字段如果差异小于0.0001则视为相同数据,跳过插入。
## 许可证
MIT License
## 联系支持
如有问题请联系项目维护者或提交Issue。
---
**注意**使用本系统需要AmazingData SDK授权请联系银河证券开通权限。