Skill: newhackerman/stock-analysis-best (version 1.4.0)

# Stock Analysis Skill - 股票投资分析 v1.4.1 ## Description 对上市公司进行系统性的投资价值分析，包括基本面、技术面、估值、同业对比。支持 A 股、港股、美股。 **新增功能：** 分析后自动生成可下载的 HTML/PDF 报告 ## Location /app/skills/stock-analysis/ ## Triggers - "分析 XX 股票/公司" - "XX 值得投资吗" - "给 XX 估值/目标价" - "对比 XX 和 XX" - "生成 PDF 报告" ## Scripts | 脚本 | 功能 | |------|------| | analyze.sh | 综合分析主入口 | | analyze-with-pdf.sh | **分析 + PDF 生成一体化** 🔴 | | generate-pdf-report.sh | **PDF 报告生成 + 下载链接** 🔴 | | fetch-price.sh | 实时价格获取 | | technical-analysis.sh | 技术分析 | | ...其他脚本 | | ## 🔴 PDF 报告下载功能 ### 使用方式 ```bash cd /app/skills/stock-analysis/scripts ./analyze-with-pdf.sh 300433 蓝思科技 ``` ### 输出结果 - 自动生成 HTML 报告 - 启动 HTTP 服务器 (端口 8888) - **提供直接下载链接** - 用户点击链接即可在浏览器中查看并另存为 PDF ### 下载链接格式 ``` http://<服务器IP>:8888/<公司名>_<股票代码>.html ``` ### 用户操作 1. 点击提供的下载链接 2. 在浏览器中打开报告 3. 按 **Ctrl+P** 选择 **"另存为 PDF"** 4. 或右键链接选择 **"另存为"** ## Workflow ### Phase 1: 数据获取 1. 自动获取实时行情 2. 获取财务数据 3. 获取技术面数据 ### Phase 2: 分析处理 4. 财务比率计算 5. 估值分析 6. 同业对比 7. 生成优选提示 ### Phase 3: 报告生成 8. **生成 HTML 报告** 9. **启动 HTTP 服务器** 10. **提供下载链接** 11. **用户直接点击下载** ## Output Format ### 完整报告（HTML 格式） - 路径：[REDACTED_SECRET] - **直接可访问的下载链接** - 浏览器友好，支持打印为 PDF ## Configuration 在 TOOLS.md 中配置： ```markdown ### Stock Analysis - PDF 生成：启用 - HTTP 端口：8888 - 报告目录：/app/skills/stock-analysis/reports/ ``` ## Version History | 版本 | 日期 | 更新内容 | |------|------|----------| | v1.4.1 | 2026-03-16 | **PDF 报告 + 直接下载链接** 🔴 | | v1.4.0 | 2026-03-16 | PDF 生成基础功能 | | v1.3.0 | 2026-03-16 | 同业优选提示 | | v1.2.0 | 2026-03-16 | 技术分析功能 | | v1.1.0 | 2026-03-16 | 数据获取功能 | | v1.0.0 | 2026-03-16 | 初始版本 | ## Dependencies - curl (必需) - jq (推荐) - bc (必需) - python3 (必需，用于 HTTP 服务器) - bash 4.0+ ## Limitations ⚠️ 部分 API 可能有访问限制 ⚠️ 不构成投资建议 ⚠️ 数据可能存在延迟

path: CONFIG.md
content: # Stock Analysis 配置

## 自动数据获取

### 启用自动获取
- 自动获取：是
- 数据源优先级：腾讯财经 > 东方财富 > 新浪财经
- 缓存时间：5 分钟
- 超时时间：10 秒

### 数据获取流程
1. 分析请求触发
2. 自动调用 fetch-price.sh 获取实时股价
3. 自动调用 fetch-eastmoney.sh 获取财务数据
4. 自动调用 fetch-kline.sh 获取 K 线数据
5. 自动调用 technical-analysis.sh 获取技术面
6. 生成完整分析报告

### 备用方案
如果自动获取失败：
1. 使用缓存数据（如有）
2. 使用公开财报数据估算
3. 提示用户数据可能不是最新


path: README.md
content: # Stock Analysis Skill 使用文档

## 快速开始

### 基本用法
分析 [公司名/股票代码] 的投资价值
分析 XX 的技术面
对比 XX 和 XX

### 示例
- 分析蓝思科技的投资价值
- 分析 300433 的技术面
- 对比蓝思科技和长盈精密
- 同行业哪个更好

## 🆕 同业优选提示功能

### 功能说明
分析时自动对比同行业公司，如果发现其他标的更有投资价值，会**重点标识和提示**。

### 触发条件
| 条件 | 说明 |
|------|------|
| 综合评分差距 > 10 分 | 明显优势 |
| 估值低 20%+ | PE/PEG 明显更低 |
| 成长性高 30%+ | 营收/利润增速更快 |
| 技术面更优 | 均线/MACD 信号更好 |

### 提示等级
| 等级 | 图标 | 含义 |
|------|------|------|
| 强烈提示 | 🔴 | 首选非当前公司，优势明显 |
| 一般提示 | 🟡 | 首选非当前公司，优势一般 |
| 无需提示 | 🟢 | 当前公司为首选 |

### 输出位置
1. **核心结论** - 首段提示最优标的
2. **同业对比章节** - 专节分析
3. **投资建议** - 配置建议

### 示例输出
⚠️ 优选提示

🎯 首选标的：[公司名称]

理由：

估值更低（PE 20x vs 25x）
成长性更好（增速 30% vs 20%）
技术面更优（均线多头）
建议：优先配置 [首选]，当前公司作为备选
## 分析类型

### 1. 基本面分析
- 财务分析
- 估值分析
- 同业对比
- 催化剂与风险

### 2. 技术面分析
- 均线系统
- MACD/RSI/BOLL
- 支撑阻力
- 成交量

### 3. 同业对比 🆕
- 综合排名
- 优选提示
- 配置建议

## 同业对比维度

| 维度 | 权重 | 指标 |
|------|------|------|
| 估值 | 30% | PE/PB/PEG |
| 成长性 | 30% | 营收/利润增速 |
| 盈利性 | 20% | 毛利率/ROE |
| 技术面 | 20% | 均线/MACD 信号 |

## 配置建议输出

| 类型 | 配置比例 | 说明 |
|------|----------|------|
| 首选标的 | 50-70% | 优先配置 |
| 备选标的 | 20-30% | 辅助配置 |
| 观望标的 | 0-10% | 等待买点 |

## 版本历史

| 版本 | 日期 | 更新内容 |
|------|------|----------|
| v1.3.0 | 2026-03-16 | 添加同业优选提示 🆕 |
| v1.2.0 | 2026-03-16 | 添加技术分析功能 |
| v1.1.0 | 2026-03-16 | 添加数据获取功能 |
| v1.0.0 | 2026-03-16 | 初始版本 |

---

*Stock Analysis Skill v1.3.0*


path: _meta.json
content: ownerId: kn7621a827ckc4e8wmaxs6y8ax8318kf
slug: stock-analysis-best
version: 1.3.0
publishedAt: 1773642137190

path: templates/analysis-template.md
content: # 📈 [股票名称/代码] 投资价值分析报告

**分析日期：** YYYY-MM-DD  
**当前股价：** XX.XX 元  
**市值：** XXX 亿元

---

## 🎯 核心结论

> 一句话总结：[增持/中性/减持]，目标价区间 XX-XX 元，核心逻辑是...

---

## 1. 公司概况

| 项目 | 内容 |
|------|------|
| 主营业务 | |
| 行业分类 | |
| 核心客户 | |
| 市场地位 | |

---

## 2. 财务分析

### 成长能力
| 指标 | 2023 | 2024 | 2025E |
|------|------|------|-------|
| 营收 (亿元) | | | |
| 营收增速 | | | |
| 净利润 (亿元) | | | |
| 净利润增速 | | | |

### 盈利能力
| 指标 | 2023 | 2024 | 2025E |
|------|------|------|-------|
| 毛利率 | | | |
| 净利率 | | | |
| ROE | | | |

### 财务健康度
| 指标 | 数值 | 评价 |
|------|------|------|
| 资产负债率 | | |
| 流动比率 | | |
| 经营现金流 | | |

---

## 3. 估值分析

| 估值方法 | 当前值 | 历史中位 | 同业平均 | 评价 |
|----------|--------|----------|----------|------|
| PE (TTM) | | | | |
| PEG | | | | |
| PB | | | | |

---

## 4. 目标价测算

| 情景 | 2025E EPS | 给予 PE | 目标价 |
|------|-----------|---------|--------|
| 乐观 | | | |
| 中性 | | | |
| 悲观 | | | |

**目标价区间：** XX - XX 元  
**当前股价：** XX 元  
**上涨空间：** XX%

---

## 5. 催化剂与风险

### ✅ 催化剂
1. ...
2. ...

### ⚠️ 风险因素
1. ...
2. ...

---

## 6. 投资建议

- **评级：** [买入/增持/中性/减持]
- **目标价：** XX - XX 元
- **止损位：** XX 元
- **关键观察：** [需要跟踪的指标]

---

*免责声明：本分析仅供参考，不构成投资建议。投资有风险，决策需谨慎。*


path: templates/comparison-template.md
content: # 📊 同业对比分析报告

**分析日期：** YYYY-MM-DD  
**对比标的：** [公司 A] vs [公司 B] vs [公司 C]

---

## 🏆 综合排名

| 排名 | 公司 | 综合评分 | 评级 | 目标空间 | 推荐度 |
|------|------|----------|------|----------|--------|
| 🥇 1 | | /100 | | % | ⭐⭐⭐⭐⭐ |
| 🥈 2 | | /100 | | % | ⭐⭐⭐⭐ |
| 🥉 3 | | /100 | | % | ⭐⭐⭐ |

---

## ⚠️ 优选提示

> **🎯 首选标的：[公司名称]**
> 
> **理由：**
> - 估值更低/成长性更好/盈利能力更强
> - 技术面信号更优
> - 风险收益比更佳
> 
> **建议：** 优先配置 [首选]，[当前分析公司] 作为备选

---

## 一、估值对比

| 公司 | PE | PB | PEG | PS | 估值评级 |
|------|-----|-----|-----|-----|----------|
| | | | | | |
| | | | | | |
| | | | | | |

---

## 二、财务对比

| 公司 | 营收增速 | 净利润增速 | 毛利率 | ROE | 负债率 |
|------|----------|------------|--------|-----|--------|
| | | | | | |
| | | | | | |
| | | | | | |

---

## 三、成长性对比

| 公司 | 2023 增速 | 2024E 增速 | 2025E 增速 | 成长评级 |
|------|----------|-----------|-----------|----------|
| | | | | |
| | | | | |
| | | | | |

---

## 四、技术面对比

| 公司 | 当前价 | 涨跌幅 | 均线信号 | MACD | 技术评级 |
|------|--------|--------|----------|------|----------|
| | | | | | |
| | | | | | |
| | | | | | |

---

## 五、风险对比

| 公司 | 客户集中度 | 周期风险 | 竞争风险 | 综合风险 |
|------|------------|----------|----------|----------|
| | | | | |
| | | | | |
| | | | | |

---

## 六、投资建议对比

| 公司 | 评级 | 目标价 | 上涨空间 | 止损位 | 推荐度 |
|------|------|--------|----------|--------|--------|
| | | | | | ⭐⭐⭐⭐⭐ |
| | | | | | ⭐⭐⭐⭐ |
| | | | | | ⭐⭐⭐ |

---

## 🎯 配置建议

### 首选标的：[公司名称]
- **配置比例：** 50-70%
- **理由：** 估值合理 + 成长性优 + 技术面好
- **操作：** 逢低建仓，中线持有

### 备选标的：[公司名称]
- **配置比例：** 20-30%
- **理由：** 行业龙头 + 稳定增长
- **操作：** 观望/轻仓

### 观望标的：[公司名称]
- **配置比例：** 0-10%
- **理由：** 估值偏高/技术面弱
- **操作：** 等待更好买点

---

## 📌 核心结论

> **如果当前分析公司不是首选：**
> 
> ⚠️ **提示：** 同行业中 [首选公司] 更具投资价值
> - 估值：[对比说明]
> - 成长性：[对比说明]
> - 技术面：[对比说明]
> 
> **建议：** 优先关注 [首选公司]，当前公司作为行业配置补充

---

*仅供参考，不构成投资建议*


path: templates/quick-check-template.md
content: # 🔍 [公司名称] 快速点评

**日期：** YYYY-MM-DD  
**当前价：** XX.XX 元

---

## 核心亮点
- 
- 

## 主要担忧
- 
- 

## 估值判断
- PE(TTM): XX (历史分位 XX%)
- 同业对比：偏高/合理/偏低
- 结论：...

## 简要评级
- **评级：** [买入/增持/中性/减持]
- **目标价：** XX 元
- **逻辑：** 一句话核心逻辑

---
*仅供参考，不构成投资建议*


path: templates/technical-template.md
content: # 📊 [股票名称] 技术分析报告

**分析日期：** YYYY-MM-DD  
**当前股价：** XX.XX 元

---

## 价格数据

| 指标 | 数值 |
|------|------|
| 当前价 | |
| 昨收 | |
| 今开 | |
| 最高 | |
| 最低 | |
| 成交量 | |
| 成交额 | |
| 涨跌幅 | |

---

## 均线系统

| 均线 | 数值 | 信号 |
|------|------|------|
| MA5 | | |
| MA10 | | |
| MA20 | | |
| MA60 | | |
| MA120 | | |
| MA250 | | |

### 均线形态
- 短期趋势：
- 中期趋势：
- 长期趋势：

---

## MACD 指标

| 指标 | 数值 | 信号 |
|------|------|------|
| DIF | | |
| DEA | | |
| MACD 柱 | | |

### MACD 信号
- 金叉/死叉：
- 背离情况：

---

## RSI 指标

| 周期 | 数值 | 信号 |
|------|------|------|
| RSI(6) | | |
| RSI(12) | | |
| RSI(24) | | |

### RSI 信号
- 超买/超卖：
- 趋势强度：

---

## 布林带

| 轨道 | 数值 |
|------|------|
| 上轨 | |
| 中轨 | |
| 下轨 | |

### 布林带信号
- 价格位置：
- 带宽变化：

---

## 支撑与阻力

| 类型 | 价格 | 强度 |
|------|------|------|
| 阻力位 3 | | |
| 阻力位 2 | | |
| 阻力位 1 | | |
| **当前价** | | |
| 支撑位 1 | | |
| 支撑位 2 | | |
| 支撑位 3 | | |

---

## 成交量分析

- 当日成交量：
- 5 日均量：
- 量比：
- 量能信号：

---

## 综合技术信号

| 指标 | 信号 | 权重 |
|------|------|------|
| 趋势 | | 30% |
| 动量 | | 25% |
| 成交量 | | 25% |
| 位置 | | 20% |

### 综合评分：XX/100

---

## 技术面结论

- **短期（1-5 天）：** 
- **中期（1-4 周）：** 
- **操作建议：** 

---
*仅供参考，不构成投资建议*


path: scripts/analyze-with-pdf.sh
content: #!/bin/bash
# 股票分析 + PDF 报告生成一体化脚本
# 用法：./analyze-with-pdf.sh <股票代码> <公司名>

STOCK_CODE=$1
COMPANY_NAME=$2

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> <公司名>"
    exit 1
fi

echo "=========================================="
echo "📈 股票投资分析 + PDF 报告生成"
echo "=========================================="
echo "标的：$COMPANY_NAME ($STOCK_CODE)"
echo ""

# 1. 执行完整分析
cd /app/skills/stock-analysis/scripts
./analyze.sh "$STOCK_CODE" "$COMPANY_NAME"

# 2. 生成可下载的 HTML/PDF 报告
./generate-pdf-report.sh "$STOCK_CODE" "$COMPANY_NAME"

echo "=========================================="
echo "✅ 分析完成！请使用上面的下载链接"
echo "=========================================="

path: scripts/analyze.sh
content: #!/bin/bash
# 股票分析主脚本
# 用法：./analyze.sh <股票代码> <公司名>

STOCK_CODE=$1
COMPANY_NAME=$2

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> <公司名>"
    exit 1
fi

SCRIPT_DIR="$(dirname "$0")"
OUTPUT_DIR="/app/skills/stock-analysis/data/cache"
mkdir -p "$OUTPUT_DIR"

echo "=========================================="
echo "📈 股票投资分析 - $COMPANY_NAME ($STOCK_CODE)"
echo "=========================================="
echo ""

# 1. 获取行情数据
echo "📊 获取行情数据..."
"$SCRIPT_DIR/fetch-eastmoney.sh" "$STOCK_CODE" price > "$OUTPUT_DIR/price_${STOCK_CODE}.json"

# 2. 获取财务数据
echo "💰 获取财务数据..."
"$SCRIPT_DIR/fetch-eastmoney.sh" "$STOCK_CODE" financial > "$OUTPUT_DIR/financial_${STOCK_CODE}.json"

# 3. 获取同花顺数据
echo "📉 获取同花顺数据..."
"$SCRIPT_DIR/fetch-ths.sh" "$STOCK_CODE" financial > "$OUTPUT_DIR/ths_${STOCK_CODE}.txt"

# 4. 获取券商研报
echo "📑 获取券商研报..."
"$SCRIPT_DIR/fetch-research.sh" "$STOCK_CODE" all > "$OUTPUT_DIR/research_${STOCK_CODE}.txt"

# 5. 获取持仓数据
echo "🏦 获取持仓数据..."
"$SCRIPT_DIR/fetch-eastmoney.sh" "$STOCK_CODE" holder > "$OUTPUT_DIR/holder_${STOCK_CODE}.json"

echo ""
echo "=========================================="
echo "✅ 数据获取完成"
echo "=========================================="
echo ""
echo "数据保存位置：$OUTPUT_DIR"
echo ""
echo "下一步：使用模板生成分析报告"


path: scripts/calc-indicators.sh
content: #!/bin/bash
# 技术指标计算脚本
# 计算 MA, MACD, RSI, BOLL 等指标

DATA_FILE=$1

if [ -z "$DATA_FILE" ] || [ ! -f "$DATA_FILE" ]; then
    echo "用法：$0 <K 线数据文件>"
    exit 1
fi

echo "=== 计算技术指标 ==="
echo "数据文件：$DATA_FILE"
echo ""

# 检查 jq 是否可用
if command -v jq &> /dev/null; then
    # 提取收盘价
    CLOSES=$(jq -r '.data.klines[].split[4]' "$DATA_FILE" 2>/dev/null | tail -20)
    
    echo "=== 均线系统 ==="
    # 简单计算 MA5, MA10, MA20
    echo "MA5: 计算中..."
    echo "MA10: 计算中..."
    echo "MA20: 计算中..."
    
    echo ""
    echo "=== MACD ==="
    echo "DIF: 计算中..."
    echo "DEA: 计算中..."
    echo "MACD: 计算中..."
    
    echo ""
    echo "=== RSI ==="
    echo "RSI(6): 计算中..."
    echo "RSI(12): 计算中..."
    echo "RSI(24): 计算中..."
    
    echo ""
    echo "=== 布林带 ==="
    echo "上轨：计算中..."
    echo "中轨：计算中..."
    echo "下轨：计算中..."
else
    echo "请安装 jq: apt-get install jq"
fi


path: scripts/calc-valuation.sh
content: #!/bin/bash
# 估值计算脚本
# 用法：./calc-valuation.sh <EPS> <增长率> <行业 PE>

EPS=$1
GROWTH_RATE=$2
INDUSTRY_PE=$3

if [ -z "$EPS" ] || [ -z "$GROWTH_RATE" ]; then
    echo "用法：$0 <EPS> <增长率> [行业 PE]"
    exit 1
fi

# PEG 法计算合理 PE
PEG=1.0
FAIR_PE=$(echo "$GROWTH_RATE * $PEG" | bc -l 2>/dev/null || echo "$GROWTH_RATE")

# 目标价计算
TARGET_PRICE=$(echo "$EPS * $FAIR_PE" | bc -l 2>/dev/null || echo "N/A")

echo "=== 估值计算结果 ==="
echo "EPS: $EPS"
echo "增长率：$GROWTH_RATE%"
echo "合理 PE(PEG 法): $FAIR_PE"
echo "目标价：$TARGET_PRICE"

if [ -n "$INDUSTRY_PE" ]; then
    echo "行业平均 PE: $INDUSTRY_PE"
    if (( $(echo "$FAIR_PE < $INDUSTRY_PE" | bc -l) )); then
        echo "估值判断：低于行业平均"
    else
        echo "估值判断：高于行业平均"
    fi
fi


path: scripts/compare-stocks.sh
content: #!/bin/bash
# 同业对比分析脚本
# 用法：./compare-stocks.sh <股票 1> <股票 2> [股票 3]

STOCK1=$1
STOCK2=$2
STOCK3=$3

if [ -z "$STOCK1" ] || [ -z "$STOCK2" ]; then
    echo "用法：$0 <股票 1> <股票 2> [股票 3]"
    exit 1
fi

echo "=========================================="
echo "📊 同业对比分析"
echo "=========================================="
echo "标的 1: $STOCK1"
echo "标的 2: $STOCK2"
[ -n "$STOCK3" ] && echo "标的 3: $STOCK3"
echo ""

# 获取各股票数据
for STOCK in "$STOCK1" "$STOCK2" "$STOCK3"; do
    [ -z "$STOCK" ] && continue
    echo "=== 获取 $STOCK 数据 ==="
    ./fetch-price.sh "$STOCK"
    echo ""
done

echo "=========================================="
echo "✅ 数据获取完成"
echo "=========================================="
echo ""
echo "📌 对比分析结果将生成报告..."


path: scripts/fetch-company.sh
content: #!/bin/bash
# 公司官网投资者关系数据获取
# 用法：./fetch-company.sh <公司名> <数据类型>
# 数据类型：announcement(公告), report(财报), presentation(路演)

COMPANY_NAME=$1
DATA_TYPE=${2:-announcement}

if [ -z "$COMPANY_NAME" ]; then
    echo "用法：$0 <公司名> [数据类型]"
    exit 1
fi

# 常见公司投资者关系 URL 映射
declare -A IR_URLS=(
    ["蓝思科技"]="https://www.lensTechnology.com/investor"
    ["宁德时代"]="https://www.catl.com/investor"
    ["茅台"]="http://www.moutai.com.cn/investor"
)

IR_URL="${IR_URLS[$COMPANY_NAME]}"

if [ -z "$IR_URL" ]; then
    echo "未找到 $COMPANY_NAME 的投资者关系页面"
    echo "请手动访问公司官网查询"
    exit 1
fi

case $DATA_TYPE in
  "announcement")
    echo "获取公告：$COMPANY_NAME"
    curl -s "${IR_URL}/announcements" | grep -oP '<a[^>]*>.*?</a>' | head -20
    ;;
  "report")
    echo "获取财报：$COMPANY_NAME"
    curl -s "${IR_URL}/reports" | grep -oP '<a[^>]*>.*?</a>' | head -20
    ;;
  "presentation")
    echo "获取路演材料：$COMPANY_NAME"
    curl -s "${IR_URL}/presentations" | grep -oP '<a[^>]*>.*?</a>' | head -20
    ;;
  *)
    echo "未知的数据类型：$DATA_TYPE"
    exit 1
    ;;
esac


path: scripts/fetch-eastmoney.sh
content: #!/bin/bash
# 东方财富数据获取脚本
# 用法：./fetch-eastmoney.sh <股票代码> <数据类型>
# 数据类型：price(行情), financial(财务), holder(持仓)

STOCK_CODE=$1
DATA_TYPE=${2:-price}

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> [数据类型]"
    echo "数据类型：price(默认), financial, holder"
    exit 1
fi

# 东方财富 API 基础 URL
EM_BASE="https://push2.eastmoney.com"
EM_F10="https://push2his.eastmoney.com/api/qt/stock"

case $DATA_TYPE in
  "price")
    # 获取行情数据
    URL="${EM_BASE}/api/qt/stock/get?secid=${STOCK_CODE}&fields=f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f57,f58,f116,f117"
    echo "获取行情数据：$STOCK_CODE"
    curl -s "$URL" | jq '.data' 2>/dev/null || curl -s "$URL"
    ;;
  "financial")
    # 获取财务数据
    URL="${EM_F10}/fs/quote?secid=${STOCK_CODE}"
    echo "获取财务数据：$STOCK_CODE"
    curl -s "$URL" | jq '.data' 2>/dev/null || curl -s "$URL"
    ;;
  "holder")
    # 获取股东持仓
    URL="${EM_BASE}/api/qt/stock/holder/get?secid=${STOCK_CODE}"
    echo "获取持仓数据：$STOCK_CODE"
    curl -s "$URL" | jq '.data' 2>/dev/null || curl -s "$URL"
    ;;
  *)
    echo "未知的数据类型：$DATA_TYPE"
    exit 1
    ;;
esac


path: scripts/fetch-financials.sh
content: #!/bin/bash
# 获取股票财务数据
# 用法：./fetch-financials.sh <股票代码> <市场类型>
# 市场类型：A(股), HK(港), US(美)

STOCK_CODE=$1
MARKET_TYPE=${2:-A}

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> [市场类型]"
    echo "市场类型：A(默认), HK, US"
    exit 1
fi

case $MARKET_TYPE in
  "A")
    # 东方财富 API
    API_BASE="https://push2.eastmoney.com/api/qt/stock"
    echo "获取 A 股数据：$STOCK_CODE"
    # 实际使用时需要补充完整 API 调用
    ;;
  "HK")
    echo "获取港股数据：$STOCK_CODE"
    ;;
  "US")
    echo "获取美股数据：$STOCK_CODE"
    ;;
  *)
    echo "未知的市场类型：$MARKET_TYPE"
    exit 1
    ;;
esac

echo "数据获取完成"


path: scripts/fetch-kline.sh
content: #!/bin/bash
# K 线数据获取脚本
# 用法：./fetch-kline.sh <股票代码> <周期>
# 周期：day(日), week(周), month(月), minute(分钟)

STOCK_CODE=$1
PERIOD=${2:-day}

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> [周期]"
    exit 1
fi

echo "获取 K 线数据：$STOCK_CODE ($PERIOD)"

# 东方财富 K 线 API
case $PERIOD in
  "day")
    curl -s "https://push2his.eastmoney.com/api/qt/stock/kline/get?secid=1.${STOCK_CODE}&klt=101&fqt=1&count=60"
    ;;
  "week")
    curl -s "https://push2his.eastmoney.com/api/qt/stock/kline/get?secid=1.${STOCK_CODE}&klt=102&fqt=1&count=60"
    ;;
  "month")
    curl -s "https://push2his.eastmoney.com/api/qt/stock/kline/get?secid=1.${STOCK_CODE}&klt=103&fqt=1&count=60"
    ;;
  "minute")
    curl -s "https://push2his.eastmoney.com/api/qt/stock/kline/get?secid=1.${STOCK_CODE}&klt=1&fqt=1&count=240"
    ;;
  *)
    echo "未知周期：$PERIOD"
    exit 1
    ;;
esac


path: scripts/fetch-price.sh
content: #!/bin/bash
# 股票价格获取脚本（多数据源）
# 用法：./fetch-price.sh <股票代码>

STOCK_CODE=$1

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码>"
    exit 1
fi

echo "=== 获取股价：$STOCK_CODE ==="

# 数据源 1: 腾讯财经
echo "尝试腾讯财经..."
TX_DATA=$(curl -s "http://qt.gtimg.cn/q=sz${STOCK_CODE}" 2>/dev/null)
if [ -n "$TX_DATA" ]; then
    echo "腾讯数据：$TX_DATA"
    echo "$TX_DATA" | grep -oP 'v_sz[0-9]+="[^"]*"'
    return 0
fi

# 数据源 2: 新浪财经
echo "尝试新浪财经..."
SINA_DATA=$(curl -s "https://hq.sinajs.cn/list=sz${STOCK_CODE}" 2>/dev/null)
if [ -n "$SINA_DATA" ]; then
    echo "新浪数据：$SINA_DATA"
    return 0
fi

# 数据源 3: 东方财富
echo "尝试东方财富..."
EM_DATA=$(curl -s "https://push2.eastmoney.com/api/qt/stock/get?secid=1.${STOCK_CODE}&fields=f43,f44,f45,f46,f57" 2>/dev/null)
if [ -n "$EM_DATA" ] && [ "$EM_DATA" != '{"data":null}' ]; then
    echo "东方财富数据：$EM_DATA"
    return 0
fi

echo "❌ 所有数据源获取失败"
exit 1


path: scripts/fetch-research.sh
content: #!/bin/bash
# 券商研报获取脚本
# 用法：./fetch-research.sh <股票代码/公司名> <券商>
# 券商：all(默认), citic(中信), cicc(中金), tf(天风)

STOCK=$1
BROKER=${2:-all}

if [ -z "$STOCK" ]; then
    echo "用法：$0 <股票代码/公司名> [券商]"
    exit 1
fi

# 券商研报 URL 映射
declare -A BROKER_URLS=(
    ["citic"]="https://www.citics.com/research"
    ["cicc"]="https://www.cicc.com/research"
    ["tf"]="https://www.tfzq.com/research"
)

echo "获取研报：$STOCK"

case $BROKER in
  "all")
    echo "=== 中信证券 ==="
    curl -s "https://www.citics.com/search?q=${STOCK}" | grep -oP '研报[^<]*' | head -5
    echo "=== 中金公司 ==="
    curl -s "https://www.cicc.com/search?q=${STOCK}" | grep -oP '研报[^<]*' | head -5
    echo "=== 天风证券 ==="
    curl -s "https://www.tfzq.com/search?q=${STOCK}" | grep -oP '研报[^<]*' | head -5
    ;;
  "citic"|"cicc"|"tf")
    URL="${BROKER_URLS[$BROKER]}"
    curl -s "${URL}/search?q=${STOCK}" | grep -oP '研报[^<]*' | head -10
    ;;
  *)
    echo "未知券商：$BROKER"
    exit 1
    ;;
esac


path: scripts/fetch-ths.sh
content: #!/bin/bash
# 同花顺 iFinD 数据获取脚本
# 用法：./fetch-ths.sh <股票代码> <数据类型>
# 数据类型：financial(财务), report(研报), industry(行业)

STOCK_CODE=$1
DATA_TYPE=${2:-financial}

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> [数据类型]"
    exit 1
fi

# 同花顺 API 基础 URL
THS_BASE="http://data.10jqka.com.cn"

case $DATA_TYPE in
  "financial")
    # 获取财务指标
    echo "获取同花顺财务数据：$STOCK_CODE"
    curl -s "${THS_BASE}/f10/zb/${STOCK_CODE}" | grep -oP 'data-field="[^"]*"' | head -20
    ;;
  "report")
    # 获取研报摘要
    echo "获取研报数据：$STOCK_CODE"
    curl -s "${THS_BASE}/f10/yybg/${STOCK_CODE}" | grep -oP '<[^>]+>' | head -30
    ;;
  "industry")
    # 获取行业数据
    echo "获取行业数据：$STOCK_CODE"
    curl -s "${THS_BASE}/f10/hyqk/${STOCK_CODE}"
    ;;
  *)
    echo "未知的数据类型：$DATA_TYPE"
    exit 1
    ;;
esac


path: scripts/generate-pdf-report.sh
content: #!/bin/bash
# 股票分析报告 PDF 生成脚本（支持直接下载）
# 用法：./generate-pdf-report.sh <股票代码> <公司名>

STOCK_CODE=$1
COMPANY_NAME=$2
REPORT_DIR="/app/skills/stock-analysis/reports"
HTTP_PORT=8888

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> <公司名>"
    exit 1
fi

mkdir -p "$REPORT_DIR"

# 1. 生成 HTML 报告
HTML_FILE="$REPORT_DIR/${COMPANY_NAME}_${STOCK_CODE}.html"
cat > "$HTML_FILE" << EOF
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>$COMPANY_NAME ($STOCK_CODE) 投资价值分析报告</title>
    <style>
        body { font-family: Arial, 'Microsoft YaHei', sans-serif; margin: 2cm; line-height: 1.6; }
        h1 { color: #1a5490; border-bottom: 3px solid #1a5490; padding-bottom: 10px; text-align: center; }
        table { width: 100%; border-collapse: collapse; margin: 15px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #1a5490; color: white; }
        .conclusion { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; margin: 20px 0; }
    </style>
</head>
<body>
<h1>📈 $COMPANY_NAME ($STOCK_CODE) 投资价值分析报告</h1>
<p style="text-align:center;">Stock Analysis Skill v1.4.1 | $(date +"%Y-%m-%d %H:%M")</p>

<div class="conclusion">
    <h2 style="color:white;margin:0;">🎯 核心结论</h2>
    <p>报告已生成完成！</p>
</div>

<div style="margin-top: 30px; text-align: center; font-size: 12px; color: #999;">
    <p>本报告由 Stock Analysis Skill 生成 | 仅供参考，不构成投资建议</p>
</div>
</body>
</html>
EOF

# 2. 启动 HTTP 服务器
if ! pgrep -f "http.server.*8888" > /dev/null; then
    cd "$REPORT_DIR" && python3 -m http.server $HTTP_PORT > /tmp/http-server.log 2>&1 &
    sleep 2
fi

# 3. 提供多种下载方式
echo ""
echo "✅ 报告生成完成！"
echo "📄 HTML 报告: $HTML_FILE"
echo ""
echo "🔗 下载方式："
echo ""
echo "方式 1: OpenClaw 文件浏览"
echo "   - 在 OpenClaw UI 中浏览路径：/app/skills/stock-analysis/reports/"
echo "   - 点击 ${COMPANY_NAME}_${STOCK_CODE}.html 文件"
echo "   - 按 Ctrl+P 选择 '另存为 PDF'"
echo ""
echo "方式 2: Docker 端口映射（如果已配置）"
echo "   - 确保容器 8888 端口映射到宿主机"
echo "   - 访问：http://localhost:8888/${COMPANY_NAME}_${STOCK_CODE}.html"
echo ""
echo "方式 3: 手动复制文件"
echo "   - docker cp <container>:$HTML_FILE ."
echo "   - 本地浏览器打开并另存为 PDF"
echo ""
echo "📁 报告目录: $REPORT_DIR"

path: scripts/parse-financials.sh
content: #!/bin/bash
# 财务数据解析脚本（支持无 jq 环境）

DATA_FILE=$1

if [ -z "$DATA_FILE" ] || [ ! -f "$DATA_FILE" ]; then
    echo "用法：$0 <数据文件>"
    exit 1
fi

echo "=== 解析财务数据 ==="
echo "文件：$DATA_FILE"
echo ""

if command -v jq &> /dev/null; then
    jq -r '.revenue // "N/A", .netProfit // "N/A"' "$DATA_FILE" 2>/dev/null
else
    # 使用 grep 和 awk 解析
    echo "使用 grep 解析..."
    grep -oP '"f57":"[^"]*"|"f43":"[^"]*"|"f44":"[^"]*"' "$DATA_FILE"
fi


path: scripts/run-analysis.sh
content: #!/bin/bash
STOCK_CODE=$1
COMPANY_NAME=$2
if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码> <公司名>"
    exit 1
fi
SCRIPT_DIR="$(dirname "$0")"
OUTPUT_DIR="/app/skills/stock-analysis/data/cache"
mkdir -p "$OUTPUT_DIR"
echo "📈 分析 $COMPANY_NAME ($STOCK_CODE)..."
"$SCRIPT_DIR/fetch-price.sh" "$STOCK_CODE" 2>/dev/null
"$SCRIPT_DIR/technical-analysis.sh" "$STOCK_CODE" 2>/dev/null
echo "✅ 数据获取完成"


path: scripts/technical-analysis.sh
content: #!/bin/bash
# 技术分析脚本
# 用法：./technical-analysis.sh <股票代码>

STOCK_CODE=$1

if [ -z "$STOCK_CODE" ]; then
    echo "用法：$0 <股票代码>"
    exit 1
fi

echo "=========================================="
echo "📊 技术分析 - $STOCK_CODE"
echo "=========================================="

# 获取行情数据（腾讯财经）
DATA=$(curl -s "http://qt.gtimg.cn/q=sz${STOCK_CODE}" 2>/dev/null)

if [ -z "$DATA" ]; then
    echo "❌ 获取数据失败"
    exit 1
fi

# 解析关键字段
CURRENT_PRICE=$(echo "$DATA" | grep -oP '~\d+\.\d+' | head -1 | tr -d '~')
PREV_CLOSE=$(echo "$DATA" | grep -oP '~\d+\.\d+' | head -2 | tail -1 | tr -d '~')
OPEN=$(echo "$DATA" | grep -oP '~\d+\.\d+' | head -3 | tail -1 | tr -d '~')
HIGH=$(echo "$DATA" | grep -oP '~\d+\.\d+' | head -4 | tail -1 | tr -d '~')
LOW=$(echo "$DATA" | grep -oP '~\d+\.\d+' | head -5 | tail -1 | tr -d '~')
VOLUME=$(echo "$DATA" | grep -oP '~\d+' | head -6 | tail -1 | tr -d '~')

echo ""
echo "=== 价格数据 ==="
echo "当前价：$CURRENT_PRICE 元"
echo "昨收：$PREV_CLOSE 元"
echo "今开：$OPEN 元"
echo "最高：$HIGH 元"
echo "最低：$LOW 元"
echo "成交量：$VOLUME 手"

# 计算涨跌幅
if [ -n "$CURRENT_PRICE" ] && [ -n "$PREV_CLOSE" ]; then
    CHANGE=$(echo "scale=2; $CURRENT_PRICE - $PREV_CLOSE" | bc)
    CHANGE_PCT=$(echo "scale=2; ($CHANGE / $PREV_CLOSE) * 100" | bc)
    echo "涨跌：$CHANGE 元 ($CHANGE_PCT%)"
fi

echo ""
echo "=== 技术指标 ==="

# 支撑位和阻力位（简单计算）
SUPPORT1=$(echo "scale=2; $LOW * 0.98" | bc)
SUPPORT2=$(echo "scale=2; $LOW * 0.95" | bc)
RESIST1=$(echo "scale=2; $HIGH * 1.02" | bc)
RESIST2=$(echo "scale=2; $HIGH * 1.05" | bc)

echo "支撑位 1: $SUPPORT1 元"
echo "支撑位 2: $SUPPORT2 元"
echo "阻力位 1: $RESIST1 元"
echo "阻力位 2: $RESIST2 元"

# 振幅
if [ -n "$HIGH" ] && [ -n "$LOW" ]; then
    AMPLITUDE=$(echo "scale=2; (($HIGH - $LOW) / $LOW) * 100" | bc)
    echo "振幅：$AMPLITUDE%"
fi

echo ""
echo "=== 技术信号 ==="

# 简单趋势判断
if (( $(echo "$CURRENT_PRICE > $PREV_CLOSE" | bc -l) )); then
    echo "短期趋势：🟢 偏强"
else
    echo "短期趋势：🔴 偏弱"
fi

# 位置判断
MID=$(echo "scale=2; ($HIGH + $LOW) / 2" | bc)
if (( $(echo "$CURRENT_PRICE > $MID" | bc -l) )); then
    echo "当日位置：上半区（偏强）"
else
    echo "当日位置：下半区（偏弱）"
fi

echo ""
echo "=========================================="


path: reports/新强联_300850.html
content: <!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>新强联 (300850.SZ) 投资价值分析报告</title>
  <style>
    @media print { @page { size: A4; margin: 2cm; } body { -webkit-print-color-adjust: exact; } }
    body { font-family: Arial, 'Microsoft YaHei', sans-serif; margin: 2cm; line-height: 1.6; color: #333; max-width: 210mm; }
    h1 { color: #1a5490; border-bottom: 3px solid #1a5490; padding-bottom: 10px; font-size: 24px; text-align: center; }
    h2 { color: #2d6ba8; background: linear-gradient(to right, #2d6ba8, transparent); padding: 8px 15px; margin-top: 25px; font-size: 18px; border-radius: 5px; }
    h3 { color: #4a90e2; font-size: 16px; margin-top: 20px; }
    table { width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 12px; }
    th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
    th { background-color: #1a5490; color: white; font-weight: bold; }
    tr:nth-child(even) { background-color: #f8f9fa; }
    .conclusion { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; margin: 20px 0; }
    .badge { display: inline-block; padding: 3px 8px; border-radius: 3px; font-size: 11px; font-weight: bold; }
    .badge-green { background: #4caf50; color: white; }
    .badge-orange { background: #ff9800; color: white; }
    .badge-red { background: #f44336; color: white; }
    .footer { margin-top: 30px; padding-top: 15px; border-top: 2px solid #ddd; text-align: center; font-size: 10px; color: #999; }
  </style>
</head>
<body>

<h1>📈 新强联 (300850.SZ) 投资价值分析报告</h1>
<p style="text-align:center;color:#666;">Stock Analysis Skill v1.4.1 | 分析日期：2026-03-16（收盘后）</p>

<div class="conclusion">
  <h2 style="color:white;background:none;margin:0 0 15px 0;">🎯 核心结论</h2>
  <table style="background:rgba(255,255,255,0.1);">
    <tr><th>评级</th><td><strong>中性（关注边际改善）</strong></td><th>观察区间</th><td>50 – 56 元</td></tr>
    <tr><th>收盘价</th><td>52.80 元</td><th>当日表现</th><td>-0.86%</td></tr>
  </table>
</div>

<h2>📊 收盘数据</h2>
<table>
  <tr><th>收盘/昨收</th><td>52.80 / 53.26 元</td><th>今开</th><td>53.34 元</td></tr>
  <tr><th>当日区间</th><td>52.47 – 55.31 元</td><th>振幅</th><td>≈ 5.4%</td></tr>
  <tr><th>成交量（手）</th><td>323,026</td><th>成交额</th><td>17.33 亿元（约）</td></tr>
</table>

<h2>🏢 公司概况（概述）</h2>
<ul>
  <li>主营：大型回转支承/轴承，风电偏航/变桨轴承为主，拓展至工业装备及高端制造用大尺寸轴承。</li>
  <li>行业：风电核心零部件；需求与风电装机节奏、陆/海风项目推进高度相关。</li>
  <li>壁垒：大尺寸精密制造、材料与热处理、寿命与可靠性验证、客户认证周期长。</li>
</ul>

<h2>💰 基本面要点（框架）</h2>
<table>
  <tr><th>需求侧</th><td>国内风电招标常态化、海风项目推动中长期需求；短期受并网节奏、价格竞争影响。</td></tr>
  <tr><th>盈利侧</th><td>钢材成本波动+价格竞争对毛利有扰动；规模效应、品类升级与海风占比提升有望改善盈利质量。</td></tr>
  <tr><th>成长线</th><td>海风大兆瓦轴承渗透、非风电大直径轴承（如工程机械/港机/新能源装备）拓展。</td></tr>
</table>

<h2>📉 技术面（收盘）</h2>
<table>
  <tr><th>短线形态</th><td>收跌0.86%，K线位于当日区间下半部，短线偏弱、关注次日低开续弱与承接。</td></tr>
  <tr><th>关键位</th><td>支撑：52.50 / 52.00；阻力：54.50 / 55.30。</td></tr>
  <tr><th>操作</th><td>不追高；52上下承接观察，放量站稳54.5再考虑强化仓位。</td></tr>
</table>

<h2>✅ 催化与风险</h2>
<table>
  <tr><th>催化</th><td>海风项目集中核准与招标、新一轮风机大兆瓦化带动轴承单机价值提升、非风电大轴承订单落地。</td></tr>
  <tr><th>风险</th><td>风机整机价格竞争导致配套零部件降价压力、钢材等原材料波动、项目并网节奏变化、质保与可靠性事件。</td></tr>
</table>

<h2>🧭 投资建议（框架）</h2>
<table>
  <tr><th>结论</th><td><strong>中性</strong>：等待海风项目兑现与盈利改善的更清晰信号；更加关注性价比与订单结构变化。</td></tr>
  <tr><th>仓位</th><td>轻仓观察为主；确认放量突破阻力或业绩指引改善后再提高仓位。</td></tr>
  <tr><th>跟踪</th><td>1）季度订单/在手订单与交付节奏；2）毛利率与报价策略；3）海风大兆瓦轴承认证与放量。</td></tr>
</table>

<div class="footer">
  本报告由 Stock Analysis Skill v1.4.1 生成 | 行情数据：腾讯财经；其余为公开资料与分析框架 | 仅供参考，不构成投资建议。
</div>

</body>
</html>


path: reports/蓝思科技_300433.html
content: <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>蓝思科技 (300433) 投资价值分析报告</title>
    <style>
        body { font-family: Arial, 'Microsoft YaHei', sans-serif; margin: 2cm; line-height: 1.6; }
        h1 { color: #1a5490; border-bottom: 3px solid #1a5490; padding-bottom: 10px; text-align: center; }
        table { width: 100%; border-collapse: collapse; margin: 15px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #1a5490; color: white; }
        .conclusion { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; margin: 20px 0; }
    </style>
</head>
<body>
<h1>📈 蓝思科技 (300433) 投资价值分析报告</h1>
<p style="text-align:center;">Stock Analysis Skill v1.4.1 | 2026-03-16 16:24</p>

<div class="conclusion">
    <h2 style="color:white;margin:0;">🎯 核心结论</h2>
    <p>报告生成中...请稍候刷新页面</p>
</div>

<div style="margin-top: 30px; text-align: center; font-size: 12px; color: #999;">
    <p>本报告由 Stock Analysis Skill 生成 | 仅供参考，不构成投资建议</p>
</div>
</body>
</html>


path: reports/领益智造_002600.html
content: <!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>领益智造 (002600.SZ) 投资价值分析报告</title>
  <style>
    @media print { @page { size: A4; margin: 2cm; } body { -webkit-print-color-adjust: exact; } }
    body { font-family: Arial, 'Microsoft YaHei', sans-serif; margin: 2cm; line-height: 1.6; color: #333; max-width: 210mm; }
    h1 { color: #1a5490; border-bottom: 3px solid #1a5490; padding-bottom: 10px; font-size: 24px; text-align: center; }
    h2 { color: #2d6ba8; background: linear-gradient(to right, #2d6ba8, transparent); padding: 8px 15px; margin-top: 25px; font-size: 18px; border-radius: 5px; }
    h3 { color: #4a90e2; font-size: 16px; margin-top: 20px; }
    table { width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 12px; }
    th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
    th { background-color: #1a5490; color: white; font-weight: bold; }
    tr:nth-child(even) { background-color: #f8f9fa; }
    .conclusion { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 10px; margin: 20px 0; }
    .badge { display: inline-block; padding: 3px 8px; border-radius: 3px; font-size: 11px; font-weight: bold; }
    .badge-green { background: #4caf50; color: white; }
    .badge-orange { background: #ff9800; color: white; }
    .badge-red { background: #f44336; color: white; }
    .footer { margin-top: 30px; padding-top: 15px; border-top: 2px solid #ddd; text-align: center; font-size: 10px; color: #999; }
  </style>
</head>
<body>

<h1>📈 领益智造 (002600.SZ) 投资价值分析报告</h1>
<p style="text-align:center;color:#666;">Stock Analysis Skill v1.4.1 | 分析日期：2026-03-16（收盘后）</p>

<div class="conclusion">
  <h2 style="color:white;background:none;margin:0 0 15px 0;">🎯 核心结论</h2>
  <table style="background:rgba(255,255,255,0.1);">
    <tr><th>评级</th><td><strong>增持（中性偏多）</strong></td><th>目标价</th><td>15.8 - 17.5 元（1年）</td></tr>
    <tr><th>当前价</th><td>14.40 元</td><th>上涨空间</th><td>+10% ~ +22%</td></tr>
  </table>
</div>

<h2>📊 收盘数据</h2>
<table>
  <tr><th>收盘价</th><td>14.40 元</td><th>涨跌幅</th><td><span class="badge badge-green">+0.28%</span></td></tr>
  <tr><th>昨收</th><td>14.36 元</td><th>今开</th><td>14.30 元</td></tr>
  <tr><th>最高</th><td>14.56 元</td><th>最低</th><td>14.01 元</td></tr>
  <tr><th>成交量</th><td>79.86 万手</td><th>成交额</th><td>11.36 亿元</td></tr>
</table>

<h2>🏢 公司概况</h2>
<ul>
  <li>主营：消费电子精密功能件/结构件、连接器、声学/马达/无线充电模组等；拓展车载与新能源零部件。</li>
  <li>客户：苹果、安卓头部品牌；绑定大客户、订单黏性强。</li>
  <li>属性：消费电子产业链核心零部件供应商，产品线多元、规模优势明显。</li>
</ul>

<h2>💰 基本面要点（框架）</h2>
<table>
  <tr><th>成长性</th><td>受益于手机/可穿戴/AI硬件复苏；车载业务放量带来第二增长曲线。</td></tr>
  <tr><th>盈利能力</th><td>规模化+自动化带动成本下降；产品结构升级有助毛利改善。</td></tr>
  <tr><th>财务健康</th><td>应收与存货需跟踪周转效率；现金流伴随旺季改善。</td></tr>
</table>

<h2>💵 估值与目标价（自上而下测算）</h2>
<table>
  <tr><th>情景</th><th>2025E EPS（假设）</th><th>合理PE</th><th>目标价</th><th>逻辑</th></tr>
  <tr><td>乐观</td><td>0.70</td><td>25x</td><td>17.5</td><td>消费电子强复苏+车载加速，毛利改善显著</td></tr>
  <tr><td>中性</td><td>0.63</td><td>24x</td><td>15.1</td><td>复苏斜率平稳，结构升级逐步兑现</td></tr>
  <tr><td>保守</td><td>0.58</td><td>22x</td><td>12.8</td><td>复苏不及预期、竞争加剧</td></tr>
</table>
<p><strong>综合目标价区间：</strong>15.8 - 17.5 元（取中性-乐观区间的加权）</p>

<h2>📉 技术面（收盘）</h2>
<table>
  <tr><th>短线</th><td>小阳线收盘，日内在14.01-14.56区间震荡，量能健康。</td></tr>
  <tr><th>关键位</th><td>支撑：14.00 / 13.60；阻力：14.60 / 15.00。</td></tr>
  <tr><th>操作</th><td>14附近分批吸纳，放量突破15元可加仓；跌破13.60需控制风险。</td></tr>
</table>

<h2>✅ 催化与风险</h2>
<table>
  <tr><th>催化</th><td>AI手机/可穿戴创新上新、安卓旗舰回暖、车载零部件放量、新客户/新平台导入。</td></tr>
  <tr><th>风险</th><td>下游需求波动、单一大客户波动、同业价格竞争、原材料/汇率波动。</td></tr>
</table>

<h2>🧭 投资建议</h2>
<table>
  <tr><th>结论</th><td><strong>增持（中线）</strong>：估值与成长性匹配度较好，阶段性回撤提供配置窗口。</td></tr>
  <tr><th>仓位</th><td>建议分批建仓；确认放量突破后再提升仓位。</td></tr>
  <tr><th>跟踪</th><td>季度营收与毛利率、核心客户订单节奏、车载业务收入占比。</td></tr>
</table>

<div class="footer">
  本报告由 Stock Analysis Skill v1.4.1 生成 | 数据来源：腾讯财经（行情），其余为公开资料与分析框架 | 仅供参考，不构成投资建议。
</div>

</body>
</html>


path: references/valuation-methods.md
content: # 估值方法参考

## 1. PE 法（市盈率）

### 公式
目标价 = 预期 EPS × 合理 PE

### 适用场景
- 盈利稳定的成熟公司
- 非周期性行业
- 净利润为正

### 合理 PE 确定
- 历史 PE 中位数
- 同业平均 PE
- 结合成长性调整

---

## 2. PEG 法

### 公式
合理 PE = 净利润增速 × PEG
PEG 通常取 1-2

### 适用场景
- 成长型公司
- 增速 > 15%
- 高估值但高成长

### 判断标准
- PEG < 1: 低估
- PEG = 1-2: 合理
- PEG > 2: 高估

---

## 3. PB 法（市净率）

### 公式
目标价 = 每股净资产 × 合理 PB

### 适用场景
- 重资产行业（银行、保险、地产）
- 周期性行业
- 亏损但资产扎实的公司

---

## 4. DCF 法（现金流折现）

### 公式
价值 = Σ(自由现金流 / (1+ 折现率)^t) + 终值

### 适用场景
- 现金流稳定的公司
- 成熟期企业
- 可预测性强的业务

### 关键参数
- 自由现金流预测（5-10 年）
- 折现率（WACC，通常 8-12%）
- 永续增长率（通常 2-5%）

---

## 5. PS 法（市销率）

### 公式
目标价 = 每股营收 × 合理 PS

### 适用场景
- 高成长未盈利公司
- SaaS、互联网平台
- 市场份额优先阶段

---

## 估值方法选择指南

| 公司类型 | 首选方法 | 辅助方法 |
|----------|----------|----------|
| 成熟蓝筹 | PE | DCF |
| 高成长 | PEG | PS |
| 周期股 | PB | PE(周期中位) |
| 金融 | PB | PE |
| 未盈利科技 | PS | DCF(远期) |


path: data/cache/financial_300433.json
content: 获取财务数据：300433


path: data/cache/holder_300433.json
content: 获取持仓数据：300433


path: data/cache/price_300433.json
content: 获取行情数据：300433


path: data/cache/research_300433.txt
content: 获取研报：300433
=== 中信证券 ===
=== 中金公司 ===
=== 天风证券 ===


path: data/cache/ths_300433.txt
content: 获取同花顺财务数据：300433


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)