Skill: frankxia2013/financial-advisor (version 1.0.0)

--- name: financial-advisor description: Professional financial analysis and investment advisory skill with institutional-grade valuation capabilities. Use when users want to analyze stocks, funds, ETFs, compare investments, get market reviews, perform DCF valuation, comparable company analysis, financial statement modeling, competitive landscape analysis, macro-economic analysis, geopolitical impact assessment, or receive investment recommendations. Provides data collection, quantitative analysis, risk assessment, valuation modeling, macro-economic context, global event intelligence, news intelligence, and HTML report generation with real-time data. cn_name: 金融数据分析与投资顾问 cn_description: 专业金融分析与投资顾问技能，具备机构级估值分析能力。当用户需要分析股票、基金、ETF、对比投资标的、DCF估值、可比公司分析、三表财务建模、竞争格局分析、宏观经济分析、国际局势评估、查看大盘复盘或获取投资建议时使用。提供数据采集、量化分析、风险评估、估值建模、宏观经济背景、国际事件情报、新闻情报和HTML报告生成。 author: Reconstructed by Learning version: 1.0.0 tags: [finance, quantitative, data-analysis, stock, fund, ETF, visualization, investment-advisory, valuation, dcf, financial-modeling, macro-economics, geopolitical, event-driven, trending] license: MIT --- # 🏦 Financial Advisor - 专业金融分析与投资顾问 ## 📋 技能概述 这是一个**机构级的金融分析技能**，提供从数据采集、量化分析、风险评估到投资建议的完整工作流程。 ### 核心能力 1. **📊 数据采集** - 实时行情、历史K线、基本面、财务数据 2. **📈 技术分析** - MA、MACD、RSI、BOLL、KDJ等30+指标 3. **⚠️ 风险评估** - 夏普比率、最大回撤、VaR、索提诺比率 4. **💰 估值分析** - DCF模型、可比公司分析、三表财务建模 5. **🌍 宏观分析** - 经济周期、货币政策、地缘政治影响 6. **📰 新闻情报** - 全网热点采集、事件传导分析 7. **🤖 AI深度分析** - 结构化思考框架、投资决策推导 8. **📄 专业报告** - HTML交互式报告、可视化图表 --- ## 🚀 使用流程 当用户请求分析某个股票/ETF/基金时，按以下流程执行： ### 阶段一：数据采集（Data Collection） ```bash # 1. 创建数据目录 mkdir -p {OUTPUT_DIR}/financial_data/{SYMBOL} # 2. 采集实时行情 python {skillDir}/scripts/fetch_stock_data.py \ --symbol {SYMBOL} \ --type realtime \ --output-dir {OUTPUT_DIR}/financial_data/{SYMBOL} \ --format csv # 3. 采集历史K线（3年数据） python {skillDir}/scripts/fetch_stock_data.py \ --symbol {SYMBOL} \ --type history \ --period 3y \ --output-dir {OUTPUT_DIR}/financial_data/{SYMBOL} \ --format csv # 4. 采集基本面数据 python {skillDir}/scripts/fetch_stock_data.py \ --symbol {SYMBOL} \ --type fundamental \ --output-dir {OUTPUT_DIR}/financial_data/{SYMBOL} \ --format csv # 5. 采集估值数据 python {skillDir}/scripts/fetch_stock_data.py \ --symbol {SYMBOL} \ --type valuation \ --output-dir {OUTPUT_DIR}/financial_data/{SYMBOL} \ --format csv ``` **输出文件**： - `{SYMBOL}_realtime.csv` - 实时行情 - `{SYMBOL}_history.csv` - 历史K线 - `{SYMBOL}_fundamental.csv` - 基本面 - `{SYMBOL}_valuation.csv` - 估值数据 --- ### 阶段二：指标计算（Indicator Calculation） ```bash # 1. 计算技术指标（MA、MACD、RSI、BOLL、KDJ等） python {skillDir}/scripts/calculate_indicators.py \ --input {OUTPUT_DIR}/financial_data/{SYMBOL}/{SYMBOL}_history.csv \ --output {OUTPUT_DIR}/financial_data/{SYMBOL}/{SYMBOL}_indicators.csv \ --indicator all # 2. 计算风险指标（夏普、回撤、VaR等） python {skillDir}/scripts/calculate_risk_metrics.py \ --input {OUTPUT_DIR}/financial_data/{SYMBOL}/{SYMBOL}_history.csv \ --output {OUTPUT_DIR}/financial_data/{SYMBOL}/{SYMBOL}_risk_metrics.json \ --risk-free-rate 0.03 ``` **输出文件**： - `{SYMBOL}_indicators.csv` - 技术指标时间序列 - `{SYMBOL}_risk_metrics.json` - 风险指标摘要 --- ### 阶段三：宏观与热点分析（Macro & Trending Analysis） ```bash # 1. 采集全网热点（13个平台） python {skillDir}/scripts/fetch_trending.py \ --output {OUTPUT_DIR}/financial_data/trending.json \ --platforms all \ --max-age-hours 24 # 2. 宏观经济分析与热点分类 python {skillDir}/scripts/macro_analysis.py \ --dashboard \ --trending-json {OUTPUT_DIR}/financial_data/trending.json \ --stock-name "{STOCK_NAME}" \ --industry "{INDUSTRY}" \ --reference-date {YYYY-MM-DD} \ --news-max-age-days 30 \ --output {OUTPUT_DIR}/financial_data/macro_dashboard.json ``` **输出文件**： - `trending.json` - 全网热点原始数据 - `macro_dashboard.json` - 宏观分析与热点分类 --- ### 阶段四：新闻搜索与情报分析（News Intelligence） 使用 `web_search` 工具搜索相关新闻（5-10条搜索）： ``` 搜索关键词示例： 1. "{股票名称} 最新消息 {YEAR}" 2. "{公司名称} 财报 业绩 {YEAR}" 3. "{行业} 政策 监管 {YEAR}" 4. "{公司名称} 竞争 对手" 5. "{股票代码} 投资 分析 展望" ``` --- ### 阶段五：AI深度分析（AI Deep Analysis） 基于采集的所有数据，创建 AI 分析文件： **1. 创建 `ai_analysis.json`**（核心结论） ```json { "summary": "一句话总结核心观点", "recommendation": "买入/持有/卖出", "target_price": {"low": XX, "mid": XX, "high": XX}, "stop_loss": XX, "news_intelligence": { "key_events": [ {"event": "事件描述", "impact": "影响分析", "direction": "利好/利空/中性"} ], "geopolitical": [...], "macro_policy": [...], "industry_dynamics": [...], "company_specific": [...], "market_sentiment": [...] }, "impact_assessment": [ { "event": "关键事件", "transmission": "传导路径（A → B → C → 股价）", "direction": "利好/利空", "strength": "强/中/弱", "duration": "时间周期" } ] } ``` **2. 创建 `key_findings.json`**（投资策略） ```json { "investment_thesis": "投资逻辑总结", "bull_case": ["看涨理由1", "看涨理由2", ...], "bear_case": ["看跌理由1", "看跌理由2", ...], "key_metrics": { "current_price": XX, "pe_ratio": XX, "pb_ratio": XX, ... }, "catalysts": [ {"catalyst": "催化剂", "timing": "时间", "impact": "影响"} ], "risks": [ {"risk": "风险", "probability": "概率", "impact": "影响", "mitigation": "缓解措施"} ], "investment_strategy": { "recommendation": "具体操作建议", "entry_range": [XX, XX], "target_price": {"conservative": XX, "base": XX, "optimistic": XX}, "stop_loss": XX, "position_sizing": "仓位建议", "time_horizon": "持有周期", "rebalancing": "再平衡策略" } } ``` --- ### 阶段六：生成专业报告（Report Generation） ```bash python {skillDir}/scripts/generate_html_report.py \ --title "{STOCK_NAME} 投资分析报告" \ --template stock \ --data-dir {OUTPUT_DIR}/financial_data/{SYMBOL} \ --ai-analysis-json {OUTPUT_DIR}/financial_data/ai_analysis.json \ --ai-deep-analysis-json {OUTPUT_DIR}/financial_data/key_findings.json \ --output {OUTPUT_DIR}/{STOCK_NAME}投资分析报告.html ``` **输出**： - 交互式HTML报告，包含： - 投资结论与评级 - 核心指标速览 - 实时行情数据 - 历史走势K线图（ECharts） - 技术指标分析 - 风险评估 - AI深度分析 - 新闻情报汇总 - 投资策略建议 --- ## 🎯 AI 深度分析框架 ### 思考路径（Deep Analysis Framework） 当进行深度分析时，遵循以下结构化思考框架： #### 1️⃣ **信息扫描（Information Scanning）** - 识别关键数据点：价格、估值、增长率、市占率 - 识别异常信号：暴涨暴跌、成交量异常、高管变动 - 识别时间线索：财报发布、政策出台、行业事件 #### 2️⃣ **事件传导分析（Event Transmission）** - 宏观 → 行业 → 公司 → 股价 - 政策 → 监管 → 商业模式 → 盈利 - 竞争 → 市场份额 → 收入 → 估值 示例： ``` ChatGPT爆发 → AI芯片需求激增 → HBM内存订单暴涨 → 三星/SK海力士业绩增长 → 韩国半导体出口强劲 → KOSPI上涨 → EWY受益 ``` #### 3️⃣ **交叉验证（Cross-Validation）** - 技术面 ↔ 基本面：价格走势是否匹配业绩 - 新闻 ↔ 数据：媒体报道是否与财务数据一致 - 宏观 ↔ 微观：经济周期是否支撑公司增长 #### 4️⃣ **风险矩阵（Risk Matrix）** ``` 风险类别 | 概率 | 影响 | 缓解措施 -------|------|------|---------- 短期调整 | 高 | 中 | 等待回调加仓 政局不稳 | 中 | 中 | 控制仓位 周期下行 | 中 | 高 | 跟踪订单数据 地缘风险 | 低 | 高 | 设置止损 ``` #### 5️⃣ **决策推导（Decision Derivation）** ``` 数据 → 观察 → 推理 → 结论 → 建议 示例： 数据：EWY涨175%，PE 17.5倍，回撤-15% 观察：AI芯片繁荣，机构上调目标，近期暴跌10% 推理：长期趋势向上，短期调整充分，估值合理 结论：持有评级，目标价145美元 建议：等待120-125美元加仓，止损115美元 ``` --- ## 📂 文件结构 ``` financial-advisor/ ├── SKILL.md # 本文件 ├── README.md # 技能说明 ├── requirements.txt # Python依赖 ├── SCRIPTS_GUIDE.md # 脚本详细文档 │ ├── scripts/ # Python工具脚本 │ ├── fetch_stock_data.py # 数据采集（yfinance） │ ├── calculate_indicators.py # 技术指标计算 │ ├── calculate_risk_metrics.py # 风险指标计算 │ ├── fetch_trending.py # 全网热点采集 │ ├── macro_analysis.py # 宏观分析与热点分类 │ ├── search_service.py # 新闻搜索服务 │ ├── calculate_valuation.py # DCF/可比公司估值 │ ├── generate_html_report.py # HTML报告生成 │ ├── market_review.py # 市场复盘 │ ├── validate_execution.py # 执行验证 │ ├── setup_dependencies.py # 依赖检查 │ └── templates/ # HTML模板 │ ├── examples/ # 使用示例 │ ├── single-stock-analysis.md # 单股分析示例 │ └── multi-stock-compare.md # 多股对比示例 │ └── references/ # 参考文档 ├── financial-indicators.md # 金融指标说明 ├── valuation-analysis.md # 估值方法论 ├── macro-event-framework.md # 宏观事件框架 ├── trading-discipline.md # 交易纪律 └── data-sources.md # 数据源说明 ``` --- ## 🔧 关键脚本说明 ### 1. `fetch_stock_data.py` **功能**：从 yfinance 采集股票数据 **参数**： - `--symbol`: 股票代码（如 AAPL、600519.SH） - `--type`: 数据类型（realtime/history/fundamental/valuation/financial） - `--period`: 历史周期（1y/3y/5y/max） - `--output-dir`: 输出目录 - `--format`: 输出格式（csv/json） **输出**：CSV格式的结构化数据 --- ### 2. `calculate_indicators.py` **功能**：计算技术指标 **支持指标**： - 均线：MA5/10/20/30/60/120/250 - 趋势：MACD、BOLL、ATR - 动量：RSI、KDJ - 成交量：OBV - 乖离率：BIAS **输出**：带技术指标的时间序列CSV --- ### 3. `calculate_risk_metrics.py` **功能**：计算风险指标 **输出指标**： - 收益率：累计、年化、日均 - 波动率：日波动、年化波动 - 风险调整收益：夏普比率、索提诺比率、卡玛比率 - 风险度量：最大回撤、VaR(95%/99%)、CVaR - 胜率统计：正收益天数、胜率、最大涨跌幅 --- ### 4. `fetch_trending.py` **功能**：采集全网热点 **数据源**（13个平台）： - 基础7个：微博、知乎、百度、36氪、虎嗅、微信、今日头条 - 金融扩展：雪球、东方财富、财联社 - 科技扩展：CSDN、开源中国、掘金 **输出**：JSON格式的热点列表，包含标题、链接、热度、时间 --- ### 5. `macro_analysis.py` **功能**：宏观经济分析与热点分类 **核心功能**： - 热点分类：按宏观/行业/公司维度分类 - 关键词提取：基于TF-IDF提取热点关键词 - 搜索查询生成：自动生成针对性搜索关键词 - 宏观数据：（需要akshare）利率、通胀、PMI等 **输出**：结构化的宏观分析仪表盘JSON --- ### 6. `generate_html_report.py` **功能**：生成专业HTML报告 **模板类型**： - `stock`: 单股分析报告 - `market`: 市场复盘报告 - `comprehensive`: 综合分析报告 - `compare`: 多股对比报告 **特性**： - 响应式设计 - ECharts交互式图表 - K线图、技术指标可视化 - AI分析区块 - 打印友好 --- ## 💡 使用示例 ### 示例1：分析单只股票 **用户请求**：「分析贵州茅台」 **执行步骤**： 1. 采集数据：实时行情、历史K线、基本面 2. 计算指标：技术指标、风险指标 3. 采集热点：全网时政热点 4. 宏观分析：分类热点、生成搜索查询 5. 新闻搜索：5-10条相关新闻 6. 深度分析：创建 ai_analysis.json 和 key_findings.json 7. 生成报告：HTML报告 **交付物**： - HTML投资分析报告 - 7个数据CSV/JSON文件 - AI分析结论文件 --- ### 示例2：对比多只股票 **用户请求**：「对比茅台和五粮液」 **执行步骤**： 1. 分别采集两只股票的全部数据 2. 计算各自的指标 3. 使用 `--template compare` 生成对比报告 4. 重点对比：估值、增长率、盈利能力、风险指标 --- ### 示例3：市场复盘 **用户请求**：「今天A股市场怎么样」 **执行步骤**： 1. 采集主要指数数据（上证、深成、创业板） 2. 采集行业板块数据 3. 采集龙虎榜、资金流向 4. 分析涨跌分布、成交量 5. 使用 `market_review.py` 生成复盘报告 --- ## 📊 数据源 ### 主要数据源 - **yfinance**：美股、港股、A股实时数据和历史K线 - **公开API**：热点榜单、新闻数据 - **Web Search**：补充新闻和深度报道 ### 备用数据源 - 腾讯财经API（参考示例代码） - 东方财富API - 雪球API --- ## ⚠️ 注意事项 ### 1. 执行顺序 **必须按顺序执行**： 1. 数据采集（CSV） 2. 指标计算（基于CSV） 3. 热点采集（trending.json） 4. 宏观分析（基于trending.json） 5. 新闻搜索 6. AI深度分析 7. 报告生成 ### 2. 数据存储 - 所有数据文件存储在 `{OUTPUT_DIR}/financial_data/` - 每个股票一个子目录 - CSV格式便于二次分析 ### 3. AI分析质量 - 必须基于真实数据，不能编造 - 事件传导路径要清晰 - 风险评估要全面 - 投资建议要具体可操作 ### 4. 报告质量 - 图表必须基于真实数据 - K线图自动生成（需要history.csv） - 技术指标可视化 - 响应式布局，支持移动端 --- ## 🎓 学习资源 ### 技能开发 - 参考 `examples/` 目录的完整示例 - 阅读 `references/` 目录的方法论文档 - 查看 `SCRIPTS_GUIDE.md` 的详细脚本说明 ### 金融知识 - `financial-indicators.md`: 技术指标详解 - `valuation-analysis.md`: 估值方法论 - `macro-event-framework.md`: 宏观分析框架 - `trading-discipline.md`: 交易纪律与风控 --- ## 📝 版本历史 - **v1.0.0** (2026-03-11): 初始还原版本 - 基于原始技能的使用记录还原 - 包含完整的数据采集、分析、报告生成流程 - 支持股票、ETF、基金分析 - 集成宏观分析和新闻情报 --- ## 📞 技术支持 如果在使用过程中遇到问题： 1. 检查 Python 依赖是否安装完整 2. 确认数据目录权限 3. 验证数据文件是否正确生成 4. 查看脚本输出的错误信息 --- ## 📜 许可证 MIT License - 本技能为学习还原版本，仅供参考学习。 --- **🌟 祝你投资顺利！**

path: examples/multi-stock-compare.md
content: # 示例：对比分析多只股票

**用户请求**：「对比分析贵州茅台和五粮液」

## 执行流程

```
1. 获取准确时间
2. python {skillDir}/scripts/setup_dependencies.py
3. ls -la (检查工作目录)
4. mkdir {OUTPUT_DIR}/financial_data/600519_SH + mkdir {OUTPUT_DIR}/financial_data/000858_SZ
5-7. fetch realtime/history/fundamental (600519.SH) × 3
8-10. fetch realtime/history/fundamental (000858.SZ) × 3
11-12. calculate_indicators × 2
13-14. calculate_risk_metrics × 2
15. list_dir (检查文件)
16. read_file × 6
17. ⭐⭐ fetch_trending.py 获取全网热点（必须先于搜索执行！）
18. ⭐ macro_analysis.py --dashboard --trending-json（宏观+热点分类+关键词提取）
19. read_file macro_dashboard.json（重点关注 hot_keywords）
20. ⭐ web_search × 4-6 (两只股票的新闻、行业政策)
21. ⭐ web_search × 3-5 (宏观政策、国际局势、全球市场、大宗商品、汇率资金)
22. ⭐ web_search × N (基于 hot_keywords 的动态搜索)
23. 创建 research_materials.json（素材归档）
24. 深度思考 + 对比分析
25. 创建 ai_analysis.json + ai_deep_analysis.json（综合分析研判拆分为双文件）
26. generate_html_report --macro-json --ai-analysis-json --ai-deep-analysis-json (分别生成或合并报告)
27. list_dir (展示清单)
```

## 全网时政热点采集（必须先于搜索执行）

```bash
# 采集全部 13 平台热点
python {skillDir}/scripts/fetch_trending.py \
  --all --limit 20 \
  --output {OUTPUT_DIR}/financial_data/trending.json

# 宏观分析 + 热点分类 + 关键词提取
python {skillDir}/scripts/macro_analysis.py \
  --dashboard \
  --trending-json {OUTPUT_DIR}/financial_data/trending.json \
  --stock-name "贵州茅台" \
  --industry "白酒" \
  --reference-date {当前日期YYYY-MM-DD} \
  --output {OUTPUT_DIR}/financial_data/macro_dashboard.json
```

将采集的热点数据传入宏观分析，脚本会自动分类为 13 个类别并提取热点关键词、生成动态搜索建议和事件→行业传导链。

## 对比分析要点

- **收益率对比**：年化收益率、累计收益率
- **风险对比**：波动率、最大回撤、夏普比率
- **估值对比**：PE、PB 相对高低
- **技术面对比**：均线排列、MACD/RSI 信号
- **基本面对比**：ROE、营收增长率、净利润增长率
- **热点对比**：行业地位、政策影响差异
- **宏观背景**：经济周期阶段、行业轮动建议、国际局势影响
- **热点事件传导**：基于 impact_chains 分析不同事件对两只股票的差异化影响

---

# 示例：对比分析 ETF

**用户请求**：「对比分析消费ETF(159928)和军工ETF(512660)」

## 注意事项

- ETF代码使用6位纯数字（如 `159928`、`512660`），**不加 `.SH`/`.SZ` 后缀**
- ETF 的 fundamental 数据会返回说明信息（ETF 无传统财务指标）
- 对比重点：历史收益率、波动率、夏普比率、最大回撤
- ⭐ **必须搜索行业热点**：行业政策、订单情况、资金流向

## ETF 新闻搜索示例

```typescript
// 公司/行业层面搜索
web_search({ searchTerm: '消费板块 行业趋势 政策 2026', explanation: '了解消费行业整体动态' });
web_search({ searchTerm: '军工行业 订单 国防预算 2026', explanation: '了解军工板块催化剂' });

// 宏观与国际层面搜索
web_search({ searchTerm: '中国宏观经济 GDP CPI PMI 2026', explanation: '了解宏观经济数据走向' });
web_search({ searchTerm: '全球地缘政治 中美关系 贸易 2026', explanation: '评估国际局势对行业影响' });
web_search({ searchTerm: '北向资金 外资流向 A股 2026', explanation: '了解资金面变化' });

// 动态热点搜索（基于 hot_keywords）
// 根据 macro_dashboard.json 中的 hot_keywords.dynamic_search_queries 执行
```

## 港股分析注意

- 港股代码**必须是5位数字**：`00700.HK`（腾讯）、`01810.HK`（小米）
- 4位代码（`0700`）会导致查询失败，必须补齐为5位
- 港股不支持 fundamental/financial 数据


path: references/trading-discipline.md
content: # 核心交易纪律与决策仪表盘

本文件定义投资分析必须严格遵守的交易纪律，以及决策仪表盘的输出格式。

---

## 核心交易纪律（必须严格遵守）

### 1. 严进策略（不追高）⚠️

- **绝对红线：乖离率 > 5% 坚决不买**
- **乖离率公式**：`(现价 - MA5) / MA5 × 100%`
- 乖离率检查必须在买入建议前完成
- 超过阈值时，必须输出：`⚠️ 乖离率 X%，严禁追高`

### 2. 趋势交易（顺势而为）

- **多头排列定义：MA5 > MA10 > MA20**
- **空头排列定义：MA5 < MA10 < MA20**
- 非多头排列时，不建议买入
- 均线间距扩大表示趋势强化

### 3. 效率优先（筹码结构）

- 关注筹码集中度：`90%筹码集中度 < 15%` 表示筹码集中
- 筹码过于分散时（>20%），需警惕主力离场
- 筹码结构健康是上涨的基础

### 4. 买点偏好（回踩支撑）

- **最佳买点：缩量回踩 MA5 获得支撑**
- 量比 < 0.7 且价格接近 MA5 时，优先考虑
- 量价配合：放量上涨健康，缩量回调是机会

---

## 分析准则（来自 agent customRules）

1. **数据驱动决策**：所有分析必须基于真实、可验证的金融数据
2. **多维度分析**：综合考虑基本面、技术面、行业趋势、政策环境、市场情绪等因素
3. **风险优先**：在给出任何投资建议前必须进行风险评估和风险提示
4. **精确执行**：投资建议必须包含具体的标的、价格区间、仓位配置、止盈止损点
5. **理由充分**：每项建议必须提供清晰的逻辑链条和数据支撑
6. **时效性保证**：优先使用最新数据，明确标注数据来源和时间
7. **合规要求**：避免内幕交易、市场操纵等违规建议，提示投资风险
8. **结构化输出**：使用表格、图表等方式清晰呈现分析结果
9. **持续追踪**：建议建立投资组合追踪文件，记录决策依据和持续监控指标
10. **专业术语**：使用准确的金融专业术语，但提供必要的解释说明

---

## 决策仪表盘输出格式（JSON）

分析完成后，必须输出以下 JSON 结构的决策仪表盘：

```json
{
  "dashboard": {
    "core_conclusion": {
      "one_sentence": "【一句话核心结论，30字以内】",
      "signal_type": "🟢买入信号 / 🟡持有观望 / 🔴卖出信号",
      "position_advice": {
        "no_position": "【空仓者建议】",
        "has_position": "【持仓者建议】"
      }
    },
    "data_perspective": {
      "trend_analysis": {
        "ma_alignment": "多头排列 / 空头排列 / 缠绕",
        "ma5": 0.0,
        "ma10": 0.0,
        "ma20": 0.0,
        "trend_strength": "强势 / 温和 / 弱势"
      },
      "price_analysis": {
        "current_price": 0.0,
        "bias_ma5": 0.0,
        "bias_ma5_pct": "X%",
        "bias_warning": "是否追高警报：是/否",
        "support_levels": ["XX元", "XX元"],
        "resistance_levels": ["XX元", "XX元"]
      },
      "volume_analysis": {
        "volume_ratio": 0.0,
        "volume_status": "放量 / 缩量 / 正常",
        "price_volume_match": "放量上涨 / 缩量回调 / 放量下跌 / 量价背离"
      },
      "chip_analysis": {
        "concentration_90": 0.0,
        "concentration_status": "集中 / 分散",
        "comment": "筹码结构分析"
      }
    },
    "intelligence": {
      "latest_news": "【最新消息摘要】",
      "risk_alerts": ["风险点1", "风险点2"],
      "positive_catalysts": ["利好1", "利好2"],
      "market_sentiment": "乐观 / 中性 / 悲观"
    },
    "battle_plan": {
      "sniper_points": {
        "ideal_buy": "XX.XX 元（理想买入点）",
        "stop_loss": "XX.XX 元（止损位）",
        "take_profit": "XX.XX 元（目标位）"
      },
      "action_checklist": ["✅ 多头排列", "✅ 乖离率 < 5%", "⚠️ 量能偏弱", "❌ 筹码过于分散"],
      "execution_plan": "【具体操作步骤】"
    }
  }
}
```

### 输出示例

```json
{
  "dashboard": {
    "core_conclusion": {
      "one_sentence": "技术面多头排列且乖离率合理，但估值偏高需谨慎",
      "signal_type": "🟡持有观望",
      "position_advice": {
        "no_position": "等待回调至180元附近再考虑买入",
        "has_position": "持有观望，设置止损175元"
      }
    },
    "data_perspective": {
      "trend_analysis": {
        "ma_alignment": "多头排列",
        "ma5": 185.2,
        "ma10": 182.5,
        "ma20": 178.9,
        "trend_strength": "温和"
      },
      "price_analysis": {
        "current_price": 190.5,
        "bias_ma5": 5.3,
        "bias_ma5_pct": "2.86%",
        "bias_warning": "否",
        "support_levels": ["185元(MA5)", "182元(MA10)"],
        "resistance_levels": ["195元", "200元"]
      },
      "volume_analysis": {
        "volume_ratio": 0.85,
        "volume_status": "缩量",
        "price_volume_match": "缩量回调"
      },
      "chip_analysis": {
        "concentration_90": 18.5,
        "concentration_status": "较分散",
        "comment": "筹码分散度略高，主力控盘力度一般"
      }
    },
    "intelligence": {
      "latest_news": "公司发布Q4财报，营收同比增长15%，符合预期",
      "risk_alerts": ["估值偏高，PE达到35倍，高于行业平均", "近期主力资金净流出5000万"],
      "positive_catalysts": ["行业政策利好，政府加大支持力度", "机构调研频繁，3家券商上调目标价"],
      "market_sentiment": "中性"
    },
    "battle_plan": {
      "sniper_points": {
        "ideal_buy": "180.00 元（回踩MA10附近）",
        "stop_loss": "175.00 元（跌破MA20）",
        "take_profit": "205.00 元（+13%）"
      },
      "action_checklist": [
        "✅ 多头排列（MA5 > MA10 > MA20）",
        "✅ 乖离率合理（2.86% < 5%）",
        "⚠️ 量能偏弱（缩量）",
        "⚠️ 筹码较分散（18.5%）",
        "⚠️ 估值偏高（PE 35倍）"
      ],
      "execution_plan": "建议等待回调至180元附近（MA10支撑），确认量能放大后分批买入，首次仓位不超过10%"
    }
  }
}
```

---

## 投资建议评分标准

基于数据驱动的客观评分体系（数据缺失时按有效维度折算）：

| 维度 | 满分 | 评判标准 | 数据缺失处理 |
|------|------|----------|-------------|
| 收益率评估 | 30 | 年化收益率、累计收益率 | 始终参与评分 |
| 风险控制 | 30 | 最大回撤、夏普比率、波动率 | 无数据时跳过 |
| 技术指标 | 20 | RSI、MACD 信号、均线排列 | 无数据时跳过 |
| 估值水平 | 20 | PE/PB 相对行业和历史分位数 | 港股/ETF无数据时跳过 |

**折算规则**：最终得分 = 有效维度得分之和 / 有效维度满分之和 × 100

**投资建议映射**：
- 80分以上 → 积极配置
- 60-80分 → 谨慎买入
- 40-60分 → 观望为主
- 40分以下 → 规避风险

**⚠️ 重要说明**：量化评分仅基于历史数据和技术指标，不包含新闻热点、宏观环境、行业趋势等定性因素。AI 的综合分析应通过 `--ai-analysis-json` 传入报告脚本，让报告首次生成就包含完整的深度分析。如果对报告不满意，用 `replace_in_file` 在原报告基础上修改，**不要重新生成或创建第二份报告**。

---

## 热点分析整合模板

热点分析必须整合到最终投资建议中：

```markdown
## 综合投资建议

### 数据驱动评分：XX/100分
- 收益率评估：XX/30分
- 风险控制：XX/30分
- 技术指标：XX/20分
- 估值水平：XX/20分

### 🔥 热点事件影响分析

#### 政策层面
- 近期政策：[根据web_search结果]
- 影响评估：正面/负面/中性
- 应对建议：关注XX指标变化

#### 行业动态
- 行业趋势：增速XX%，景气度XX
- 竞争格局：市占率XX，排名XX

#### 公司事件
- 最新动态：[根据web_search结果]
- 业绩表现：营收XX，净利XX

#### 市场情绪
- 机构观点：XX家上调评级，目标价XX
- 资金流向：近XX日净流入XX亿

### 投资建议：[买入/持有/卖出]

**操作建议**：
- 建议仓位：X-X%
- 买入时机：回调至XX元附近
- 止盈目标：XX元（+X%）
- 止损位：XX元（-X%）

**风险提示**：
1. [基于数据的风险]
2. 🔥 [基于热点的风险]
```


path: requirements.txt
content: yfinance>=0.2.36
pandas>=2.0.0
numpy>=1.24.0
matplotlib>=3.7.0
plotly>=5.18.0
scipy>=1.11.0
statsmodels>=0.14.0
requests>=2.31.0
openpyxl>=3.1.0
Jinja2>=3.1.0


path: scripts/templates/nav_scroll.js
content: (function() {
    var navItems = document.querySelectorAll('.report-nav .nav-item[href]');
    if (!navItems.length) return;
    var sections = [];
    navItems.forEach(function(a) {
        var id = a.getAttribute('href').replace('#', '');
        var el = document.getElementById(id);
        if (el) sections.push({ el: el, link: a });
    });
    function updateActive() {
        var scrollTop = window.scrollY + 80;
        var active = null;
        for (var i = sections.length - 1; i >= 0; i--) {
            if (sections[i].el.offsetTop <= scrollTop) { active = sections[i]; break; }
        }
        navItems.forEach(function(a) { a.classList.remove('active'); });
        if (active) active.link.classList.add('active');
    }
    window.addEventListener('scroll', updateActive, { passive: true });
    updateActive();
})();


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