99.11 金融难点通俗解释:净资产收益率(ROE)VS投资资本回报率(ROIC)VS总资产收益率(ROA)

目录

    • [0. 承前](#0. 承前)
    • [1. 简述:三大收益率指标对比](#1. 简述:三大收益率指标对比)
    • [2. 比喻:三大指标对比](#2. 比喻:三大指标对比)
      • [2.1 简单对比](#2.1 简单对比)
      • [2.2 生动比喻](#2.2 生动比喻)
      • [2.3 区别要点](#2.3 区别要点)
    • [3. 实际应用](#3. 实际应用)
      • [3.1 选择建议](#3.1 选择建议)
    • [4. 总结](#4. 总结)
    • [5. 实现代码](#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. 实现代码

python 复制代码
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()
相关推荐
Hylan_J3 小时前
【VSCode】MicroPython环境配置
ide·vscode·python·编辑器
莫忘初心丶3 小时前
在 Ubuntu 22 上使用 Gunicorn 启动 Flask 应用程序
python·ubuntu·flask·gunicorn
计算机小白一个3 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
万事可爱^4 小时前
HDBSCAN:密度自适应的层次聚类算法解析与实践
算法·机器学习·数据挖掘·聚类·hdbscan
失败尽常态5236 小时前
用Python实现Excel数据同步到飞书文档
python·excel·飞书
2501_904447746 小时前
OPPO发布新型折叠屏手机 起售价8999
python·智能手机·django·virtualenv·pygame
青龙小码农6 小时前
yum报错:bash: /usr/bin/yum: /usr/bin/python: 坏的解释器:没有那个文件或目录
开发语言·python·bash·liunx
大数据追光猿6 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!6 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉6 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode