skills/financial-report-writing/references/best_practices.md
wangyitong a65adcc2e5 Initial commit: merged, deduplicated, and vetted skill collection
Sources: extracted from two upstream archives (skill-repo, skills-main),
merged with the following policy:

- 15 broken symlinks (pointing to /Users/jameslee/.cc-switch/skills or
  ../../.agents/skills on a foreign machine) discarded
- 3 real name collisions with identical content (ai-pair, ifind-http-api,
  zhipu-websearch) kept as one copy
- Functional overlaps deduped keeping the strongest variant:
  - docx family: kept docx (official, full toolchain) + docx-cn
    (GB/T 9704 Chinese official-document constants),
    dropped docx_writer (no scripts, name collided with docx)
  - humanizer family: kept humanizer-zh (6 zh reference docs),
    dropped humanizer (en, redundant for CN workflow)
- Skills that only ran in a foreign environment removed:
  ablemind-ops, app-publish, hlb-design-system, openclaw-adj-skill,
  claude-driver
- alphapai excluded from this public repo because its SKILL.md hard-coded
  live credentials

Result: 25 skills, 572 files, ~7.5 MB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 14:47:12 +08:00

338 lines
8.7 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.

# 金融研究报告最佳实践
## 目录
1. [数据获取最佳实践](#数据获取最佳实践)
2. [分析框架](#分析框架)
3. [报告撰写规范](#报告撰写规范)
4. [常见陷阱](#常见陷阱)
5. [质量控制检查清单](#质量控制检查清单)
6. [案例分析](#案例分析)
---
## 数据获取最佳实践
### WindPy 连接管理
```python
# 推荐做法:使用上下文管理器
with WindDataFetcher() as fetcher:
df = fetcher.get_daily_data(stock_code, start_date, end_date, fields)
# 自动处理连接关闭
# 不推荐:手动管理连接
w.start()
# ... 代码 ...
w.stop() # 容易遗漏
```
### 日期处理
- 始终使用标准格式 `YYYY-MM-DD`
- 获取周线数据时,使用 `resample('W')` 而非手动计算
- 处理交易日历,避免非交易日数据的干扰
### 数据校验
```python
def validate_data(df, required_columns):
"""数据质量检查"""
# 检查空值
if df.isnull().any().any():
print(f"警告:数据包含空值")
df = df.dropna()
# 检查异常值
for col in ['close', 'high', 'low']:
if col in df.columns:
if (df[col] <= 0).any():
raise ValueError(f"{col} 包含非正值")
# 检查必需字段
missing_cols = set(required_columns) - set(df.columns)
if missing_cols:
raise ValueError(f"缺少必需字段: {missing_cols}")
return df
```
---
## 分析框架
### 基本面分析维度
1. **盈利能力**
- ROE净资产收益率\>15% 优秀10-15% 良好
- ROA总资产收益率\>8% 优秀
- 毛利率:行业对比
- 净利率:趋势分析
2. **成长能力**
- 营收增长率
- 净利润增长率
- 复合年均增长率CAGR
3. **运营效率**
- 存货周转率
- 应收账款周转率
- 总资产周转率
4. **偿债能力**
- 资产负债率:<70% 安全
- 流动比率>1.5 较好
- 速动比率:>1 较好
5. **现金流**
- 经营现金流净额
- 自由现金流
- 现金流/净利润 比率
### 技术面分析维度
1. **趋势判断**
- 均线系统MA5/10/20/60
- 高低点连线
- 趋势线斜率
2. **支撑阻力**
- 历史高低点
- 密集成交区
- 均线支撑
3. **波动特征**
- 历史波动率
- 振幅统计
- 布林带宽度
### 估值分析框架
1. **相对估值**
- PE市盈率与历史/行业对比
- PB市净率适用于重资产行业
- PS市销率适用于成长型企业
2. **绝对估值**
- DCF模型
- DDM模型
---
## 报告撰写规范
### 标题层级
```
一级标题黑体三号16pt如"一、投资评级"
二级标题黑体三号16pt如"(一)基本面分析"
三级标题黑体小四12pt如"1. 盈利能力"
```
### 正文写作原则
1. **数据先行**:先陈述事实数据,后给出分析结论
2. **逻辑清晰**:使用"首先...其次...最后..."等逻辑连接词
3. **客观中立**:避免使用"必然"、"一定"等绝对化表述
4. **风险提示**:每个投资建议都应附带风险提示
### 表格规范
- **表头**黑体小四12pt居中
- **数据**仿宋小四12pt居中
- **对齐**:日期左对齐,数值右对齐
- **单位**:在表头或表注中明确标注
### 数字格式
```python
# 价格保留2位小数
price_str = f"{price:.2f}元"
# 百分比保留2位小数带%号
pct_str = f"{pct:.2f}%"
# 大数字:使用万/亿单位
amount_wan = f"{amount / 10000:.0f}万元"
amount_yi = f"{amount / 100000000:.2f}亿元"
```
---
## 常见陷阱
### 数据陷阱
1. **前复权与后复权混淆**
- 计算收益率时必须使用前复权数据
- 查看历史价格时注意复权方式
2. **停牌数据处理**
- 停牌期间数据可能为空
- 成交量为0需要特殊处理
3. **财报季节效应**
- Q4数据通常包含全年调整
- 同比计算时注意去年同期特殊情况
### 分析陷阱
1. **幸存者偏差**
- 只分析现有公司,忽视已退市公司
- 行业对比时使用可比较样本
2. **过度拟合**
- 避免基于历史数据过度优化参数
- 使用滚动回测验证策略
3. **相关性不等于因果性**
- 相关系数高不代表因果关系
- 考虑第三变量的影响
### 报告陷阱
1. **目标价计算过于乐观**
- 考虑多种情景(乐观/中性/悲观)
- 明确目标价有效期
2. **忽视流动性风险**
- 小市值股票注意流动性
- 考虑交易成本影响
3. **风险提示流于形式**
- 针对具体股票的风险要具体化
- 量化风险等级
---
## 质量控制检查清单
### 数据检查
- [ ] 数据来源明确标注
- [ ] 数据时间范围正确
- [ ] 无缺失值或已说明处理方式
- [ ] 价格数据使用正确复权方式
- [ ] 财务数据使用最新财报
### 分析检查
- [ ] ROE、PE等关键指标计算正确
- [ ] 涨跌幅计算准确
- [ ] 均线计算无未来函数
- [ ] 支撑阻力位基于实际高低点
### 格式检查
- [ ] 页面边距37/35/28/26mm
- [ ] 标题使用黑体三号
- [ ] 正文使用仿宋四号
- [ ] 表格使用小四
- [ ] 三线表格式正确
- [ ] 页脚页码格式正确
### 内容检查
- [ ] 核心提要包含4个要点
- [ ] 投资评级明确
- [ ] 目标价格合理且有依据
- [ ] 风险提示具体充分
- [ ] 无明显错别字
- [ ] 语句通顺无歧义
---
## 案例分析
### 案例1成长股分析报告
**股票特征**高ROE、高PE、快速增长
**分析重点**
- 关注营收和利润增长持续性
- 分析行业空间和竞争格局
- 评估估值合理性PEG指标
**报告结构**
```
核心提要
├── 高速增长:营收/利润CAGR > 30%
├── 行业龙头:市场份额持续提升
├── 估值偏高PE高于行业平均
└── 给予"增持"评级
一、投资评级
├── 增持
├── 目标价
└── 风险提示:增速放缓风险
二、核心观点
├── (一)基本面分析
│ ├── 1. 成长性营收增长35%净利润增长42%
│ ├── 2. 盈利能力ROE 22%毛利率58%
│ └── 3. 估值PE 45倍PEG 1.1
├── (二)技术面分析
│ ├── 1. 趋势:长期上升通道
│ ├── 2. 支撑MA60支撑有效
│ └── 3. 成交量:放量突破
└── (三)投资建议
└── 关注回调至支撑位买入机会
```
### 案例2价值股分析报告
**股票特征**低PE、高股息、稳定增长
**分析重点**
- 关注股息率和分红稳定性
- 分析护城河和竞争优势
- 评估安全边际
**核心指标对比**
| 指标 | 该公司 | 行业平均 | 评价 |
|------|--------|----------|------|
| PE TTM | 8.5 | 15.2 | 低估 |
| PB LF | 1.2 | 2.1 | 低估 |
| 股息率 | 5.2% | 2.8% | 优秀 |
| ROE | 14.5% | 12.3% | 良好 |
### 案例3周期股分析报告
**股票特征**:业绩波动大、与宏观经济高度相关
**分析重点**
- 关注行业景气度周期
- 分析产能利用率和库存
- 判断周期位置(顶部/底部/上升/下降)
**风险提示模板**
```
风险提示:
1. 宏观经济下行风险
2. 行业产能过剩风险
3. 原材料价格波动风险
4. 下游需求不及预期风险
5. 政策监管变化风险
```
---
## 附录:常用 Wind 字段速查
### 价格字段
| 字段 | 说明 | 用途 |
|------|------|------|
| close | 收盘价 | 技术分析基础 |
| open | 开盘价 | 日K线 |
| high | 最高价 | 支撑阻力分析 |
| low | 最低价 | 支撑阻力分析 |
| volume | 成交量 | 量价分析 |
| amt | 成交额 | 流动性分析 |
| pct_chg | 涨跌幅 | 收益率计算 |
### 技术指标字段
| 字段 | 说明 | 用途 |
|------|------|------|
| ma5/ma10/ma20/ma60 | 均线 | 趋势判断 |
| pe_ttm | 市盈率TTM | 估值分析 |
| pb_lf | 市净率LF | 估值分析 |
| ps_ttm | 市销率TTM | 估值分析 |
| turnover | 换手率 | 活跃度分析 |
### 财务字段
| 字段 | 说明 | 用途 |
|------|------|------|
| roe_wgt | 加权ROE | 盈利能力 |
| roa2 | 总资产报酬率 | 盈利能力 |
| grossprofitmargin | 毛利率 | 盈利能力 |
| netprofitmargin | 净利率 | 盈利能力 |
| debt_to_assets | 资产负债率 | 偿债能力 |
| current_ratio | 流动比率 | 偿债能力 |
---
## 版本记录
| 版本 | 日期 | 更新内容 |
|------|------|----------|
| 1.0 | 2026-02-06 | 初始版本,包含基础最佳实践 |