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

8.7 KiB
Raw Blame History

金融研究报告最佳实践

目录

  1. 数据获取最佳实践
  2. 分析框架
  3. 报告撰写规范
  4. 常见陷阱
  5. 质量控制检查清单
  6. 案例分析

数据获取最佳实践

WindPy 连接管理

# 推荐做法:使用上下文管理器
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') 而非手动计算
  • 处理交易日历,避免非交易日数据的干扰

数据校验

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居中
  • 对齐:日期左对齐,数值右对齐
  • 单位:在表头或表注中明确标注

数字格式

# 价格保留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 初始版本,包含基础最佳实践