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.
|
|
1 month ago | |
|---|---|---|
| backend | 1 month ago | |
| database | 1 month ago | |
| docker | 1 month ago | |
| docs | 2 months ago | |
| frontend | 1 month ago | |
| template | 1 month ago | |
| .gitignore | 2 months ago | |
| PROJECT_DESIGN.md | 2 months ago | |
| README.md | 2 months ago | |
| deploy.bat | 1 month ago | |
| deploy.sh | 1 month ago | |
README.md
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. 克隆项目
git clone <repository-url>
cd amazing-data-service
2. 安装AmazingData SDK
# 从银河证券获取 SDK wheel 文件
pip install AmazingData-1.0.24-py3-none-any.whl
3. 使用Docker启动
docker-compose up -d
服务将启动在:
- 前端: http://localhost
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
4. 初始化数据库
# 数据库会自动执行 init.sql 初始化脚本
# 默认管理员账号: admin / admin123
5. 配置SDK连接
- 登录系统(admin / admin123)
- 进入"配置管理"页面
- 添加AmazingData SDK连接信息
- 点击"测试连接"验证
项目结构
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. 数据缓存策略
系统采用"本地优先"策略:
- 查询请求首先检查本地数据库
- 检查数据完整性(与交易日历对比)
- 缺失数据自动从AmazingData SDK获取
- 新数据写入数据库时自动去重
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
开发指南
后端开发
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
前端开发
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授权,请联系银河证券开通权限。