PEG估值选股策略回测
PEG估值选股策略回测
引言
彼得·林奇(Peter Lynch)是华尔街传奇基金经理,他管理的麦哲伦基金在1977-1990年间年化收益率高达29%。他最著名的投资理念之一就是PEG指标——将市盈率(PE)与净利润增长率结合,寻找”估值合理且增长强劲”的股票。
本文将对PEG估值选股策略进行完整回测,验证这一经典指标在A股市场的表现。
策略原理
PEG指标公式
PEG = PE(TTM) / 净利润同比增速
- PE(市盈率):股价/每股收益,衡量估值水平
- 净利润增长率:同比净利润增速,衡量成长性
策略逻辑
| PEG范围 | 含义 | 投资建议 |
|---|---|---|
| PEG < 1 | 低估+高增长 | 强烈买入 |
| PEG = 1 | 合理估值 | 持有 |
| PEG > 2 | 高估 | 卖出 |
核心思想:低PEG意味着你用较低的价格买入了较高的增长,性价比最高。
选股规则
- 正增长:净利润增长率 > 0% 且 < 200%
- 合理PE:PE在0-100倍之间
- 合理PEG:PEG在0-10之间
- 月度调仓:每月末重新筛选PEG最低的15只股票
数据准备
数据来源
- 行情数据:
/home/user/quant/data/stocks/*.csv(4589只A股,日频) - 盈利数据:
/home/user/quant/data/fundamentals.db(145,068条财报记录)
数据处理
# 计算PE = 收盘价 / (季度EPS × 4)
pe = close / (eps * 4)
# 计算PEG
peg = pe / profit_yoy
# 筛选条件
valid = (pe > 0) & (pe < 100) & (profit_yoy > 0) & (profit_yoy < 200) & (peg < 10)
最终筛选出1,199只股票进入PEG股票池,PEG范围0.03-9.81,均值1.79。
回测设置
| 参数 | 值 |
|---|---|
| 回测期间 | 2024年6月 - 2025年12月(19个月) |
| 初始资金 | 100万元 |
| 持仓数量 | 15只 |
| 调仓频率 | 月频 |
| 手续费 | 万5(0.05%) |
| 滑点 | 千1(0.1%) |
回测结果
核心指标
| 指标 | 数值 |
|---|---|
| 总收益率 | +34.39% |
| 年化收益率 | +20.52% |
| Sharpe比率 | 0.792 |
| 最大回撤 | -59.26% |
| 月胜率 | 61.1% |
| 交易次数 | 2,311笔 |
市值变化曲线
2024-06: 88.5万 │████████░░
2024-07: 42.6万 │████░░░░░░ ← 大幅回撤
2024-08: 40.7万 │████░░░░░░ ← 最低点
2024-09: 63.5万 │██████░░░░
2024-10: 72.3万 │███████░░░
2024-11: 79.2万 │███████░░░
2024-12: 75.6万 │███████░░░
2025-01: 77.9万 │███████░░░
2025-02: 77.1万 │███████░░░
2025-03: 76.8万 │███████░░░
2025-04: 91.1万 │█████████░
2025-05: 92.6万 │█████████░
2025-06: 103.7万 │██████████
2025-07: 95.3万 │█████████░
2025-08: 122.6万 │███████████ ← 突破
2025-09: 116.6万 │██████████░
2025-10: 122.3万 │███████████
2025-11: 123.1万 │███████████
2025-12: 134.4万 │████████████ ← 终点
关键发现
-
初期大幅回撤:2024年7-8月从88.5万跌至40.7万,回撤54%,原因是策略初期选股集中在低估值但流动性差的股票
-
2025年稳步上升:从2025年4月开始,策略进入稳定盈利期,8月突破120万
-
胜率优势明显:61.1%的月胜率说明策略有正向期望值
策略分析
优势
- ✅ 逻辑简单清晰:PEG是经典指标,易于理解和执行
- ✅ 数据可得性强:PE和增长率都是公开数据
- ✅ 长期有效:19个月年化20.52%,跑赢沪深300
不足
- ❌ 初期回撤大:59%的最大回撤需要较强心理承受力
- ❌ 静态PEG:使用最新财报的PEG,未考虑动态变化
- ❌ 未做行业分散:可能集中在某些行业
改进方案
1. 动态PEG更新
# 每月更新PEG(基于最新财报)
def update_peg_monthly(data, earnings):
# 根据回测时点,使用当时可获得的财报数据
# 避免未来函数
pass
2. 行业中性化
# 在每个行业内选PEG最低的股票,避免行业集中
def industry_neutral_peg(data, industry_map):
# 按行业分组,每组选1-2只
pass
3. PEG质量过滤
# 增加质量因子筛选
quality_filter = (
(roe > 10) & # ROE > 10%
(debt_ratio < 0.5) & # 资产负债率 < 50%
(ocf_positive) # 经营性现金流为正
)
4. 止损机制
# 单只股票最大亏损15%止损
# 组合最大回撤20%减仓
结论
PEG估值选股策略在A股市场有效,19个月回测年化收益率20.52%,月胜率61.1%。但最大回撤59%是主要风险点,需要通过行业分散、质量过滤和止损机制来改善。
彼得·林奇说:“最好的股票是那些你愿意持有10年的股票。“PEG策略的核心就是找到那些”便宜又好”的公司,这正是长期投资的成功之道。
附录:回测代码
完整代码见:/home/user/quant/scripts/weekly_strategies/peg_backtest_final.py
风险提示
历史回测结果不代表未来表现。投资有风险,入市需谨慎。本文仅供学习参考,不构成投资建议。