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.
2.5 KiB
2.5 KiB
期货统一数据平台
期货行情统一数据平台,对接多个数据源(Tushare/CTP等),提供统一的数据出口。
功能
- 数据源管理: 可配置启用/禁用的数据源,优先级管理
- 历史K线: 日K/周K/60m/30m/15m/5m 数据存储与查询
- 合约管理: 合约信息同步与查询
- 管理后台: 数据源监控、接口测试、K线展示
- RESTful API: 统一的数据接口供其他系统调用
快速开始
1. 配置环境变量
cp .env.example .env
# 编辑 .env,填入你的 Tushare Token
2. Docker 启动
docker compose up -d --build
启动后访问:
- 管理后台: http://localhost:3000
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
3. 初始配置
- 打开 http://localhost:3000
- 进入"数据源监控"页面
- 点击 tushare 行的"配置"按钮,填入你的 Tushare Token
- 点击"测试连接"确认
- 开启"启用"开关
项目结构
├── 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 |