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>
338 lines
8.7 KiB
Markdown
338 lines
8.7 KiB
Markdown
# 金融研究报告最佳实践
|
||
|
||
## 目录
|
||
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 | 初始版本,包含基础最佳实践 |
|