Files
aiagents-stock/docs/TDX数据源快速配置.md
T

7.1 KiB
Raw Blame History

TDX数据源快速配置指南

📖 简介

TDX(通达信)数据源是一个本地化的股票行情数据接口,提供实时行情、K线数据、技术指标等功能。相比于公网API,TDX数据源具有以下优势:

核心优势

  • 🚀 速度快: 本地局域网访问,响应时间<50ms
  • 💰 零成本: 完全免费,无API调用限制
  • 📊 数据全: 支持实时行情、K线、分时、技术指标
  • 🔒 稳定性: 不受公网API限流影响
  • 🌐 本地化: Docker一键部署,数据完全可控

🎯 快速开始

1. 部署TDX数据API服务

方式一:使用Docker部署(推荐)

# 克隆TDX API项目
git clone https://github.com/oficcejo/tdx-api.git
cd tdx-api

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

访问测试

# 测试接口是否正常
curl "http://localhost:8080/api/quote?code=000001"

方式二:手动构建

# 构建镜像
docker build -t tdx-api .

# 运行容器
docker run -d -p 8080:8080 --name tdx-api tdx-api

2. 配置AI股票分析系统

在项目根目录的.env文件中添加以下配置:

# TDX数据源配置
TDX_ENABLED=true
TDX_BASE_URL=http://192.168.1.222:8080

配置说明

  • TDX_ENABLED: 是否启用TDX数据源(true/false
  • TDX_BASE_URL: TDX API服务地址
    • 本机部署:http://localhost:8080
    • 局域网部署:http://192.168.1.222:8080(替换为实际IP

3. 重启AI股票分析系统

# 本地部署
streamlit run app.py

# Docker部署
docker-compose restart

📊 功能集成说明

已集成模块

1. AI盯盘 - 实时行情获取

文件: smart_monitor_data.py, smart_monitor_ui.py

功能

  • 实时行情查询(价格、涨跌幅、成交量)
  • K线数据获取(日K、周K、月K
  • 技术指标计算(MA、MACD、RSI、KDJ、布林带)
  • 降级机制(TDX失败时自动切换Tushare)

使用示例

from smart_monitor_tdx_data import SmartMonitorTDXDataFetcher

# 初始化
fetcher = SmartMonitorTDXDataFetcher(base_url="http://192.168.1.222:8080")

# 获取实时行情
quote = fetcher.get_realtime_quote('000001')
print(f"当前价: {quote['current_price']} 元")

# 获取K线数据
kline_df = fetcher.get_kline_data('000001', kline_type='day', limit=200)

# 获取技术指标
indicators = fetcher.get_technical_indicators('000001')
print(f"RSI: {indicators['rsi6']:.2f}")

2. 实时监测 - 价格监控

文件: monitor_service.py

功能

  • 自动价格监控(优先使用TDX数据源)
  • 降级机制(TDX失败时切换AKShare/yfinance
  • A股自动识别(6位数字代码)

工作流程

1. 检测股票代码是否为A股(6位数字)
   ↓
2. 如果是A股且TDX已启用 → 使用TDX获取行情
   ↓
3. TDX失败 → 自动降级到AKShare
   ↓
4. 更新数据库 → 检查触发条件 → 发送通知

🔧 配置示例

完整.env配置

# DeepSeek AI配置(必需)
DEEPSEEK_API_KEY=sk-your-api-key

# TDX数据源配置(可选,提升实时监测性能)
TDX_ENABLED=true
TDX_BASE_URL=http://192.168.1.222:8080

# Tushare配置(可选,作为降级数据源)
TUSHARE_TOKEN=your-tushare-token

# 邮件通知配置(可选)
EMAIL_ENABLED=true
SMTP_SERVER=smtp.qq.com
SMTP_PORT=587
EMAIL_FROM=your_email@qq.com
EMAIL_PASSWORD=your_authorization_code
EMAIL_TO=receiver@example.com

# Webhook通知配置(可选)
WEBHOOK_ENABLED=false
WEBHOOK_TYPE=dingtalk
WEBHOOK_URL=your_webhook_url
WEBHOOK_KEYWORD=股票

📈 TDX数据API接口说明

核心接口

接口 方法 说明 示例
/api/quote GET 实时行情 ?code=000001
/api/kline GET K线数据 ?code=000001&type=day
/api/minute GET 分时数据 ?code=000001
/api/trade GET 分时成交 ?code=000001
/api/search GET 股票搜索 ?keyword=平安

实时行情响应示例

{
  "code": 0,
  "message": "success",
  "data": [
    {
      "K": {
        "Close": 12345,    // 收盘价(厘,需除以1000
        "Open": 12300,     // 开盘价(厘)
        "High": 12400,     // 最高价(厘)
        "Low": 12200,      // 最低价(厘)
        "Last": 12350      // 昨收价(厘)
      },
      "TotalHand": 123456, // 成交量(手)
      "Amount": 1234567890 // 成交额(厘)
    }
  ]
}

注意: 价格单位为"厘"(1元 = 1000厘),系统会自动转换。


🚨 常见问题

1. TDX服务无法访问

症状

❌ TDX连接失败,请检查接口地址: http://192.168.1.222:8080

解决方案

  1. 检查TDX Docker容器是否运行:

    docker ps | grep tdx
    
  2. 测试接口可用性:

    curl "http://192.168.1.222:8080/api/quote?code=000001"
    
  3. 检查防火墙设置(确保8080端口开放)

  4. 修改.env中的TDX_BASE_URL为正确的IP地址

2. TDX数据源未启用

症状

⚠️ TDX数据源模块未找到,将使用默认数据源

解决方案

  1. 确认.env中已配置:

    TDX_ENABLED=true
    
  2. 确认smart_monitor_tdx_data.py文件存在

  3. 重启应用

3. TDX获取数据失败,降级到其他数据源

症状

⚠️ TDX获取失败,降级到默认数据源: 000001

原因

  • TDX服务临时不可用
  • 股票代码不存在
  • 网络延迟

解决方案

  • 系统会自动降级到AKShare,无需干预
  • 如频繁降级,检查TDX服务状态

4. 价格数据显示为0

原因

  • TDX接口返回的数据单位为"厘"1元=1000厘)
  • 系统会自动转换,如显示为0可能是数据源问题

解决方案

  1. 检查TDX服务日志
  2. 尝试重启TDX容器:
    docker-compose restart
    

🔍 性能对比

数据源 响应时间 调用限制 稳定性 成本
TDX(本地) <50ms 无限制 免费
AKShare 500-2000ms 频繁限流 免费
Tushare 300-1000ms 积分限制 免费/付费
yfinance 1000-3000ms 有限制 免费

结论: TDX数据源在本地部署时,性能和稳定性远超公网API。


📚 相关资源


📝 版本历史

  • v1.0.0 (2025-11-04): TDX数据源集成完成
    • AI盯盘模块集成TDX实时行情
    • 实时监测模块集成TDX价格获取
    • 降级机制(TDX→Tushare→AKShare
    • 完整技术指标计算

提示: 如有问题,请查看项目 README.md 或联系技术支持。