加载中...

金融基础知识速查手册:PE、PB、ROE 到底是什么

做了几年金融相关的数据分析,发现很多概念刚开始接触时挺懵的。书上写得太学术,网上的解释又太碎片化。这篇文章整理下工作中常见的金融基础知识,尽量用大白话说清楚。

主要面向跟我一样半路出家做金融数据分析的同行,或者刚入行的新人。

收益率相关

年化收益率

年化收益率不是实际收益率,是把短期收益换算成一年的收益。

举个例子:

  • 你买了个理财产品,7天赚了100块,本金1万
  • 7天收益率 = 100/10000 = 1%
  • 年化收益率 = 1% × (365/7) ≈ 52.14%

看起来很高对吧?但实际上你7天只赚了1%。年化收益率只是个参考指标,不代表你持有一年真能赚这么多。

计算公式:

年化收益率 = (投资收益 / 本金) × (365 / 投资天数)

为什么要算年化:

  • 方便比较不同期限的产品
  • 比如7天的和30天的,直接比收益率没法看,换成年化就好对比了

累计收益率 vs 区间收益率

累计收益率:从买入到现在,总共赚了多少(或亏了多少)

累计收益率 = (当前净值 - 买入净值) / 买入净值

举例:

  • 买入时基金净值 1.0,现在 1.2
  • 累计收益率 = (1.2 - 1.0) / 1.0 = 20%

区间收益率:某个时间段内的收益

比如看某基金今年的表现,就算1月1日到现在的区间收益率。

复合收益率

这个容易搞混。很多人以为每年赚10%,10年就是100%。其实不是。

单利计算:

  • 第1年:10000 × 10% = 1000,本金变11000
  • 第2年:10000 × 10% = 1000,本金变12000
  • 10年后:10000 + 1000×10 = 20000(赚了100%)

复利计算(实际情况):

  • 第1年:10000 × 10% = 1000,本金变11000
  • 第2年:11000 × 10% = 1100,本金变12100
  • 第3年:12100 × 10% = 1210,本金变13310
  • 10年后:10000 × (1+10%)^10 ≈ 25937(赚了159%)

复利的威力就在这,时间越长差距越大。

复合收益率 = (1 + 年收益率1) × (1 + 年收益率2) × ... - 1

风险指标

最大回撤

这个很重要,特别是看基金的时候。

最大回撤:从历史最高点跌到最低点,最大的跌幅。

举例:

  • 某基金净值走势:1.0 → 1.5 → 1.2 → 1.8 → 1.3
  • 从1.5跌到1.2,回撤 = (1.2-1.5)/1.5 = -20%
  • 从1.8跌到1.3,回撤 = (1.3-1.8)/1.8 = -27.8%
  • 最大回撤就是 -27.8%

为什么重要:

  • 告诉你这个产品最惨的时候跌了多少
  • 心理承受能力有多强,看这个指标就知道能不能拿得住
def max_drawdown(returns):
    """计算最大回撤"""
    cumulative = (1 + returns).cumprod()
    running_max = cumulative.expanding().max()
    drawdown = (cumulative - running_max) / running_max
    return drawdown.min()

波动率(标准差)

波动率就是收益率的标准差,反映收益的稳定性。

  • 波动率高:赚的时候多赚,亏的时候多亏,坐过山车
  • 波动率低:收益稳定,但可能收益也不高

举例:

  • 基金A:月收益率分别是 2%, 3%, 2.5%, 2.8%,波动率小
  • 基金B:月收益率分别是 10%, -5%, 8%, -3%,波动率大

虽然两个基金平均收益率可能差不多,但B的体验会差很多。

import numpy as np

returns = [0.02, 0.03, 0.025, 0.028]
volatility = np.std(returns)
print(f"波动率: {volatility:.4f}")

夏普比率

夏普比率 = (投资收益率 - 无风险收益率) / 波动率

这个指标衡量的是:每承担1单位风险,能获得多少超额收益

  • 夏普比率越高,说明性价比越好
  • 一般认为夏普比率 > 1 就不错了

举例:

  • 基金A:年化收益15%,波动率10%,无风险利率3%
    • 夏普比率 = (15% - 3%) / 10% = 1.2
  • 基金B:年化收益12%,波动率5%,无风险利率3%
    • 夏普比率 = (12% - 3%) / 5% = 1.8

虽然A收益高,但B的性价比更好(承受更小的风险获得了不错的收益)。

def sharpe_ratio(returns, risk_free_rate=0.03):
    """计算夏普比率"""
    excess_return = returns.mean() - risk_free_rate
    return excess_return / returns.std()

估值指标

市盈率(PE)

PE = 股价 / 每股收益

简单说就是:花多少钱买1块钱的利润。

  • PE = 10,意味着按现在的盈利水平,10年能回本
  • PE = 50,50年回本
  • PE 越低,理论上越便宜

动态PE vs 静态PE:

  • 静态PE:用去年的每股收益算
  • 动态PE:用今年预期的每股收益算
  • TTM PE:用最近12个月的收益算(比较常用)

坑点:

  • 不能跨行业比较。银行股PE普遍低(5-10倍),科技股普遍高(30-100倍)
  • 亏损的公司PE没意义(收益是负的)

市净率(PB)

PB = 股价 / 每股净资产

  • PB = 1,意味着股价等于净资产,公司清算了你能拿回本金
  • PB < 1,理论上被低估了
  • PB > 1,市场看好公司未来

适用场景:

  • 银行、地产这种资产重的行业,看PB比较有意义
  • 轻资产公司(互联网、咨询),PB参考价值不大

ROE(净资产收益率)

ROE = 净利润 / 净资产

衡量公司用股东的钱赚钱的能力。

  • ROE = 20%,意味着股东投100块,一年能赚20块
  • ROE 越高越好,巴菲特选股喜欢看这个指标
  • 一般认为 ROE > 15% 就是不错的公司

杜邦分析: ROE 可以拆解成三个部分:

ROE = 净利率 × 总资产周转率 × 权益乘数
    = (净利润/营业收入) × (营业收入/总资产) × (总资产/净资产)

拆开来看能知道公司赚钱是靠什么:

  • 净利率高:赚钱能力强
  • 周转率高:资产利用效率高
  • 权益乘数高:杠杆大(可能风险也大)

债券相关

到期收益率(YTM)

买债券最关心的就是到期能赚多少。

到期收益率:持有到期,考虑了票面利息和价格差,综合的年化收益。

举例:

  • 某债券面值100,现价95,票面利率5%,还有2年到期
  • 每年利息:100 × 5% = 5元
  • 2年总利息:10元
  • 价格差:100 - 95 = 5元
  • 总收益:15元
  • 年化收益:15 / 2 / 95 ≈ 7.89%

实际计算更复杂(要考虑复利),但思路就是这样。

久期(Duration)

久期衡量债券价格对利率变化的敏感度。

简单理解:

  • 久期 = 5年,利率上升1%,债券价格大约下跌5%
  • 久期越长,利率风险越大

为什么会这样?

  • 利率涨了,新发的债券收益率高,老债券就不值钱了
  • 到期时间越长的债券,受影响越大

修正久期:

修正久期 = 久期 / (1 + 到期收益率)
价格变化% ≈ -修正久期 × 利率变化%

常见比率

换手率

换手率 = 成交量 / 流通股本

反映股票交易的活跃度。

  • 换手率高:交易活跃,可能有人在炒作
  • 换手率低:没什么人关注,流动性差

一般:

  • 日换手率 < 3%:冷清
  • 3% - 7%:正常
  • 7% - 15%:活跃
  • > 15%:很活跃(要小心是不是庄家在操作)

资产负债率

资产负债率 = 负债总额 / 资产总额

衡量公司的负债水平。

  • 资产负债率 = 50%,意味着一半资产是借的钱
  • 一般不超过60%算安全
  • 但不同行业差异很大:
    • 银行、地产:70-80%都正常(靠杠杆赚钱)
    • 制造业:40-60%
    • 科技公司:20-40%

流动比率和速动比率

流动比率 = 流动资产 / 流动负债 速动比率 = (流动资产 - 存货) / 流动负债

衡量公司短期偿债能力。

  • 流动比率 > 2,一般认为安全
  • 速动比率 > 1,比较安全

为什么要减去存货?

  • 存货不一定能快速变现
  • 比如房地产公司,楼盘卖不出去就是一堆存货

量化策略中的指标

α(阿尔法)和 β(贝塔)

这两个概念来自资本资产定价模型(CAPM)。

β(贝塔):

  • 衡量相对于大盘的波动
  • β = 1:跟大盘同步涨跌
  • β > 1:比大盘波动大(高风险高收益)
  • β < 1:比大盘稳定

α(阿尔法):

  • 衡量跑赢大盘的超额收益
  • α > 0:跑赢大盘
  • α = 0:跟大盘持平
  • α < 0:跑输大盘
from scipy import stats

# 假设这是某股票和大盘的日收益率
stock_returns = [0.01, 0.02, -0.01, 0.03, 0.005]
market_returns = [0.008, 0.015, -0.008, 0.025, 0.004]

# 计算 beta
beta, alpha, r_value, p_value, std_err = stats.linregress(market_returns, stock_returns)

print(f"Beta: {beta:.2f}")
print(f"Alpha: {alpha:.4f}")

信息比率(IR)

信息比率 = 超额收益 / 跟踪误差

衡量主动管理能力。

  • IR > 0.5:管理能力不错
  • IR > 1:很优秀

跟夏普比率类似,但信息比率关注的是相对基准的表现,夏普比率关注的是绝对收益。

实际应用案例

分析基金表现

import pandas as pd
import numpy as np

# 假设有基金的日收益率数据
fund_data = pd.read_csv('fund_returns.csv', parse_dates=['date'])

# 计算累计收益
fund_data['cumulative_return'] = (1 + fund_data['daily_return']).cumprod() - 1

# 年化收益率
annual_return = fund_data['daily_return'].mean() * 252

# 年化波动率
annual_volatility = fund_data['daily_return'].std() * np.sqrt(252)

# 夏普比率(假设无风险利率3%)
sharpe = (annual_return - 0.03) / annual_volatility

# 最大回撤
cumulative = (1 + fund_data['daily_return']).cumprod()
running_max = cumulative.expanding().max()
drawdown = (cumulative - running_max) / running_max
max_dd = drawdown.min()

print(f"年化收益率: {annual_return:.2%}")
print(f"年化波动率: {annual_volatility:.2%}")
print(f"夏普比率: {sharpe:.2f}")
print(f"最大回撤: {max_dd:.2%}")

股票筛选

# 筛选条件:ROE > 15%, PE < 20, PB < 3
stock_data = pd.read_csv('stock_metrics.csv')

filtered = stock_data[
    (stock_data['ROE'] > 0.15) &
    (stock_data['PE'] < 20) &
    (stock_data['PB'] < 3) &
    (stock_data['debt_ratio'] < 0.6)
]

print(f"符合条件的股票: {len(filtered)} 只")
print(filtered[['code', 'name', 'ROE', 'PE', 'PB']].head(10))

常见误区

1. 只看收益不看风险

很多人选基金只看近1年收益排名,完全不看波动率和最大回撤。结果买了高风险产品,一跌30%受不了就割肉了。

正确做法:

  • 看夏普比率,综合考虑风险收益
  • 看最大回撤,确认自己能不能承受

2. PE越低越好

有些股票PE很低(比如5倍),但可能是因为:

  • 行业不景气
  • 公司业绩在走下坡路
  • 市场不看好未来

正确做法:

  • 结合PB、ROE、增长率综合看
  • 对比同行业平均水平
  • 看历史PE区间(PE百分位)

3. 过度相信历史收益

“过去10年年化收益20%“不代表未来也能做到。

正确做法:

  • 看基金经理是否换人
  • 看策略是否还适用当前市场
  • 考虑均值回归

4. 忽略时间价值

今天的100块和一年后的100块价值不一样。

正确做法:

  • 用折现现金流(DCF)估值
  • 考虑通货膨胀
  • 理解复利的威力

工具推荐

Python 库

# 基础数据处理
import pandas as pd
import numpy as np

# 金融计算
import pandas_datareader as pdr  # 获取金融数据
import yfinance as yf  # Yahoo Finance 数据

# 量化分析
import ffn  # 金融指标计算
import empyrical  # 回测指标
import pyfolio  # 组合分析

# 可视化
import matplotlib.pyplot as plt
import seaborn as sns

数据源

  • Wind、同花顺iFinD:专业数据终端(贵)
  • Tushare:免费的中国股票数据
  • AkShare:各种金融数据(免费)
  • Yahoo Finance:全球股票数据(免费)

总结

金融指标说白了就是几个目的:

  1. 衡量收益:赚了多少钱(年化收益率、累计收益率)
  2. 衡量风险:波动有多大、最惨的时候跌多少(波动率、最大回撤)
  3. 衡量性价比:承担风险能换来多少收益(夏普比率、信息比率)
  4. 估值判断:现在是便宜还是贵(PE、PB、ROE)

数据分析的时候,不要死记公式,理解背后的商业逻辑更重要。同一个指标,在不同行业、不同阶段,意义可能完全不同。

最后说一句:金融市场没有完美的指标,组合使用才能看得更全面。


这些是我工作中整理的笔记,肯定有不完善的地方。有问题欢迎留言讨论。

Author
Tong
© 2025 by Tong 本文基于 CC BY-NC-SA 4.0 许可 CC 协议 必须注明创作者 仅允许将作品用于非商业用途 改编作品必须遵循相同条款进行共享 最后更新:2025/11/19