研报复现|史蒂夫·路佛价值选股法则
本文参考:20151009-申万宏源-申万大师系列价值投资篇之八:史蒂夫·路佛价值选股法则
史蒂夫·路佛是华尔街著名投资人,拥有40余年投资研究经验,1969-1981年先后担任投资策略分析师和投资组合经理,1981年创立路佛威登资产管理公司,后成为欧本海默基金成员。他管理的路佛核心投资基金曾获晨星公司五颗星评价,2005年管理资产规模达10亿美元,其投资理念集中体现在《The Myths of inflation and Investing》等著作中。
策略概述
史蒂夫·路佛价值选股法则从估值水平、分红水平和财务状况三个角度出发,提出7条可量化的选股标准,强调通过客观指标筛选“便宜且财务健康”的股票。策略注重系统性设计,减少主观判断,回测显示其在A股市场具有较强适用性,年化收益率达23.9%,超额收益显著。
策略实现逻辑
策略实现逻辑与步骤
核心逻辑:通过多维度财务指标筛选低估值、高分红、财务稳健的公司,认为此类公司具备长期投资价值。
具体步骤:
估值筛选:要求市净率、市盈率、市现率低于市场平均值,每股流动资产/股价达标,确保股票“便宜”;
分红要求:股息收益率不低于市场平均值,保障股东收益;
财务健康:长期借款/总资本<50%,流动比率高于市场平均值,降低偿债风险。
核心指标及含义
指标 | 含义 | 计算公式 | 作用 |
---|---|---|---|
市盈率(PE) | 股价与每股收益的比率,衡量估值水平 | 市盈率 = 股价 ÷ 每股收益(5年平均) | 筛选低估值股票 |
市净率(PB) | 股价与每股净资产的比率,反映股价相对资产的溢价 | 市净率 = 股价 ÷ 每股净资产 | 排除资产高估标的 |
市现率 | 股价与每股现金流量的比率,衡量现金流匹配度 | 市现率 = 股价 ÷ 每股现金流量 | 评估盈利质量 |
每股流动资产/股价 | 每股流动资产与股价的比率,衡量资产流动性价值 | 每股流动资产/股价 = 每股流动资产 ÷ 股价 × 100% | 确保股价有流动资产支撑 |
股息收益率 | 年度股息与股价的比率,衡量分红水平 | 股息收益率 = 近12个月每股股息 ÷ 股价 × 100% | 筛选高分红股票 |
长期借款/总资本 | 长期借款占总资本的比例,衡量财务杠杆 | 长期借款/总资本 = 长期借款 ÷ 总资本 × 100% | 控制负债风险 |
流动比率 | 流动资产与流动负债的比率,衡量短期偿债能力 | 流动比率 = 流动资产 ÷ 流动负债 | 评估短期偿债能力 |
市净率(PB)
定义
衡量股价相对于每股净资产的倍数,用于评估资产密集型企业的估值水平。计算公式
市净率当前股价每股净资产
其中,每股净资产 = 股东权益合计 ÷ 总股本。
财报对应名称
股东权益合计:资产负债表中“归属于母公司所有者权益合计”。
总股本:资产负债表“股本”或“实收资本”科目。
市现率
定义
衡量股价相对于每股现金流量的倍数,反映企业现金创造能力的估值。计算公式
市现率当前股价每股经营活动现金流量
其中,每股经营活动现金流量 = 经营活动现金流量净额 ÷ 总股本。
财报对应名称
经营活动现金流量净额:现金流量表中“经营活动产生的现金流量净额”。
市盈率(PE)
定义
衡量投资者为获取单位净利润支付的价格,反映市场对未来盈利的预期。计算公式
静态市盈率当前股价上一年度每股收益
动态市盈率当前股价预测本年度每股收益
财报对应名称
每股收益:利润表中“基本每股收益”或“稀释每股收益”。
每股流动资产
定义
每股股票对应的流动资产价值,反映企业短期变现能力。计算公式
每股流动资产流动资产合计总股本
财报对应名称
流动资产合计:资产负债表中“流动资产合计”科目。
股息收益率
定义
年度股息与股价的比率,衡量股东现金回报水平。计算公式
股息收益率每股股息当前股价
财报对应名称
每股股息:利润分配表中“每股派发现金红利”,或现金流量表“分配股利、利润支付的现金”。
股价现金流量
定义
衡量股价相对于每股现金流量的指标,与市现率类似,但可能使用不同口径的现金流量(如自由现金流量)。计算公式
股价现金流量比当前股价每股自由现金流量
其中,每股自由现金流量 = (经营活动现金流量净额 - 资本支出) ÷ 总股本。
财报对应名称
资本支出:现金流量表中“购建固定资产、无形资产和其他长期资产支付的现金”。
长期借款
定义
企业向外部机构借入的期限超过一年的债务,属于非流动负债。财报对应名称
长期借款:资产负债表中“长期借款”科目,通常在非流动负债部分。
总资本
定义
企业全部长期资金来源的总和,包括股东权益和长期负债。计算公式
总资本股东权益合计长期负债合计
财报对应名称
长期负债合计:资产负债表中“长期借款”“应付债券”等非流动负债科目之和。
指标应用逻辑
筛选逻辑:
先通过市盈率、市净率、市现率和每股流动资产/股价排除高估值股票;
再用股息收益率筛选高分红标的,强化价值属性;
最后通过长期借款/总资本和流动比率确保公司财务稳健,降低暴雷风险。
逻辑优势:指标覆盖估值、分红、财务三大核心维度,形成多层过滤体系,兼顾价值与安全。
策略回测
回测方案设计
回测周期:2020年1月1日至2025年1月1日, 共计1212交易日。
数据范围:历史上所有沪深300成分股(含退市股票)。
调仓频率:每年12次调仓, 每月度月初调仓。
手续费:交易费用为千分之1.3。
业绩基准:沪深300指数
回测结果分析
from backtest.analyzer import StrategyAnalyzer
from backtest.visualizer import Visualizer
def screen_stocks(self, date):
"""
市净率低于全市场平均值
PE 低于全市场平均值
每股流动资产至少是股价的 30%
股息收益率不低于全市场平均值
股价现金流量比低于全市场平均值
长期借款占总资本比率低于 50%
流动比率高于市场平均值
参数:
date: 日期,用于筛选特定交易日的数据
返回:
符合筛选条件的股票代码列表
"""
qualified_stocks = []
data_strategy = self.data_strategy.copy()
if data_strategy is None:
return qualified_stocks
data_strategy['trade_date'] = pd.to_datetime(
data_strategy['trade_date'],
format='%Y%m%d'
)
data_strategy = data_strategy[data_strategy['trade_date'] == date]
if len(data_strategy) == 0:
print(f'Error: 调仓日:{date}, 无数据!')
return qualified_stocks
data_strategy.fillna(0, inplace=True)
# 强制转换数值列类型并处理异常值
numeric_cols = [
'close', 'pb', 'pe', 'dv_ratio', 'cfps',
'current_ratio', '每股流动资产', '股价现金流量比', '总资本', 'lt_borr', 'market_avg_pb',
'market_avg_pe', 'market_avg_dv', 'market_avg_cfps_ratio',
'market_avg_current_ratio'
]
data_strategy[numeric_cols] = data_strategy[numeric_cols].apply(pd.to_numeric, errors='coerce')
# 定义筛选条件
conditions = [
"总得分==True"
]
# 构建查询字符串
query_str = " and ".join(conditions)
filtered_df = data_strategy.query(query_str)
print(f"{date}: 符合条件标的个数:{len(filtered_df)}")
results = filtered_df
# 按PE排序并限制持股数量
qualified_stocks = results['ts_code'].tolist()
return qualified_stocks
analyzer = StrategyAnalyzer()
performance = analyzer.analyze()
analyzer.generate_report(performance);
===== 回测报告 =====
回测周期: 20200101 - 20250101
初始资金: 10,000,000.00元
最终资金: 5,479,659.82元===== 收益分析 =====
总收益率: -45.13%
年化收益率: -11.73%
基准总收益率: -5.23%
基准年化收益率: -1.11%
超额收益率: -39.90%===== 风险分析 =====
最大回撤: -74.84%
基准最大回撤: -45.60%
波动率: 30.14%
基准波动率: 19.59%===== 风险调整后收益 =====
夏普比率: -0.26
基准夏普比率: 0.04
索提诺比率: -0.37
卡玛比率: -0.16===== 胜率和盈亏比 =====
胜率: 47.52%
盈亏比: 1.05===== 月度表现 =====
盈利月份: 24
亏损月份: 36
月度胜率: 40.00%===== 交易统计 =====
总交易次数: 1604
买入次数: 807
卖出次数: 797
交易总费用: 1566132.18元===== 总结 =====
策略表现劣于基准,超额收益为负
夏普比率 -0.26,风险调整后收益一般
==============================================
visualizer = Visualizer()
visualizer.strategy_title = "史蒂夫·路佛价值选股法则"
visualizer.plot_performance(performance)
png
png
png