# 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 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授权,请联系银河证券开通权限。