Skip to content

量化股票交易策略系统 - 基于通达信策略的Python量化选股框架(wml

Notifications You must be signed in to change notification settings

wangminli/StockMarket

Repository files navigation

通达信策略股票选择系统

基于通达信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指标用于优先级排序,底部优先

🚀 快速开始

环境要求

Python 3.8+
pip install -r requirements.txt

系统初始化

# 初始化系统
python main.py init

# 更新股票列表
python main.py update-data --list

# 更新历史数据(全量)
python main.py update-data --daily --all

# 查看系统状态
python main.py status

执行选股

# 执行今日选股
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:

TUSHARE_TOKEN = "your_tushare_token_here"

数据库配置

系统使用SQLite数据库存储数据,默认路径: data/stock_market.db

📈 使用流程

1. 数据准备

# 更新股票列表(约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. 选股分析

# 执行完整选股流程
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. 单股分析

# 分析特定股票的信号详情
python main.py analyze 000001.SZ

🔧 高级功能

数据管理

# 检查数据状态
python main.py status

# 强制更新数据
python main.py update-data --daily --force

# 指定日期范围
python main.py update-data --daily --start-date 20240101 --end-date 20240630

输出文件格式

选股结果自动保存为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!

📄 许可证

本项目仅供学习研究使用,请勿用于商业用途。

About

量化股票交易策略系统 - 基于通达信策略的Python量化选股框架(wml

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published