99.11 金融难点通俗解释:净资产收益率(ROE)VS投资资本回报率(ROIC)VS总资产收益率(ROA)
目录
- 0. 承前
- 1. 简述:三大收益率指标对比
- 2. 比喻:三大指标对比
- 2.1 简单对比
- 2.2 生动比喻
- 2.3 区别要点
- 3. 实际应用
- 3.1 选择建议
- 4. 总结
- 5. 实现代码
0. 承前
如果想更加全面清晰地了解金融资产组合模型进化论的体系架构,可参考:
0. 金融资产组合模型进化全图鉴
1. 简述:三大收益率指标对比
- 描述净资产收益率(ROE)含义:衡量企业用股东投入资金获得的回报率。链接
- 描述投资资本回报率(ROIC)含义:衡量企业用所有投入资金获得的回报率。链接
- 描述总资产收益率(ROA)含义:衡量企业用全部资产获得的回报率。链接
2. 比喻:三大指标对比
2.1 简单对比
- 净资产收益率(ROE)关注"自己的钱赚多少"
小明用自己的钱养鸡:
自己投入:1000元
一年赚到:200元
ROE = 赚到200元 ÷ 自己的1000元 = 20%
含义:用自己的钱赚到20%回报
- 投资资本回报率(ROIC)关注"所有投入赚多少"
小明总共投入:
自己的钱:1000元(买鸡)
借来的钱:500元(买料)
一年赚到:300元
ROIC = 赚到300元 ÷ 总投入1500元 = 20%
含义:所有投入的钱平均赚20%
- 总资产收益率(ROA)关注"所有家当赚多少"
小明养鸡场有:
母鸡资产:1000元
鸡舍设备:2000元
饲料存货:500元
一年赚到:350元
ROA = 赚到350元 ÷ 总资产3500元 = 10%
含义:所有资产平均赚10%
2.2 生动比喻
- ROE就像问:
"压岁钱赚了几倍?"
- 只算自己存的钱
- 不管借来的钱
- 看自己本金效率
- ROIC就像问:
"所有花销值不值?"
- 算上借来的钱
- 看所有投入回报
- 衡量整体效率
- ROA就像问:
"养鸡场效率如何?"
- 算上所有家当
- 包括设备存货
- 看整体资产效率
2.3 区别要点
- 主要区别
净资产收益率(ROE):
- 只看股东投入
- 不管借来的钱
- 适合看股东回报
投资资本回报率(ROIC):
- 看所有投入资金
- 包括借款投入
- 适合看经营效率
总资产收益率(ROA):
- 看所有资产价值
- 包括存货设备
- 适合看资产效率
3. 实际应用
3.1 选择建议
看股东回报用ROE:
- 像看零花钱理财
- 关注自有资金效率
- 适合投资者视角
看经营效率用ROIC:
- 像看养鸡总投入
- 关注所有资金效率
- 适合经营者视角
看资产效率用ROA:
- 像看养鸡场效率
- 关注整体资产效率
- 适合管理者视角
4. 总结
关注点:
- ROE看"自己的钱赚多少"
- ROIC看"所有投入赚多少"
- ROA看"所有家当赚多少"
就像开养鸡场:
- ROE只算自己的储蓄罐
- ROIC算上所有花销投入
- ROA把整个养鸡场都算进去
5. 实现代码
def get_roe_data(ts_code: str, start_date: str = None, end_date: str = None) -> pd.DataFrame:
"""
获取公司ROE(净资产收益率)数据
参数:
ts_code (str): 股票代码 (例如: '600000.SH')
start_date (str): 开始日期 (例如: '20180101')
end_date (str): 结束日期 (例如: '20181231')
返回:
DataFrame: 包含以下字段:
- ts_code: 股票代码
- ann_date: 公告日期
- end_date: 报告期
- roe: 净资产收益率
- roe_waa: 加权平均净资产收益率
- roe_dt: 净资产收益率(扣除非经常损益)
"""
try:
pro = ts.pro_api()
df = pro.fina_indicator(ts_code=ts_code,
start_date=start_date,
end_date=end_date,
fields='ts_code,ann_date,end_date,roe,roe_waa,roe_dt')
return df
except Exception as e:
print(f"获取ROE数据时出错: {str(e)}")
return pd.DataFrame()
def get_roa_data(ts_code: str, start_date: str = None, end_date: str = None) -> pd.DataFrame:
"""
获取公司ROA(总资产收益率)数据
参数:
ts_code (str): 股票代码 (例如: '600000.SH')
start_date (str): 开始日期 (例如: '20180101')
end_date (str): 结束日期 (例如: '20181231')
返回:
DataFrame: 包含以下字段:
- ts_code: 股票代码
- ann_date: 公告日期
- end_date: 报告期
- roa: 总资产报酬率
- roa_yearly: 年化总资产报酬率
- roa_dp: 总资产净利率(杜邦分析)
"""
try:
pro = ts.pro_api()
df = pro.fina_indicator(ts_code=ts_code,
start_date=start_date,
end_date=end_date,
fields='ts_code,ann_date,end_date,roa,roa_yearly,roa_dp')
return df
except Exception as e:
print(f"获取ROA数据时出错: {str(e)}")
return pd.DataFrame()
def get_roic_data(ts_code: str, start_date: str = None, end_date: str = None) -> pd.DataFrame:
"""
获取公司ROIC(投入资本回报率)数据
参数:
ts_code (str): 股票代码 (例如: '600000.SH')
start_date (str): 开始日期 (例如: '20180101')
end_date (str): 结束日期 (例如: '20181231')
返回:
DataFrame: 包含以下字段:
- ts_code: 股票代码
- ann_date: 公告日期
- end_date: 报告期
- roic: 投入资本回报率
- roic_yearly: 年化投入资本回报率
"""
try:
pro = ts.pro_api()
df = pro.fina_indicator(ts_code=ts_code,
start_date=start_date,
end_date=end_date,
fields='ts_code,ann_date,end_date,roic,roic_yearly')
return df
except Exception as e:
print(f"获取ROIC数据时出错: {str(e)}")
return pd.DataFrame()