174 lines
3.4 KiB
Markdown
174 lines
3.4 KiB
Markdown
# 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 |