# ai-trading **Repository Path**: stock-data/ai-trading ## Basic Information - **Project Name**: ai-trading - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-03 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Trading 数据获取系统 ## 📋 项目概述 AI Trading 数据获取系统是一个基于QMT极简版的综合性股票数据获取和分析平台。系统提供实时行情、历史数据、市场情绪、财务数据、ETF数据等多维度数据获取功能,支持数据监控、分析和报告导出。 ### 🎯 项目特色 - **多维度数据**: 实时行情、历史数据、财务分析、市场情绪、ETF数据 - **真实市场连接**: 通过QMT极简版获取真实市场数据 - **智能数据处理**: 自动缓存、数据清洗、格式转换 - **完整监控体系**: 47只股票全方位监控 - **丰富报告输出**: CSV、JSON、数据库多种格式 - **完善日志系统**: 详细记录所有操作和错误 - **技术指标计算**: 支持MA、MACD、RSI、KDJ、布林带等多种技术指标 - **高级缓存管理**: 多级缓存、LRU策略、TTL过期等高级功能 - **数据可视化**: K线图、技术指标图表、成交量分析等多种可视化功能 - **完善错误处理**: 异常分类、错误恢复、重试机制、错误监控 ## 🚀 主要功能 ### 📊 数据获取功能 - **实时行情数据**: 分笔成交、盘口、分时K线 - **历史数据**: 日线/周线/月线OHLC数据 - **市场情绪数据**: 涨停跌停统计、板块资金流向 - **财务数据**: 市盈率、财务报表、重大公告 - **ETF数据**: 指数走势、成分股权重、期货对冲 ### 🛠️ 系统特性 - **真实QMT连接**: 连接到QMT极简版获取真实市场数据 - **47只股票监控**: 涵盖A股、ETF、科创板、创业板、新能源、医药生物 - **智能缓存**: 提高数据获取效率 - **完整日志**: 详细记录所有操作 - **数据库支持**: SQLite本地存储 - **报告导出**: CSV、JSON、Pickle格式 - **技术分析**: 移动平均线、MACD、RSI、KDJ、布林带等技术指标 - **高级缓存**: 内存+磁盘多级缓存,LRU淘汰策略,TTL过期机制 - **数据可视化**: 专业K线图、技术指标图表、成交量分析图表 - **错误处理**: 智能错误分类、自动重试机制、错误监控告警 ## 📁 项目结构 ``` ai-trading/ ├── main.py # 主系统模块 ├── config.py # 配置文件 ├── utils.py # 工具函数 ├── error_handler.py # 错误处理机制 ├── cache_manager.py # 高级缓存管理器 ├── data_visualization.py # 数据可视化模块 ├── technical_indicators.py # 技术指标计算模块 ├── system_optimization.py # 系统优化模块 ├── data_quality_monitor.py # 数据质量监控 ├── alert_system.py # 警报系统 ├── qmt_connection_manager.py # QMT连接管理 ├── websocket_client.py # WebSocket客户端 ├── real_time_data.py # 实时数据管理 ├── historical_data.py # 历史数据管理 ├── sentiment_data.py # 市场情绪数据 ├── financial_data.py # 财务数据管理 ├── etf_data.py # ETF数据管理 ├── analyze_data.py # 数据分析工具 ├── setup.py # 安装脚本 ├── __init__.py # 包初始化文件 ├── .gitignore # Git忽略文件 ├── web_requirements.txt # Web依赖文件 ├── API文档.md # API详细文档 ├── 项目清理报告.md # 项目清理报告 ├── README.md # 项目文档 ├── data/ # 数据存储目录 │ ├── real_time/ # 实时数据 │ ├── historical/ # 历史数据 │ ├── sentiment/ # 情绪数据 │ ├── financial/ # 财务数据 │ ├── etf/ # ETF数据 │ └── ai_trading.db # SQLite数据库 ├── logs/ # 日志目录 ├── cache/ # 缓存目录 └── charts/ # 图表输出目录 ``` ## 🛠️ 安装配置 ### 1. 环境要求 - **Python**: 3.6+ (推荐3.8+) - **QMT极简版**: 已安装并配置 - **conda环境**: qmt-guojin - **操作系统**: Windows 10/11 - **内存**: 建议4GB以上 - **存储**: 至少2GB可用空间 ### 2. 快速安装 #### 步骤1: 克隆项目 ```bash git clone https://github.com/your-username/ai-trading.git cd ai-trading ``` #### 步骤2: 激活conda环境 ```bash conda activate qmt-guojin ``` #### 步骤3: 运行主程序 ```bash python main.py ``` ### 3. 配置QMT连接 编辑 `config.py` 文件,修改以下配置: ```python # QMT连接配置 QMT_PATH = r'D:\qmt-guojin\userdata_mini' # 您的QMT路径 ACCOUNT_ID = 'your_account_id' # 您的账户ID ``` ### 4. 验证安装 ```bash # 运行数据分析 python analyze_data.py ``` ## 🚀 使用指南 ### 启动方式 #### 方式1: 主程序启动(推荐) ```bash python main.py ``` **特点**: 完整的系统功能,包含所有数据获取和分析功能 #### 方式2: 数据分析 ```bash python analyze_data.py ``` **特点**: 专注于数据分析,生成分析报告 ### 数据获取示例 #### 1. 基础使用 ```python from xtquant import xtdata from xtquant.xttrader import XtQuantTrader from main import AITradingDataSystem import time # 初始化QMT连接 path = r'D:\qmt-guojin\userdata_mini' session_id = int(time.time() * 1000) xt_trader = XtQuantTrader(path, session_id) xt_trader.start() xt_trader.connect() # 创建数据系统 data_system = AITradingDataSystem(xtdata, xt_trader) # 获取综合市场数据 codes = ['000001.SZ', '600036.SH', '510300.SH'] market_data = data_system.get_comprehensive_market_data(codes) ``` #### 2. 实时数据获取 ```python # 获取Level1盘口数据 level1_data = data_system.real_time_manager.get_level1_data(['000001.SZ']) # 获取分笔数据 tick_data = data_system.real_time_manager.get_tick_data(['000001.SZ'], count=100) # 获取分钟K线 minute_data = data_system.real_time_manager.get_minute_data(['000001.SZ'], period='1m', count=100) ``` #### 3. 历史数据获取 ```python # 获取日线数据 daily_data = data_system.historical_manager.get_daily_data(['000001.SZ'], count=100) # 获取周线数据 weekly_data = data_system.historical_manager.get_weekly_data(['000001.SZ'], count=52) # 获取月线数据 monthly_data = data_system.historical_manager.get_monthly_data(['000001.SZ'], count=24) ``` #### 4. 市场情绪数据 ```python # 获取市场情绪 sentiment_data = data_system.sentiment_manager.get_market_sentiment() # 获取涨停跌停统计 limit_stats = data_system.sentiment_manager.get_limit_up_down_stats() # 获取板块资金流向 sector_flow = data_system.sentiment_manager.get_sector_capital_flow() ``` #### 5. 财务数据 ```python # 获取财务指标 financial_indicators = data_system.financial_manager.get_financial_indicators(['000001.SZ']) # 获取市盈率市净率 pe_pb_data = data_system.financial_manager.get_pe_pb_data(['000001.SZ']) # 获取财务报表 financial_statements = data_system.financial_manager.get_financial_statements(['000001.SZ']) ``` #### 6. ETF数据 ```python # 获取ETF基本信息 etf_info = data_system.etf_manager.get_etf_basic_info() # 获取指数走势 index_data = data_system.etf_manager.get_index_trend_data(['000300.SH'], count=100) # 获取成分股权重 component_weights = data_system.etf_manager.get_component_weights('510300.SH') ``` #### 7. 数据监控 ```python # 启动数据监控 data_system.start_data_monitor(['000001.SZ', '600036.SH'], interval=60) ``` #### 8. 数据导出 ```python # 导出综合报告 data_system.export_data_report('comprehensive') # 导出市场概览报告 data_system.export_data_report('market_overview') # 导出股票分析报告 data_system.export_data_report('stock_analysis') ``` ## 📈 监控股票列表 ### A股 (15只) - 000001.SZ - 平安银行 - 000002.SZ - 万科A - 600000.SH - 浦发银行 - 600036.SH - 招商银行 - 000858.SZ - 五粮液 - 000568.SZ - 泸州老窖 - 600519.SH - 贵州茅台 - 000725.SZ - 京东方A - 002415.SZ - 海康威视 - 000063.SZ - 中兴通讯 - 002594.SZ - 比亚迪 - 300059.SZ - 东方财富 - 000166.SZ - 申万宏源 - 600030.SH - 中信证券 - 000776.SZ - 广发证券 ### ETF (8只) - 510300.SH - 沪深300ETF - 510500.SH - 中证500ETF - 159919.SZ - 沪深300ETF - 159915.SZ - 创业板ETF - 510880.SH - 红利ETF - 512100.SH - 中证1000ETF - 588000.SH - 科创50ETF - 159949.SZ - 创业板50ETF ### 科创板 (6只) - 688001.SH - 华兴源创 - 688002.SH - 睿创微纳 - 688981.SH - 中芯国际 - 688111.SH - 金山办公 - 688012.SH - 中微公司 - 688363.SH - 华熙生物 ### 创业板 (6只) - 300001.SZ - 特锐德 - 300002.SZ - 神州泰岳 - 300059.SZ - 东方财富 - 300750.SZ - 宁德时代 - 300760.SZ - 迈瑞医疗 - 300015.SZ - 爱尔眼科 ### 新能源 (6只) - 300750.SZ - 宁德时代 - 002594.SZ - 比亚迪 - 300274.SZ - 阳光电源 - 002129.SZ - 中环股份 - 600438.SH - 通威股份 - 002460.SZ - 赣锋锂业 ### 医药生物 (6只) - 300760.SZ - 迈瑞医疗 - 300015.SZ - 爱尔眼科 - 002007.SZ - 华兰生物 - 600276.SH - 恒瑞医药 - 000661.SZ - 长春高新 - 300122.SZ - 智飞生物 ## 📁 数据文件说明 ### 数据目录结构 ``` data/ ├── real_time/ # 实时数据 ├── historical/ # 历史数据 ├── sentiment/ # 情绪数据 ├── financial/ # 财务数据 ├── etf/ # ETF数据 └── ai_trading.db # SQLite数据库 ``` ### 生成的文件类型 - **CSV文件**: 财务数据、ETF数据、市场概览 - **JSON文件**: 综合报告、配置数据 - **数据库**: SQLite格式,存储结构化数据 - **日志文件**: 系统运行日志 ## 🔧 配置说明 ### 主要配置项 ```python # QMT连接配置 QMT_PATH = r'D:\qmt-guojin\userdata_mini' # QMT安装路径 ACCOUNT_ID = '8883153297' # 资金账号 # 数据更新频率 UPDATE_FREQUENCY = { 'real_time': 1, # 实时数据更新频率(秒) 'tick': 0.5, # 分笔数据更新频率(秒) 'minute': 60, # 分钟数据更新频率(秒) 'daily': 86400, # 日线数据更新频率(秒) 'sentiment': 300, # 情绪数据更新频率(秒) 'financial': 86400 # 财务数据更新频率(秒) } # 缓存配置 CACHE_CONFIG = { 'enable_cache': True, 'cache_expire': 3600, # 缓存过期时间(秒) 'max_cache_size': 1000 # 最大缓存条目数 } ``` ## 📊 数据分析 ### 数据分析工具 ```bash # 运行数据分析 python analyze_data.py ``` ### 分析内容 - 财务数据分析(ROE、毛利率、净利率等) - 市场概览分析(指数、情绪、成交量等) - ETF数据分析(规模、表现等) - 生成汇总报告 ## 🐛 故障排除 ### 常见问题 #### 1. QMT连接失败 **症状**: `QMT模块导入失败: No module named 'xtquant'` **解决方案**: - 确保QMT极简版已正确安装 - 检查QMT路径是否正确 - 确认conda环境已激活: `conda activate qmt-guojin` - 重启QMT客户端并重新登录 #### 2. 模块导入错误 **症状**: `ImportError: cannot import name 'xxx'` **解决方案**: - 确保在正确的conda环境中 - 检查Python路径设置 - 重新安装依赖包 #### 3. 数据获取失败 **症状**: `获取数据失败` 或 `连接超时` **解决方案**: - 检查股票代码格式是否正确 - 确认QMT连接状态 - 查看日志文件获取详细错误信息 - 检查网络连接 #### 4. 内存不足 **症状**: `MemoryError` 或系统卡顿 **解决方案**: - 减少监控股票数量 - 增加系统内存 - 调整缓存配置 - 定期清理数据文件 #### 5. 权限问题 **症状**: `Permission denied` 或 `Access denied` **解决方案**: - 以管理员身份运行 - 检查文件权限 - 确保有写入data目录的权限 ### 日志文件 - **位置**: `logs/ai_trading.log` - **级别**: INFO, WARNING, ERROR - **内容**: 系统运行日志、错误信息 ### 调试技巧 ```bash # 查看详细日志 tail -f logs/ai_trading.log # 检查环境 python -c "import sys; print(sys.path)" ``` ## 📞 技术支持 ### 联系方式 - **项目维护**: AI Trading Team - **技术支持**: 查看日志文件和错误信息 - **问题反馈**: 提交Issue到GitHub ### 社区资源 - **文档**: 查看 `API文档.md` - **配置**: 查看 `config.py` 配置文件 ## 📄 更新日志 ### v1.2.0 (2025-08-04) - 🧹 **项目清理**: 删除了80+个测试脚本和演示文件 - 🧹 **结构优化**: 清理了临时文件和重复代码 - 📝 **文档更新**: 更新了README.md和项目结构 - ✅ **代码精简**: 保留核心功能,移除无用代码 ### v1.1.0 (2025-08-03) - ✅ 修复JSON序列化错误 - ✅ 修复变量作用域问题 - ✅ 注释掉监控系统避免长时间运行 - ✅ 完善错误处理和日志记录 - ✅ 优化数据导出功能 ### v1.0.0 (2025-08-01) - 🎉 初始版本发布 - ✅ 支持47只股票监控 - ✅ 完整的QMT连接和数据获取 - ✅ 多维度数据分析 - ✅ 实时数据监控功能 - ✅ 数据报告导出功能 ## 📄 许可证 本项目仅供学习和研究使用,请遵守相关法律法规。 ### 免责声明 - 本系统仅用于数据获取和分析,不构成投资建议 - 使用者需自行承担投资风险 - 请遵守相关法律法规和交易所规则 --- **AI Trading 数据获取系统** - 让数据获取更简单、更高效! ⭐ 如果这个项目对您有帮助,请给我们一个星标!