# A股量化交易策略系统 ## 项目简介 本项目是一个模块化的A股量化交易策略执行系统,支持定时执行多种策略任务,主要包括: - 📊 **数据获取**: 基于TuShare的股票数据获取 - 🎯 **股票池管理**: 多种股票筛选规则(热榜、龙头股等) - 📈 **策略分析**: K线形态识别等技术分析策略 - ⏰ **任务调度**: 灵活的定时任务执行 - 📱 **结果通知**: 多种通知方式支持 ## 快速开始 ### 启动策略测试系统 ```bash python main.py ``` ### 基本命令 ```bash # 分析单只股票 scan 000001.SZ # 扫描热门股票(默认20只) market 30 # 查看可用股票池规则 pools # 执行策略任务 task tushare_hot 15 # 查看定时任务示例 schedule # 显示帮助 help # 退出程序 quit ``` ## 系统架构 ``` 数据层: TushareFetcher + StockPoolManager 策略层: BaseStrategy + KLinePatternStrategy 执行层: TaskScheduler + StrategyExecutor 通知层: NotificationManager ``` ### 核心组件 - **TushareFetcher**: TuShare API数据获取器 - **StockPoolManager**: 股票池管理器,支持多种筛选规则 - **KLinePatternStrategy**: K线形态识别策略 - **StrategyExecutor**: 策略执行协调器 - **TaskScheduler**: 定时任务调度器 ## 股票池规则 - `tushare_hot`: 同花顺热榜 - `combined_hot`: 合并热门(同花顺+东财) - `leading_stocks`: 龙头牛股 - 支持自定义股票列表 ## 策略功能 ### K线形态策略 - 识别"两阳线+阴线+阳线"突破形态 - 创新高回踩确认机制 - 多时间周期分析支持 - 回踩监控功能 ## 配置文件 主要配置文件位于 `config/config.yaml`: ```yaml # TuShare配置 tushare: token: "your_token_here" # 策略配置 strategy: kline_pattern: min_entity_ratio: 0.55 final_yang_min_ratio: 0.40 max_turnover_ratio: 40.0 timeframes: ["daily"] # 通知配置 notification: dingtalk: enabled: true webhook_url: "your_webhook_url" ``` ## 定时任务示例 查看 `examples/` 目录下的配置示例: - `examples/new_architecture_example.py`: 完整架构演示 - `examples/task_config_examples.py`: 常见任务配置 ## 使用示例 ### 1. 分析单只股票 ```bash > scan 000001.SZ 🔍 分析股票: 000001.SZ ---------------------------------------- 📊 DAILY: 发现 1 个信号 1. 2024-01-15 | 两阳+阴+阳突破 | 价格: 12.50元 📈 总计: 1 个信号 ``` ### 2. 扫描市场热门股票 ```bash > market 20 🌍 扫描市场热门股票 (前20只) -------------------------------------------------- 📊 扫描结果: 股票池: 同花顺热榜 总扫描: 20 只 有信号: 3 只 信号数: 5 个 耗时: 15.23 秒 ``` ### 3. 执行策略任务 ```bash > task leading_stocks 10 ⚡ 执行策略任务 股票池规则: leading_stocks 最大股票数: 10 ---------------------------------------- ✅ 任务完成: 任务ID: manual_leading_stocks_10 成功: 是 耗时: 8.45 秒 信号数: 2 个 ``` ## 开发指南 ### 添加新策略 1. 继承 `BaseStrategy` 基类 2. 实现 `analyze_stock()` 方法 3. 注册到 `StrategyExecutor` ### 添加新股票池规则 1. 继承 `StockPoolRule` 基类 2. 实现 `get_stocks()` 方法 3. 注册到 `StockPoolManager` ## 注意事项 - 确保配置文件中的TuShare token有效 - 策略分析需要足够的历史数据 - 定时任务需要稳定的网络连接 - 建议在交易时间外进行大量数据扫描 ## 许可证 MIT License