# 关羽 - 价值+技术综合选股策略

## 策略概述

基于五虎上将多因子选股体系第二部分实现的综合选股策略，采用**价值筛选 + 技术确认**双轮驱动模式，在控制风险的前提下追求稳健收益。

### 核心框架

```
价值筛选（缩小范围）→ 技术确认（入场点）→ 仓位控制（风险管理）→ 入场执行 → 持仓监控（出场）
```

### 预期绩效

| 指标 | 数值 |
|------|------|
| 年化收益 | 14-17% |
| 最大回撤 | 28-38% |
| 夏普比率 | 0.75-0.85 |
| 卡玛比率 | 0.4-0.5 |

## 策略特点

### 1. 价值筛选（风控前置）

**排除高风险股票**：
- ❌ ST/*ST股票
- ❌ 商誉>20%
- ❌ 大股东质押>50%
- ❌ 连续亏损
- ❌ 低流动性（流通市值<10亿）

**估值指标筛选**：
- ✅ PE < 阈值（根据风险偏好）
- ✅ PB < 阈值（根据风险偏好）
- ✅ ROE > 阈值（根据风险偏好）

### 2. 技术确认（入场时机）

**技术信号过滤**：
- ✅ 股价站在20日均线上（短期趋势向上）
- ✅ 近一个月跌幅不超过20%（排除暴跌趋势）
- ✅ 无极端放量（排除主力出货）
- ✅ MAC MACD金叉或MACD在零轴上方（可选增强）

### 3. 仓位控制（风险管理）

**三种风险偏好**：

| 项目 | 保守型 | 平衡型 | 进取型 |
|------|--------|--------|--------|
| PE上限 | < 15 | < 25 | < 35 |
| PB上限 | < 1.5 | < 2.5 | < 3 |
| ROE下限 | > 12% | > 10% | > 8% |
| 单票上限 | 5-8% | 10-15% | 20-25% |
| 行业上限 | 20% | 25% | 30% |
| 股票数量 | 15-20只 | 10-15只 | 5-10只 |
| 止损幅度 | 5% | 6% | 8% |

### 4. 入场出场规则

**入场条件**：
- 通过价值筛选
- 通过技术信号确认
- 仓位计算满足风控要求

**出场条件**：
- 止损：收盘价跌破20日均线 或 单笔亏损5-8%
- 止盈：收益达到30%（可选）

## 使用方法

### 1. 安装依赖

```bash
pip install akshare pandas numpy
```

### 2. 基础使用

```python
from guanyu_value_tech_strategy import GuanYuValueTechStrategy

# 创建策略实例
strategy = GuanYuValueTechStrategy(
    risk_profile='balanced',  # 保守型/平衡型/进取型
    total_capital=1000000.0   # 总资金（元）
)

# 运行策略
result = strategy.run()

# 查看结果
if result['success']:
    print(f"选中股票: {len(result['final_stocks'])} 只")
    print(f"生成订单: {len(result['orders'])} 个")
    
    # 打印订单详情
    strategy.print_orders(result['orders'])
```

### 3. 运行完整策略

```bash
# 进入策略目录
cd /path/to/sanguo_quant_live/strategies

# 运行策略
python guanyu_value_tech_strategy.py
```

### 4. 查看结果

结果将保存到：
```
sanguo_quant_live/results/guanyu_strategy_result.csv
```

## 代码结构

```
guanyu_value_tech_strategy.py
├── RiskProfile           # 风险偏好配置类
├── ValueFilter           # 价值筛选器
│   ├── filter_basic_risks()       # 排除基本风险
│   ├── filter_valuation_metrics() # 估值指标筛选
│   └── filter_quality_metrics()   # 质量指标筛选
├── TechnicalFilter       # 技术信号过滤器
│   ├── check_trend_up()          # 检查趋势向上
│   ├── check_recent_drawdown()   # 检查回撤
│   ├── check_volume_surge()      # 检查放量
│   └── check_macd_signal()       # 检查MACD信号
├── PositionManager       # 仓位管理器
│   ├── calculate_position_size() # 计算仓位
│   ├── calculate_stop_loss()     # 计算止损价
│   └── generate_entry_orders()   # 生成入场订单
└── GuanYuValueTechStrategy # 主策略类
```

## 注意事项

### A股市场特征

1. **T+1制度**：当天买入次日才能卖出，影响短期策略效果
2. **涨跌停板**：极端行情可能无法及时止损，需要预留缓冲
3. **流动性**：必须过滤小市值股票，防止无法卖出
4. **数据延迟**：免费数据源可能有延迟，实际使用需注意

### 数据依赖

当前使用 **akshare** 作为数据源：
- 股票列表：`ak.stock_zh_a_spot_em()`
- 历史行情：`ak.stock_zh_a_hist()`
- 财务指标：需补充 `ak.stock_financial_analysis_indicator()`

### 风控建议

1. **严格止损**：达到止损条件坚决执行，不抱侥幸心理
2. **分散持仓**：单票仓位不超过风险偏好限制
3. **行业分散**：避免过度集中在单一行业
4. **总仓位控制**：市场极端情况下主动降低总仓位

## 扩展优化方向

1. **财务数据补充**：接入完整的财务指标数据（ROE、商誉、质押率等）
2. **行业分类**：实现行业集中度控制
3. **因子增强**：增加更多技术因子（KDJ、布林带、RSI等）
4. **回测验证**：实现完整的历史回测框架
5. **实盘对接**：对接券商交易接口实现自动化交易

## 贡献者

- **关羽**：策略设计者，价值+技术综合选股框架
- **庞统**：代码实现与整合

## 版本

- v1.0.0 (2026-03-24) - 初始版本，实现核心功能

---

*"威震华夏，义薄云天" — 关羽策略，价值为基，技术为锋，风控为盾* ⚔️
