# StockMarket **Repository Path**: c2c4/StockMarket ## Basic Information - **Project Name**: StockMarket - **Description**: 量化股票交易策略系统 - 基于通达信策略的Python量化选股框架(wml - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通达信策略股票选择系统 基于通达信20因子组合策略的Python量化选股系统。集成数据获取、因子计算、信号生成和选股输出功能。 ## 🎯 项目特色 - **科学的数据管理**: 批量获取并持久化存储股票数据,避免重复API调用 - **精准的策略复现**: 完整实现通达信20因子组合策略 - **智能的信号生成**: 多维度评分系统(趋势+动量+成交量) - **便捷的命令行工具**: 一键初始化、数据更新、选股分析 ## 📊 策略说明 ### 通达信20因子策略 基于以下12个严格的AND组合条件: 1. **价格反转模式**: 前期连续下跌后今日上涨 2. **均线趋势确认**: 5日、13日、132日均线都上涨 3. **价格位置**: 收盘价高于中长期均线 4. **突破模式**: 开盘在5日均线下但收盘突破均线 5. **量价配合**: 成交量连续放大 6. **风险控制**: 限制单日最大跌幅 ### 威廉指标优化 (Williams %R) 威廉指标作为优先排序因子,避免高位买入: - **WR1 (14日)** 和 **WR2 (9日)** 双周期计算 - **负值刻度**: 取值范围0到-100,标准威廉指标公式 - **超买区间**: -20到0,警惕顶部风险 - **超卖区间**: -100到-80,关注底部机会 - **优先排序**: 威廉指标越接近-100,排名越靠前 ### 评分体系 - 基础信号(40%): 通达信策略信号 - 趋势强度(30%): 多周期均线趋势一致性 - 动量强度(20%): 价格变化幅度和方向 - 成交量强度(10%): 量价配合程度 - **威廉排序**: WR指标用于优先级排序,底部优先 ## 🚀 快速开始 ### 环境要求 ```bash Python 3.8+ pip install -r requirements.txt ``` ### 系统初始化 ```bash # 初始化系统 python main.py init # 更新股票列表 python main.py update-data --list # 更新历史数据(全量) python main.py update-data --daily --all # 查看系统状态 python main.py status ``` ### 执行选股 ```bash # 执行今日选股 python main.py select # 分析单只股票 python main.py analyze 000001.SZ ``` ## 📁 项目结构 ``` StockMarket/ ├── main.py # 主程序入口 ├── src/ │ ├── config.py # 项目配置 │ ├── data/ # 数据模块 │ │ ├── tushare_client.py # Tushare数据客户端 │ │ ├── data_manager.py # 数据管理器 │ │ └── data_utils.py # 数据处理工具 │ ├── factors/ # 因子库 │ │ ├── tdx_factors.py # 通达信因子实现 │ │ └── 通达信策略因子.py # 框架集成版本 │ ├── signals/ # 信号库 │ │ └── tdx_signal.py # 信号生成器 │ ├── engine/ # 选股引擎 │ │ └── stock_selector.py # 选股引擎主程序 │ └── cli/ # 命令行工具 │ ├── data_cli.py # 数据管理CLI │ └── stock_cli.py # 选股CLI ├── tests/ # 测试模块 ├── data/ # 数据存储目录 │ ├── cache/ # 缓存目录 │ └── output/ # 输出目录 └── requirements.txt # 依赖包列表 ``` ## ⚙️ 配置说明 ### Tushare配置 在 `src/config.py` 中配置您的Tushare token: ```python TUSHARE_TOKEN = "your_tushare_token_here" ``` ### 数据库配置 系统使用SQLite数据库存储数据,默认路径: `data/stock_market.db` ## 📈 使用流程 ### 1. 数据准备 ```bash # 更新股票列表(约5000只A股) python main.py update-data --list # 更新全部股票历史数据(建议分批更新) python main.py update-data --daily --all # 增量更新特定股票 python main.py update-data --daily --stocks "000001.SZ,000002.SZ" ``` ### 2. 选股分析 ```bash # 执行完整选股流程 python main.py select # 输出示例: 📊 通达信策略今日选股结果(威廉指标优化版) ==================================================================================================== 🕐 分析时间: 2025-07-01 15:30:00 📈 推荐股票: 5只 🔍 策略说明: 通达信主策略信号 + 威廉指标优先排序,避免买在高位 |排名|股票代码|股票名称|最新价|信号强度|行业|地区|强买入|威廉指标| |--|--|--|--|--|--|--|--|--| |1|603669.SH|灵康药业|5.40|0.816|化学制药|西藏|是|WR1:-17.4/WR2:-0.0| |2|603444.SH|吉比特|316.71|0.758|互联网|福建|是|WR1:-0.0/WR2:-0.0| 📊 威廉指标说明: - WR1/WR2: 14日/9日威廉指标值 (取值范围:0到-100) - 接近0(如-10,-20):超买区间,顶部风险 - 接近-100(如-80,-90):超卖区间,底部机会 ``` ### 3. 单股分析 ```bash # 分析特定股票的信号详情 python main.py analyze 000001.SZ ``` ## 🔧 高级功能 ### 数据管理 ```bash # 检查数据状态 python main.py status # 强制更新数据 python main.py update-data --daily --force # 指定日期范围 python main.py update-data --daily --start-date 20240101 --end-date 20240630 ``` ### 输出文件格式 选股结果自动保存为CSV文件,表头格式: ```csv 排名,股票代码,股票名称,最新价,信号强度,行业,地区,强买入,威廉指标 1,603669.SH,灵康药业,5.40,0.816,化学制药,西藏,1,WR1:-17.4/WR2:-0.0 ``` ### 自定义配置 在 `src/config.py` 中可以调整: - 数据存储路径 - 选股参数 - API调用频率 - 威廉指标阈值 ## ⚠️ 注意事项 1. **数据获取**: 首次运行需要较长时间获取全量数据 2. **API限制**: Tushare API有调用频率限制,建议分批更新 3. **投资风险**: 策略结果仅供参考,投资有风险 4. **数据质量**: 建议定期更新数据保持时效性 ## 📝 更新日志 ### v1.2.0 (2025-07-01) - ✅ 修正威廉指标为标准负值刻度(-100到0) - ✅ 威廉指标改为优先排序因子,不强制过滤 - ✅ 统一输出表格格式,去除无用空格 - ✅ CSV文件表头与显示表格完全一致 - ✅ 完善项目知识文档和环境配置 ### v1.1.0 (2024-06-30) - ✅ 新增威廉指标(Williams %R)择时功能 - ✅ 优化数据下载性能,支持5100积分高频API - ✅ 创建无限制速度测试器验证API容量 - ✅ 完善信号增强算法,提升选股精准度 ### v1.0.0 (2024-06-30) - ✅ 完成通达信20因子策略实现 - ✅ 集成数据获取和持久化存储 - ✅ 实现多维度信号生成系统 - ✅ 提供完整的命令行工具 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ## 📄 许可证 本项目仅供学习研究使用,请勿用于商业用途。