# 股票估值分析模块

这个模块用于分析单一股票的历史PE、PB分位数，生成分析结果和可视化图表。

## 功能特点

- 获取单一股票的历史PE、PB数据
- 计算PE、PB的历史分位数
- 生成包含六根线的估值分析图：
  - 股票PE/PB线
  - 历史最大值线
  - 历史最小值线
  - 均值线
  - 第一四分位线
  - 第三四分位线
- 计算当前估值的百分位数
- 支持输出结果为图表和文本/JSON报告

## 使用方法

### 命令行方式

```bash
# 基本用法（分析股票代码为601138的PE和PB）
python -m src.valuation_analysis.cli --stock 601138

# 设置起始日期
python -m src.valuation_analysis.cli --stock 601138 --start-date 2020-01-01

# 仅分析PE
python -m src.valuation_analysis.cli --stock 601138 --metrics pe

# 保存为JSON格式
python -m src.valuation_analysis.cli --stock 601138 --format json

# 指定输出路径
python -m src.valuation_analysis.cli --stock 601138 --output my_analysis.json --format json
```

### 代码调用方式

```python
from src.valuation_analysis.pe_pb_analysis import ValuationAnalyzer

# 创建分析器
analyzer = ValuationAnalyzer()

# 分析单只股票
result = analyzer.analyze_stock_valuation('601138')

# 打印结果
print(f"股票代码: {result['stock_code']}")
print(f"股票名称: {result['stock_name']}")
print(f"当前PE: {result['metrics']['pe']['current']:.2f}")
print(f"PE百分位: {result['metrics']['pe']['percentile']:.2f}%")
print(f"PE图表: {result['metrics']['pe']['chart_path']}")
```

## 输出结果

### 图表输出

- PE分析图表：保存在`results/valuation_analysis/`目录下
- PB分析图表：保存在`results/valuation_analysis/`目录下

### 文本/JSON输出

分析结果包含以下信息：

- 股票基本信息（代码、名称）
- PE指标分析结果
  - 当前PE值
  - PE百分位数
  - 历史最大/最小值
  - 历史均值/中位数
  - 第一/第三四分位数
  - 图表路径
- PB指标分析结果
  - 当前PB值
  - PB百分位数
  - 历史最大/最小值
  - 历史均值/中位数
  - 第一/第三四分位数
  - 图表路径

## 后续开发计划

- 支持添加同行业平均PE和PB比较
- 支持批量分析多只股票
- 支持更多估值指标（如PS、PCF等）
- 添加定期运行和报告生成功能

## Web界面使用

现在，估值分析功能也可以通过Web界面访问，提供了友好的用户交互界面和图表展示：

1. 启动Web服务器：
```bash
python src/app.py
```

2. 在浏览器中访问：
```
http://localhost:5000
```

3. 在Web界面中：
   - 输入股票代码（如SH603986）
   - 选择开始日期
   - 选择估值指标（PE或PB）
   - 可选择输入行业名称或概念板块名称进行对比
   - 点击"分析"按钮获取结果

4. 结果展示：
   - 股票估值历史走势图（基于ECharts）
   - 估值分位数据表格
   - 行业/概念统计信息（如适用）

Web界面使用了Bootstrap和ECharts，提供响应式设计，支持在各种设备上使用。 