# TDX API配置快速指南

## 问题说明

如果您看到以下警告：

```
WARNING:low_price_bull_service:TDX数据源未配置，无法获取股票数据
```

说明系统无法连接到TDX API服务，需要进行配置。

## 解决方案

### 步骤1：配置TDX API地址

在 `.env` 文件中添加以下配置：

```bash
# TDX数据源API配置
TDX_BASE_URL=http://127.0.0.1:5000
```

### 步骤2：确保TDX API服务已启动

TDX API服务需要单独启动，请检查：

1. **检查服务是否运行**
   ```bash
   # 在浏览器中访问
   http://127.0.0.1:5000/api/health
   
   # 或使用curl命令
   curl http://127.0.0.1:5000/api/health
   ```

2. **如果服务未启动**
   - 请启动您的TDX API服务
   - 默认端口：5000
   - 如使用其他端口，请修改.env中的URL

### 步骤3：测试配置

运行测试脚本验证配置：

```bash
python test_tdx_api.py
```

**期望输出**：

```
============================================================
TDX API配置测试
============================================================

1. TDX API地址: http://127.0.0.1:5000

2. 测试健康检查接口...
   ✅ 健康检查成功
   响应: OK

3. 测试K线数据接口...
   测试股票: 000001
   ✅ K线数据获取成功
   数据条数: 250
   
   最新K线数据:
   - 日期: 2024-12-12
   - 开盘: 10.50
   - 收盘: 10.60
   - 最高: 10.80
   - 最低: 10.30
   - 成交量: 1000000
   
   ✅ 数据量充足，可以计算MA20（需要至少20条）

4. 测试均线计算...
   ✅ 均线计算成功
   - 收盘价: 10.60
   - MA5: 10.55
   - MA20: 10.45
   - 趋势: 🟢 MA5 > MA20 (多头)

============================================================
✅ 所有测试通过！TDX API配置正常
============================================================
```

## TDX API接口说明

### 核心接口

| 接口 | 说明 | 示例 |
|------|------|------|
| /api/health | 健康检查 | - |
| /api/kline | K线数据 | ?code=000001&type=day |
| /api/quote | 五档行情 | ?code=000001 |
| /api/stock-info | 综合信息 | ?code=000001 |

### K线数据接口详情

**URL**: `/api/kline`

**参数**:
- `code`: 股票代码（必填）
  - 支持格式：
    - 纯数字：`000001`、`600000`
    - 市场前缀：`SZ000001`、`SH600000`
  - 示例：000001（平安银行）
  - 示例：600000（浦发银行）
- `type`: K线类型（必填）
  - `day`: 日K线
  - `week`: 周K线
  - `month`: 月K线

**代码格式说明**：
- 系统会自动处理不同格式的股票代码
- 如果使用`SZ`/`SH`前缀失败，会自动重试纯数字代码
- 支持带后缀的代码（如`002259.SZ`），系统会自动去除后缀

**返回格式**:
```json
[
  {
    "date": "2024-12-12",
    "open": 10.50,
    "high": 10.80,
    "low": 10.30,
    "close": 10.60,
    "volume": 1000000
  },
  ...
]
```

**使用示例**:
```bash
# 获取平安银行日K线
curl "http://127.0.0.1:5000/api/kline?code=000001&type=day"
```

## 常见问题

### Q1: 连接失败，显示连接超时？

**原因**：
- TDX API服务未启动
- 防火墙阻止了连接
- 端口被占用

**解决方案**：
1. 检查TDX API服务是否启动
2. 检查端口5000是否被占用
3. 尝试使用其他端口并修改.env配置

### Q2: 健康检查失败，HTTP 404？

**原因**：
- TDX API服务版本不支持`/api/health`接口
- URL配置错误

**解决方案**：
1. 尝试访问其他接口，如`/api/kline`
2. 检查.env中的TDX_BASE_URL是否正确
3. 确认服务地址和端口

### Q3: K线数据获取失败？

**原因**：
- 股票代码不存在
- 接口参数错误
- 数据源未就绪

**解决方案**：
1. 使用已知存在的股票代码测试（如000001）
2. 检查参数格式是否正确
3. 查看TDX API服务日志

### Q4: 数据量不足，无法计算MA20？

**原因**：
- TDX API返回的K线数据少于20条
- 新上市股票数据不足

**解决方案**：
1. 这是正常情况，系统会自动跳过
2. 等待股票积累更多交易日数据
3. 监控服务会在下次扫描时重试

### Q5: 如何使用远程TDX API服务？

如果TDX API服务部署在其他服务器上：

```bash
# .env配置
TDX_BASE_URL=http://192.168.1.100:5000

# 或使用域名
TDX_BASE_URL=http://tdx-api.example.com:5000
```

### Q6: 如何修改扫描间隔？

在.env文件中修改：

```bash
# 扫描间隔（秒）
LOW_PRICE_BULL_SCAN_INTERVAL=60    # 默认60秒，可改为30-300秒
```

或在监控面板的"⚙️ 监控配置"中动态修改。

## 配置检查清单

- [ ] ✅ .env文件中已配置TDX_BASE_URL
- [ ] ✅ TDX API服务已启动
- [ ] ✅ 可以访问http://127.0.0.1:5000/api/health
- [ ] ✅ 运行test_tdx_api.py测试通过
- [ ] ✅ 在监控面板启动监控服务
- [ ] ✅ 配置了Webhook通知（可选）

## 下一步

配置完成后：

1. 进入"低价擒牛"选股板块
2. 执行选股，查看结果
3. 点击"➕ 加入策略监控"
4. 进入"📊 策略监控"面板
5. 点击"▶️ 启动监控服务"
6. 监控服务将每60秒扫描一次

## 需要帮助？

如果仍然遇到问题，请：

1. 查看控制台错误日志
2. 运行`python test_tdx_api.py`获取详细错误信息
3. 检查TDX API服务日志
4. 确认网络连接正常

---

**文档版本**: v1.0  
**更新日期**: 2024-12-12
