量化实战入门(40)用Empyrical库计算金融指标的中文指南(一)

用Empyrical库计算金融指标的中文指南(一)

Empyrical是一个由Quantopian开发的开源的Python库,专门用于计算常用的金融风险和性能指标。它包含了许多用于策略回测分析的工具,能够帮助投资者对投资策略的性能进行定量分析。本文详细介绍Empyrical库的用法,由于内容较多,分为五篇阐述。
一、Empyrical库的安装
pip install empyrical
二、Empyrical库的使用方法
首先要导入Empyrical库:
import empyrical as ep
然后就可以调用Empyrical的相关函数,例如计算年化收益率:
annual_return = ep.annual_return(returns)
三、Empyrical的金融指标函数介绍(按字母排序)

  1. aggregate_returns(returns, convert_to)
    该函数 aggregate_returns 用于按周、月或年聚合收益。
    函数的参数如下:
    returns:策略的日收益,非累计。类型为 pd.Series。具体细节请参考 empyrical.stats.cum_returns 函数的解释。
    convert_to:聚合的周期,可以是 ‘weekly’(每周)、’monthly’(每月)或 ‘yearly’(每年)。
    函数的返回值是聚合后的收益(aggregated_returns,类型为 pd.Series)。
    通过 aggregate_returns 函数,我们可以将日收益聚合到更大的时间周期(如周、月、年),这对于观察和分析投资策略在不同的时间尺度上的表现非常有用。例如,我们可以比较策略在不同月份或不同年份的收益,以更好地理解策略的性能和风险。
  2. alpha(returns, factor_returns, risk_free=0.0, period=’daily’, annualization=None, out=None, _beta=None)
    函数 alpha 用来计算年化阿尔法值。
    函数参数解释如下:
    returns:pd.Series,策略的日回报率,非累计。参考 empyrical.stats.cum_returns 函数获取更多解释。
    factor_returns:pd.Series,用于计算 beta 的因子的日回报率,通常是市场等基准。
    risk_free:int, float,可选。在整个时期内的恒定无风险回报率。例如,三个月期美国国债的利率。
    period:str,可选。定义 ‘returns’ 数据的周期性,用于年化。如果已经指定了 annualization 参数,则该值会被忽略。默认值如下:
    ‘monthly’:12
    ‘weekly’: 52
    ‘daily’: 252
    annualization:int,可选。用于取消 period 参数中可用的默认值,将回报率转换为年回报率。其值应该是 returns 的年频率。参考 empyrical.stats.annual_return 函数获取更多解释。
    _beta:float,可选。如果已经知道给定输入的 beta 值,就可以输入这个参数。如果没有提供,将在内部计算。
    out:array-like,可选。用作输出缓冲区的数组。如果没有传递,则将创建一个新数组。
    函数返回值:
    float,返回阿尔法值。
    这个函数的主要用途是计算给定投资策略和基准(通常为市场)的年化阿尔法。它用于评估投资策略相对于基准(在考虑风险因素后)的表现。阿尔法值可以被视为投资策略产生的超额回报部分,即超过了通过在市场上承担一定风险所能获得的预期回报的部分。如果阿尔法为正,那么投资策略被认为是在基准之上产生了超额回报。如果阿尔法为负,那么投资策略的回报则低于基准。
  3. alpha_aligned(returns, factor_returns, risk_free=0.0, period=’daily’, annualization=None, out=None, _beta=None)
    alpha_aligned函数和之前提到的alpha函数功能相似,这两个函数的主要区别在于,alpha_aligned函数需要输入的returns和factor_returns在标签上已经被对齐,如果是np.ndarray类型,则这两个参数应该具有相同的形状。
  4. alpha_beta(returns, factor_returns, risk_free=0.0, period=’daily’, annualization=None, out=None)
    alpha_beta函数用于计算年化阿尔法和贝塔。
    函数参数解释如下:
    returns:pd.Series,策略的日回报率,非累计。参考 empyrical.stats.cum_returns 函数获取更多解释。
    factor_returns:pd.Series,用于计算 beta 的因子的日回报率,通常是市场等基准。
    risk_free:int, float,可选。在整个时期内的恒定无风险回报率。例如,三个月期美国国债的利率。
    period:str,可选。定义 ‘returns’ 数据的周期性,用于年化。如果已经指定了annualization 参数,则该值会被忽略。默认值如下:
    ‘monthly’:12
    ‘weekly’: 52
    ‘daily’: 252
    annualization:int,可选。用于取消 period 参数中可用的默认值,将回报率转换为年回报率。其值应该是 returns 的年频率。参考 empyrical.stats.annual_return 函数获取更多解释。
    out:array-like,可选。用作输出缓冲区的数组。如果没有传递,则将创建一个新数组。
    函数返回值:
    alpha:float,阿尔法值。阿尔法是一个评估投资策略超额收益的度量指标,通常在计算风险调整后的收益时使用。如果阿尔法为正,那么投资策略被认为是在基准之上产生了超额回报。如果阿尔法为负,那么投资策略的回报则低于基准。
    beta:float,贝塔值。贝塔是一个度量投资策略相对于市场波动性的指标。贝塔值大于1表示策略的波动性超过了市场,贝塔值小于1则表示策略的波动性低于市场。
    这个函数的主要用途是同时计算给定投资策略和基准(通常为市场)的年化阿尔法和贝塔。它用于评估投资策略相对于基准的风险和回报情况。
  5. alpha_beta_aligned(returns, factor_returns, risk_free=0.0, period=’daily’, annualization=None, out=None)
    alpha_beta_aligned函数和之前提到的alpha_beta函数功能相似,这两个函数的主要区别在于,alpha_beta_aligned函数需要输入的returns和factor_returns在标签上已经被对齐,如果是np.ndarray类型,则这两个参数应该具有相同的形状。
  6. annual_return(returns, period=’daily’, annualization=None)
    annual_return函数用于计算年化收益率,这等同于复合年增长率(CAGR,Compound Annual Growth Rate)。
    函数参数解释如下:
    returns:pd.Series 或 np.ndarray,策略的周期回报率,非累计。参考 empyrical.stats.cum_returns 函数获取更多解释。
    period:str,可选。定义 ‘returns’ 数据的周期性,用于年化。如果已经指定了 annualization 参数,则该值会被忽略。默认值如下:
    ‘monthly’:12
    ‘weekly’: 52
    ‘daily’: 252
    annualization:int,可选。用于取消period 参数中可用的默认值,将回报率转换为年回报率。其值应该是 returns 的年频率。
    函数返回值:
    annual_return:float,作为复合年增长率(CAGR)的年化收益率。
    这个函数的主要用途是计算投资策略的年化收益率。年化收益率是一个重要的度量指标,用于评估投资策略在一年期内的平均收益效果。通过比较不同策略的年化收益率,可以帮助投资者选择最佳的投资策略。年化收益率是以复合年增长率(CAGR)的形式表示的,这意味着它考虑了投资收益的再投资效果。
  7. annual_volatility(returns, period=’daily’, alpha=2.0, annualization=None, out=None)
    annual_volatility函数用于计算策略的年度波动率。
    函数参数解释如下:
    returns:pd.Series 或 np.ndarray,策略的周期回报率,非累计。参考 empyrical.stats.cum_returns 函数获取更多解释。
    period:str,可选。定义 ‘returns’ 数据的周期性,用于年化。如果已经指定了 annualization 参数,则该值会被忽略。默认值如下:
    ‘monthly’:12
    ‘weekly’: 52
    ‘daily’: 252
    alpha:float,可选。标度关系(Levy稳定指数)。
    annualization:int,可选。用于取消 period 参数中可用的默认值,将回报率转换为年回报率。其值应该是 returns 的年频率。
    out:array-like,可选。用作输出缓冲区的数组。如果没有传递,则将创建一个新数组。
    函数返回值:
    annual_volatility:float,年度波动率。
    年度波动率是一个重要的风险度量指标,常用于评估投资策略的风险水平。波动率越高,策略的风险就越大,因为投资回报可能大幅上下波动。反之,波动率较低则表示策略的风险较小,投资回报的波动程度较小。此函数对于评估投资策略的风险和确定风险容忍度非常有用。
  8. beta(returns, factor_returns, risk_free=0.0, out=None)
    beta函数用于计算贝塔值。
    函数参数解释如下:
    returns:pd.Series,策略的日回报率,非累计。参考 empyrical.stats.cum_returns 函数获取更多解释。
    factor_returns:pd.Series,用于计算 beta 的因子的日回报率,通常是市场等基准。这应与 returns 的风格相同。
    risk_free:int, float,可选。在整个时期内的恒定无风险回报率。例如,三个月期美国国债的利率。
    out:array-like,可选。用作输出缓冲区的数组。如果没有传递,则将创建一个新数组。
    函数返回值:
    beta:float,贝塔值。
    贝塔值是一个度量投资策略相对于市场波动性的指标。贝塔值大于1表示策略的波动性超过了市场,贝塔值小于1则表示策略的波动性低于市场。这个函数可以用来评估投资策略的市场风险。在现代投资理论中,贝塔值是非常重要的风险度量指标,经常用于评估和比较不同投资策略的风险水平。
  9. beta_aligned(returns, factor_returns, risk_free=0.0, out=None)
    beta_aligned函数和之前提到的beta函数功能相似,这两个函数的主要区别在于,beta_aligned函数需要输入的returns和factor_returns在标签上已经被对齐,如果是np.ndarray类型,则这两个参数应该具有相同的形状。

发布者:爱吃肉的小猫,转载请注明出处:https://www.95sca.cn/archives/46324
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
爱吃肉的小猫的头像爱吃肉的小猫
上一篇 2024 年 6 月 20 日 上午11:23
下一篇 2024 年 6 月 20 日 上午11:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注