褚宏光 22582851a1 Enhance converging triangle detection with new features and documentation updates
- Introduced an interactive HTML stock viewer for visualizing strength scores and filtering stocks based on user-defined thresholds.
- Added `--all-stocks` parameter to generate charts for all 108 stocks, including those not meeting convergence criteria.
- Implemented a new scoring system for breakout strength, incorporating fitting adherence to improve accuracy.
- Updated multiple documentation files, including usage instructions and feature overviews, to reflect recent enhancements.
- Improved error handling and file naming conventions to ensure compatibility across platforms.
2026-01-27 16:17:28 +08:00

229 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用说明
## 快速启动
```powershell
.\.venv\Scripts\Activate.ps1
python scripts/pipeline_converging_triangle.py
```
**新功能**:清空输出目录并重新生成(确保使用最新算法)
```powershell
# 完整重新生成(清空旧数据) | CSV所有108只股票的检测结果包括不满足条件的图表只为满足条件的股票生成比如31只HTML只显示满足条件的31只
python scripts/pipeline_converging_triangle.py --clean
# 清空后为所有股票生成图表 | CSV所有108只股票的检测结果 图表为所有108只股票生成图包括不满足条件的满足条件的完整收敛三角形图 + 强度分 不满足条件的基础K线图 + 强度分=0 HTML显示所有108只股票
python scripts/pipeline_converging_triangle.py --clean --all-stocks
# 清空后指定日期生成
python scripts/pipeline_converging_triangle.py --clean --date 20260120 --all-stocks
```
**为所有108只股票生成图表**(包括不满足条件的)
```powershell
# 生成所有股票的图表,每个都显示强度分
python scripts/pipeline_converging_triangle.py --all-stocks
# 指定日期,生成所有股票的图表
python scripts/pipeline_converging_triangle.py --date 20260120 --all-stocks
```
## 1. 创建与激活虚拟环境
```powershell
# 创建环境(首次)
python -m venv .venv
# 激活环境
.\.venv\Scripts\Activate.ps1
```
## 2. 安装依赖
```powershell
pip install numpy pandas matplotlib
```
## 3. 运行脚本
### 一键流水线(推荐)
```powershell
python scripts/pipeline_converging_triangle.py
```
常用参数:
```powershell
# 指定日期
python scripts/pipeline_converging_triangle.py --date 20260120
# 生成详情模式图片(显示所有枢轴点和拟合点)
python scripts/pipeline_converging_triangle.py --show-details
# 为所有108只股票生成图表包括不满足收敛三角形条件的
python scripts/pipeline_converging_triangle.py --all-stocks
# 组合使用
python scripts/pipeline_converging_triangle.py --date 20260120 --show-details --all-stocks
# 跳过检测(仅生成报告与图表)
python scripts/pipeline_converging_triangle.py --skip-detection
```
**参数说明**
- `--all-stocks`为所有108只股票生成图表
- 满足条件的:显示完整的收敛三角形和强度分
- 不满足条件的显示基础K线图强度分为0
- 适合全面查看整个股票池的情况
### 仅批量检测
```powershell
python scripts/run_converging_triangle.py
```
### 仅生成报告
```powershell
python scripts/report_converging_triangles.py
```
### 仅绘制图表
```powershell
# 简洁模式(默认)- 仅显示收盘价、上沿、下沿
# 文件名格式: YYYYMMDD_股票代码_股票名称.png
python scripts/plot_converging_triangles.py
# 详细模式 - 显示所有枢轴点、拟合点、分段线等
# 文件名格式: YYYYMMDD_股票代码_股票名称_detail.png
python scripts/plot_converging_triangles.py --show-details
# 为所有108只股票生成图表包括不满足条件的
python scripts/plot_converging_triangles.py --all-stocks
# 指定日期
python scripts/plot_converging_triangles.py --date 20260120
# 组合使用:所有股票 + 详细模式
python scripts/plot_converging_triangles.py --all-stocks --show-details
# 同时生成两种模式进行对比(先后运行两次)
python scripts/plot_converging_triangles.py # 生成简洁版
python scripts/plot_converging_triangles.py --show-details # 生成详细版
```
**提示**:
- 简洁模式和详细模式的文件名不同(详细模式带 `_detail` 后缀),两种模式的图表会同时保留,方便对比查看
- `--all-stocks` 会为所有108只股票生成图表每个都显示强度分不满足条件的显示0分
输出(已被 `.gitignore` 忽略,默认不推送远程):
- `outputs/converging_triangles/all_results.csv`
- `outputs/converging_triangles/strong_breakout_up.csv`
- `outputs/converging_triangles/strong_breakout_down.csv`
- `outputs/converging_triangles/report.md`
- `outputs/converging_triangles/charts/*.png`
- `outputs/converging_triangles/stock_viewer.html` - 📊 **新增**:可视化查看器
## 4. 参数调整
编辑 `scripts/triangle_config.py`(统一配置):
```python
DETECTION_PARAMS = ConvergingTriangleParams(
window=120, # 检测窗口大小
pivot_k=15, # 枢轴点检测窗口
shrink_ratio=0.6, # 收敛比阈值(严格模式)
# ...
)
# 实时模式配置
REALTIME_MODE = True # True=实时模式默认False=标准模式
FLEXIBLE_ZONE = 5 # 灵活区域大小最近5天
# 显示配置
RECENT_DAYS = 500 # 计算最近 N 天None=全部历史)
DISPLAY_WINDOW = 500 # 图表显示范围
ONLY_VALID = True # 只输出有效三角形
SHOW_CHART_DETAILS = False # 图表详细模式False=简洁True=详细)
```
### 实时模式 vs 标准模式
- **实时模式**(推荐,默认):
- ✅ 能捕获最近的枢轴点无15天滞后
- ✅ 适合实时选股
- ⚠️ 候选枢轴点置信度较低
- **标准模式**
- ✅ 枢轴点质量高(完整窗口确认)
- ✅ 适合历史回测
- ⚠️ 有15天确认滞后
### 图表详细模式
- **简洁模式**(默认,`SHOW_CHART_DETAILS = False`
- 仅显示收盘价、上沿线、下沿线
- 图表清爽,适合日常使用
- **详细模式**`SHOW_CHART_DETAILS = True` 或命令行 `--show-details`
- 额外显示所有枢轴点、拟合点、分段线
- 便于理解算法逻辑和调试
## 5. 数据格式
数据文件位于 `data/` 目录,格式为 pkl
```python
{
'mtx': ndarray (n_stocks, n_days), # 数据矩阵
'dtes': ndarray (n_days,), # 日期 (20050104)
'tkrs': ndarray (n_stocks,), # 股票代码 (SH600000)
'tkrs_name': ndarray (n_stocks,), # 股票名称
}
```
## 6. 备注
### 📊 可视化查看器
使用浏览器打开 `outputs/converging_triangles/stock_viewer.html` 可以:
- 🎚️ 通过滑块调整强度分阈值,实时筛选股票
- 📈 查看所有股票的详细指标和图表
- 🔍 点击图表可放大查看细节
- 📊 实时显示统计信息(总数、筛选数、平均强度分)
- ✨ 支持两种模式显示所有108只股票 或 仅满足条件的股票
**使用方法**
```powershell
# 方式1一键生成所有数据和HTML查看器显示所有108只股票
python scripts/pipeline_converging_triangle.py --all-stocks
# 方式2单独重新生成HTML
python scripts/generate_stock_viewer.py --all-stocks # 显示所有108只
python scripts/generate_stock_viewer.py # 仅显示满足条件的
# 方式3指定日期
python scripts/generate_stock_viewer.py --date 20260120 --all-stocks
# 打开查看器
start outputs/converging_triangles/stock_viewer.html
```
**特点**
- 📦 数据内嵌在HTML中可直接双击打开无需服务器
- 🚀 响应式设计,自适应各种屏幕尺寸
- 🎨 紫色渐变主题,视觉效果优雅
- ⚡ 实时过滤和统计,性能优秀
详见:`outputs/converging_triangles/README_viewer.md``outputs/converging_triangles/QUICK_START.md`
---
- 关闭环境:`deactivate`
- 权限问题PowerShell
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```