# gushenzhilu **Repository Path**: onecoding123/gushenzhilu ## Basic Information - **Project Name**: gushenzhilu - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # A股量化交易系统 基于新闻事件驱动的量化选股系统,支持赛道热度分析、周期判断、个股筛选和回测评估。 ## 功能特性 - ✅ **分类体系解析**:支持 read1.json 三级分类体系(行业→细分赛道→子方向) - ✅ **NLP新闻分析**:事件类型识别、情绪分析、赛道映射 - ✅ **热度统计**:多时间窗口热度计算、趋势判断 - ✅ **周期判断**:启动期/主升期/退潮期/震荡期识别 - ✅ **个股筛选**:技术面+基本面+消息面综合筛选 - ✅ **回测评估**:支持按赛道分组回测,计算胜率、收益、回撤等指标 ## 项目结构 ``` project_root/ ├── config/ # 配置文件 │ ├── config.yaml # 主配置文件 │ └── __init__.py ├── parser/ # 数据解析模块 │ ├── classification_parser.py │ └── __init__.py ├── nlp/ # NLP分析模块 │ ├── news_analyzer.py │ └── __init__.py ├── strategy/ # 策略计算模块 │ ├── heat_statistics.py │ ├── cycle_detector.py │ ├── stock_filter.py │ └── __init__.py ├── backtest/ # 回测模块 │ ├── backtester.py │ └── __init__.py ├── utils/ # 工具模块 │ ├── logger.py │ └── __init__.py ├── data/ # 数据目录 ├── logs/ # 日志目录 ├── main.py # 主程序 ├── requirements.txt # 依赖包 └── README.md # 说明文档 ``` ## 安装配置 ### 1. 安装依赖 **基本依赖(必须)** ```bash pip install -r requirements.txt ``` **NLP 依赖(可选,但推荐)** ```bash # 方法1:使用专门的安装脚本(推荐) python install_nlp_dependencies.py # 方法2:手动安装 pip install torch transformers huggingface-hub sentence-transformers ``` **⚠️ 如果遇到安装问题**(特别是 Windows 用户): - **路径过长错误**:运行 `enable_long_paths.ps1`(需要管理员权限)或查看 [FIX_DEPENDENCIES.md](FIX_DEPENDENCIES.md) - **Windows Store Python 问题**:查看 [FIX_DEPENDENCIES.md](FIX_DEPENDENCIES.md) 获取详细解决方案 - 系统会自动降级到关键词匹配模式,基本功能不受影响 ### 2. 配置系统 编辑 `config/config.yaml`: ```yaml # 数据源配置 data_sources: market_data: tushare_token: "your_token_here" # 填写你的 tushare token # 分类体系配置 classification: source_file: "read1.json" # 确保文件路径正确 ``` ### 3. 准备分类体系文件 确保 `read1.json` 文件存在且格式正确。如果只有 `read.md`,需要先转换为 JSON 格式。 ## 快速开始 ### 1. 系统检查 ```bash # 系统检查功能已集成到主程序中 ``` ### 2. 安装依赖(如需要) ```bash python install_dependencies.py ``` ### 3. 运行完整工作流程 ```bash python main.py ``` 详细使用说明请参考 [USAGE_GUIDE.md](USAGE_GUIDE.md) ## 快速开始 ### 1. 系统检查 ```bash # 系统检查功能已集成到主程序中 ``` ### 2. 安装依赖(如需要) ```bash python install_dependencies.py ``` ### 3. 运行完整工作流程 ```bash python main.py ``` 详细使用说明请参考 [USAGE_GUIDE.md](USAGE_GUIDE.md) ## 使用方法 ### 基本使用 ```python from main import StockQuantSystem from datetime import datetime # 初始化系统 system = StockQuantSystem() # 处理新闻 news_list = [ { 'title': 'AI+广告营销行业迎来重大突破', 'text': '蓝色光标发布最新AI营销解决方案...', 'publish_time': datetime.now() } ] result = system.process_news(news_list) # 获取热度排行 ranking = system.get_track_heat_ranking(window_days=7, top_n=20) # 获取候选股票(需要提供市场数据) market_data = { '300058': { 'market_cap': 150, # 亿元 'daily_turnover': 8000, # 万元 'turnover_rate': 0.05, 'pe': 25, 'roe': 0.15, 'debt_ratio': 0.40, 'macd_golden_cross': True, 'break_ma20': True, 'rsi': 55, 'volume_ratio': 1.5 } } candidates = system.get_candidate_stocks('AI+广告营销', market_data) # 检测赛道周期 cycle = system.detect_track_cycle('AI+广告营销', market_data) ``` ### 使用真实数据源 ```python from data_collector.main import DataCollector from main import StockQuantSystem from config import get_config config = get_config() # 初始化数据采集器 collector = DataCollector(config) # 1. 采集股票数据 stock_codes = ['000001', '600000', '000002'] stock_data = collector.collect_stock_data(stock_codes) # 2. 采集新闻数据 news_list = collector.collect_news_data(keywords=['AI', '新能源'], limit=50) # 3. 采集赛道数据 system = StockQuantSystem() track_data = collector.collect_track_stocks_data('AI+广告营销', system.parser) # 4. 完整工作流程 # 处理新闻 result = system.process_news(news_list) # 获取热度排行 ranking = system.get_track_heat_ranking() # 筛选股票 candidates = system.get_candidate_stocks('AI+广告营销', track_data) ``` ### 运行示例程序 ```bash # 基本功能示例 # 直接运行主程序即可 python main.py # 主程序 python main.py ``` ## 配置说明 ### 关键配置项 - **NLP配置**:情绪分析阈值、赛道映射权重 - **热度统计**:时间窗口、事件权重、热度阈值 - **周期判断**:启动期/主升期/退潮期的判断标准 - **个股筛选**:市值范围、流动性要求、技术面/基本面指标 - **回测配置**:持有期、止损止盈、交易规则 详细配置请参考 `config/config.yaml` 中的注释。 ## 数据格式 ### 新闻数据格式 ```python { 'title': '新闻标题', 'text': '新闻正文', 'publish_time': datetime对象 } ``` ### 市场数据格式 ```python { 'stock_code': { 'market_cap': 150, # 市值(亿元) 'daily_turnover': 8000, # 日均成交额(万元) 'turnover_rate': 0.05, # 换手率 'pe': 25, # PE 'roe': 0.15, # ROE 'debt_ratio': 0.40, # 负债率 'macd_golden_cross': True, # MACD金叉 'break_ma20': True, # 突破20日均线 'rsi': 55, # RSI 'volume_ratio': 1.5 # 成交量比率 } } ``` ## 系统工具 ### 系统检查 ```bash # 系统检查功能已集成到主程序中 ``` 检查系统依赖、配置文件、数据文件等是否完整 ### 安装依赖 ```bash python install_dependencies.py ``` 自动安装所有必需的依赖包,包括可选的 NLP 模型 ### 查看结果 ```bash # 一键查看所有结果 # 查看 output/ 目录下的报告文件 # 交互式查看(菜单选择) # 查看 output/ 目录下的报告文件 ``` ## 数据源说明 ### 市场数据源 系统支持两种市场数据源: 1. **akshare**(默认,免费) - 无需 token,直接使用 - 数据更新及时 - 支持股票基本信息、日线数据等 2. **tushare**(需要 token) - 数据更全面,需要注册获取 token - 在 `config/config.yaml` 中配置 `tushare_token` ### 新闻数据源 当前使用 akshare 的新闻接口,支持: - 股票新闻 - 财经新闻 - 关键词搜索 ### 数据采集功能 - ✅ 股票基本信息(名称、行业、市值、PE、PB等) - ✅ 股票日线数据(开高低收、成交量等) - ✅ 技术指标计算(MA、MACD、RSI等) - ✅ 新闻数据采集 - ✅ 批量数据采集 - ✅ 赛道数据采集 ## 扩展开发 ### 添加新的数据源 1. 在 `data_collector/` 目录下创建新的采集模块 2. 实现 `MarketDataCollector` 或 `NewsDataCollector` 接口 3. 在 `config/config.yaml` 中添加配置 4. 更新 `data_collector/main.py` 集成新数据源 ### 自定义筛选策略 1. 修改 `strategy/stock_filter.py` 2. 添加新的筛选条件 3. 更新配置文件中的筛选参数 ### 添加新的NLP模型 1. 在 `nlp/news_analyzer.py` 中实现模型接口 2. 更新配置文件中的模型选择 3. 支持 LLM API(如通义千问、文心一言等) ## 注意事项 1. **数据合规**:遵守各数据源的API使用规范 2. **风险提示**:系统输出仅供参考,不构成投资建议 3. **性能优化**:大量数据处理时建议启用多进程 4. **日志监控**:定期检查日志文件,及时发现问题 ## 问题反馈 如有问题或建议,请查看日志文件 `logs/system.log` 获取详细错误信息。 ## 许可证 MIT License # 采集指定日期范围的数据(板块+个股) python collect_historical_kpl_data.py --start-date 2025-01-01 --end-date 2025-01-31 # 仅采集板块数据 python collect_historical_kpl_data.py --start-date 2025-01-01 --end-date 2025-01-31 --sectors-only # 仅采集个股数据 python collect_historical_kpl_data.py --start-date 2025-01-01 --end-date 2025-01-31 --stocks-only