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.
|
|
|
|
|
# Python TQAPI 服务
|
|
|
|
|
|
|
|
|
|
|
|
## 功能说明
|
|
|
|
|
|
|
|
|
|
|
|
Python TQAPI 服务是 AI 期货分析系统的一个组件,负责与天勤量化(TQSDK)进行交互,为系统提供期货市场数据。
|
|
|
|
|
|
|
|
|
|
|
|
## 集成说明
|
|
|
|
|
|
|
|
|
|
|
|
### 自动启动
|
|
|
|
|
|
|
|
|
|
|
|
Python TQAPI 服务已集成到 Node.js 后端服务中,当满足以下条件时会自动启动:
|
|
|
|
|
|
|
|
|
|
|
|
1. 配置文件中 `defaultDataSource` 设置为 `tqsdk`
|
|
|
|
|
|
2. 或配置文件中 `tqsdk.enabled` 设置为 `true`
|
|
|
|
|
|
|
|
|
|
|
|
### 手动启动
|
|
|
|
|
|
|
|
|
|
|
|
如果需要手动启动 Python 服务,可以执行以下命令:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend/python_service
|
|
|
|
|
|
python main.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 依赖安装
|
|
|
|
|
|
|
|
|
|
|
|
### Python 依赖
|
|
|
|
|
|
|
|
|
|
|
|
在 `backend/python_service` 目录下执行:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 依赖包说明
|
|
|
|
|
|
|
|
|
|
|
|
- **tqsdk**:天勤量化 SDK,用于获取期货市场数据
|
|
|
|
|
|
- **fastapi**:高性能的 Python Web 框架,用于提供 API 接口
|
|
|
|
|
|
- **uvicorn**:ASGI 服务器,用于运行 FastAPI 应用
|
|
|
|
|
|
- **pandas**:数据分析库,用于处理和分析数据
|
|
|
|
|
|
|
|
|
|
|
|
## API 端点
|
|
|
|
|
|
|
|
|
|
|
|
| 端点 | 方法 | 功能 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| `/api/connect` | POST | 连接到天勤量化服务 |
|
|
|
|
|
|
| `/api/contracts` | GET | 获取合约列表 |
|
|
|
|
|
|
| `/api/contract/{symbol}` | GET | 获取单个合约详情 |
|
|
|
|
|
|
| `/api/klines/{symbol}` | GET | 获取K线数据 |
|
|
|
|
|
|
| `/api/tick/{symbol}` | GET | 获取Tick数据 |
|
|
|
|
|
|
| `/health` | GET | 健康检查 |
|
|
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
|
|
### 天勤量化账号配置
|
|
|
|
|
|
|
|
|
|
|
|
在 `config.json` 文件中配置天勤量化账号:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"dataSource": {
|
|
|
|
|
|
"tqsdk": {
|
|
|
|
|
|
"enabled": true,
|
|
|
|
|
|
"username": "你的天勤账号",
|
|
|
|
|
|
"password": "你的天勤密码"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 服务端口配置
|
|
|
|
|
|
|
|
|
|
|
|
服务默认运行在端口 8000,可以在 `main.py` 文件中修改:
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
uvicorn.run(app, host="0.0.0.0", port=8000) # 修改端口号
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 故障排查
|
|
|
|
|
|
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
1. **Python 服务启动失败**
|
|
|
|
|
|
- 检查 Python 是否安装
|
|
|
|
|
|
- 检查依赖包是否安装完整
|
|
|
|
|
|
- 检查天勤量化账号是否正确
|
|
|
|
|
|
|
|
|
|
|
|
2. **连接天勤服务器失败**
|
|
|
|
|
|
- 检查网络连接
|
|
|
|
|
|
- 检查天勤量化账号密码是否正确
|
|
|
|
|
|
- 检查天勤量化服务是否正常
|
|
|
|
|
|
|
|
|
|
|
|
3. **数据获取失败**
|
|
|
|
|
|
- 检查合约代码是否正确
|
|
|
|
|
|
- 检查网络连接
|
|
|
|
|
|
- 检查天勤量化服务状态
|
|
|
|
|
|
|
|
|
|
|
|
### 日志查看
|
|
|
|
|
|
|
|
|
|
|
|
Python 服务的日志会输出到 Node.js 后端服务的控制台中,可以通过查看控制台日志来排查问题。
|
|
|
|
|
|
|
|
|
|
|
|
## 技术实现
|
|
|
|
|
|
|
|
|
|
|
|
- **FastAPI**:提供 RESTful API 接口
|
|
|
|
|
|
- **TqApi**:与天勤量化服务交互
|
|
|
|
|
|
- **异步处理**:提高并发性能
|
|
|
|
|
|
- **错误处理**:确保服务稳定性
|