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.

543 lines
8.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 智能期货期权分析系统 - API接口文档
## 接口规范
### 基础信息
- **协议**: HTTPS
- **数据格式**: JSON
- **字符编码**: UTF-8
- **请求方式**: RESTful
### 响应格式
```json
{
"code": 200,
"message": "success",
"data": {}
}
```
### 错误码
| 错误码 | 说明 |
|--------|------|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未授权 |
| 403 | 禁止访问 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
---
## 行情数据接口
### 1. 获取品种列表
**接口**: `GET /api/v1/products`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| category | string | 否 | 分类筛选 |
| page | number | 否 | 页码默认1 |
| size | number | 否 | 每页数量默认20 |
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": "1",
"name": "原油",
"code": "SC",
"category": "energy",
"price": 528.6,
"change": 12.1,
"changePercent": 2.35,
"trendScore": 85,
"successRate": 72
}
],
"total": 100,
"page": 1,
"size": 20
}
}
```
### 2. 获取K线数据
**接口**: `GET /api/v1/products/{symbol}/kline`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| period | string | 是 | 周期: 1m/5m/15m/30m/1h/1d/1w |
| count | number | 否 | 返回条数默认100 |
| startTime | string | 否 | 开始时间 ISO8601 |
| endTime | string | 否 | 结束时间 ISO8601 |
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"symbol": "SC",
"period": "15m",
"data": [
{
"time": "2025-03-03T10:00:00Z",
"open": 525.0,
"high": 528.5,
"low": 524.0,
"close": 527.5,
"volume": 12580
}
]
}
}
```
### 3. 获取实时行情
**接口**: `GET /api/v1/products/{symbol}/tick`
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"symbol": "SC",
"price": 528.6,
"change": 12.1,
"changePercent": 2.35,
"open": 518.0,
"high": 535.0,
"low": 515.5,
"volume": 285600,
"openInterest": 125800,
"bidPrice": 528.5,
"askPrice": 528.7,
"bidVolume": 125,
"askVolume": 89,
"timestamp": 1709452800000
}
}
```
### 4. WebSocket实时订阅
**接口**: `wss://api.example.com/ws/v1/market`
**订阅消息**:
```json
{
"action": "subscribe",
"symbols": ["SC", "AU", "CU"],
"channels": ["tick", "kline"]
}
```
**推送消息**:
```json
{
"type": "tick",
"symbol": "SC",
"data": {
"price": 528.6,
"volume": 100,
"timestamp": 1709452800000
}
}
```
---
## 技术指标接口
### 5. 获取技术指标
**接口**: `GET /api/v1/products/{symbol}/indicators`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| period | string | 是 | 周期 |
| indicators | string | 是 | 指标列表,逗号分隔 |
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"symbol": "SC",
"period": "15m",
"indicators": {
"macd": {
"dif": 0.5234,
"dea": 0.4123,
"macd": 0.2222,
"signal": "golden_cross"
},
"rsi": {
"value": 65.5,
"status": "normal"
},
"bollinger": {
"upper": 535.0,
"middle": 525.0,
"lower": 515.0,
"position": "upper"
}
}
}
}
```
---
## 热点事件接口
### 6. 获取热点事件列表
**接口**: `GET /api/v1/events`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| impact | string | 否 | 影响类型: bullish/bearish/neutral |
| startDate | string | 否 | 开始日期 |
| endDate | string | 否 | 结束日期 |
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": "1",
"title": "地缘政治风险升级",
"time": "2025-03-02",
"summary": "美以袭伊朗,海上油阀被关",
"affectedProducts": ["原油", "黄金", "白银"],
"impact": "bullish",
"impactLevel": 5,
"analysis": "地缘政治风险急剧升温...",
"risks": ["冲突升级可能", "供应中断风险"]
}
]
}
}
```
### 7. 获取事件详情
**接口**: `GET /api/v1/events/{id}`
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"id": "1",
"title": "地缘政治风险升级",
"content": "详细内容...",
"analysis": "智能分析...",
"relatedProducts": [
{
"symbol": "SC",
"name": "原油",
"impact": "bullish",
"confidence": 0.85
}
]
}
}
```
---
## 分析接口
### 8. 获取交易建议
**接口**: `GET /api/v1/products/{symbol}/advice`
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"symbol": "SC",
"action": "long",
"entryPrice": 525.0,
"stopLoss": 518.0,
"targetPrice": 535.0,
"riskLevel": "medium",
"position": "medium",
"holdingTime": "short",
"reason": "地缘政治风险推动,多周期共振向上",
"confidence": 0.72
}
}
```
### 9. 获取多周期分析
**接口**: `GET /api/v1/products/{symbol}/multi-timeframe`
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"symbol": "SC",
"consistency": 0.75,
"cycles": [
{
"period": "m5",
"trend": "up",
"trendStrength": 85,
"signal": "buy"
},
{
"period": "m15",
"trend": "up",
"trendStrength": 78,
"signal": "buy"
},
{
"period": "m30",
"trend": "up",
"trendStrength": 72,
"signal": "buy"
},
{
"period": "m60",
"trend": "sideways",
"trendStrength": 45,
"signal": "neutral"
}
]
}
}
```
---
## 期权接口
### 10. 获取期权链
**接口**: `GET /api/v1/options/{underlying}/chain`
**请求参数**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| expiry | string | 否 | 到期日 |
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"underlying": "SC",
"expiry": "2025-04-15",
"strikes": [500, 510, 520, 530, 540],
"calls": [
{
"strike": 520,
"price": 15.5,
"iv": 0.25,
"delta": 0.65,
"gamma": 0.02,
"theta": -0.15,
"vega": 0.35
}
],
"puts": [
{
"strike": 520,
"price": 8.5,
"iv": 0.26,
"delta": -0.35,
"gamma": 0.02,
"theta": -0.12,
"vega": 0.33
}
]
}
}
```
### 11. 期权定价计算
**接口**: `POST /api/v1/options/pricing`
**请求参数**:
```json
{
"underlying": "SC",
"strike": 520,
"expiry": "2025-04-15",
"type": "call",
"price": 528.6,
"volatility": 0.25,
"riskFreeRate": 0.025
}
```
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"price": 15.52,
"delta": 0.6523,
"gamma": 0.0215,
"theta": -0.1523,
"vega": 0.3521,
"rho": 0.1234,
"impliedVol": 0.25
}
}
```
---
## 用户接口
### 12. 用户注册
**接口**: `POST /api/v1/auth/register`
**请求参数**:
```json
{
"username": "user123",
"email": "user@example.com",
"password": "password123",
"phone": "13800138000"
}
```
### 13. 用户登录
**接口**: `POST /api/v1/auth/login`
**请求参数**:
```json
{
"username": "user123",
"password": "password123"
}
```
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 3600,
"user": {
"id": "1",
"username": "user123",
"email": "user@example.com"
}
}
}
```
### 14. 获取自选股
**接口**: `GET /api/v1/user/watchlist`
**响应示例**:
```json
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"symbol": "SC",
"name": "原油",
"addTime": "2025-03-01T10:00:00Z",
"alertPrice": 550.0
}
]
}
}
```
### 15. 添加自选股
**接口**: `POST /api/v1/user/watchlist`
**请求参数**:
```json
{
"symbol": "SC",
"alertPrice": 550.0
}
```
---
## 待实现接口清单
| 接口 | 说明 | 优先级 |
|------|------|--------|
| POST /api/v1/user/watchlist/{symbol} | 删除自选股 | ⭐⭐⭐ |
| GET /api/v1/user/alerts | 获取价格预警 | ⭐⭐⭐⭐ |
| POST /api/v1/user/alerts | 设置价格预警 | ⭐⭐⭐⭐ |
| GET /api/v1/user/trades | 获取交易记录 | ⭐⭐⭐ |
| POST /api/v1/user/trades | 记录模拟交易 | ⭐⭐⭐ |
| GET /api/v1/signals | 获取交易信号 | ⭐⭐⭐⭐⭐ |
| GET /api/v1/market/heatmap | 市场热力图 | ⭐⭐⭐ |
| GET /api/v1/market/breadth | 市场宽度 | ⭐⭐⭐ |
| POST /api/v1/backtest | 策略回测 | ⭐⭐⭐ |
| GET /api/v1/news | 财经新闻 | ⭐⭐⭐⭐ |