《Python量化投资》笔记二——金融基础知识

Python量化投资

京东图书


第八章 金融基础概念

  • 对数收益率
  • 年化收益
  • 波动率
    ……

收益率

建模一般不直接使用资产价格,而是使用资产收益率(Returns)。因为收益率比价格具有更好的统计特性。

假设Pt表示在时刻t时一种资产的价格,在没有利息的情况下,从时刻t-1到时刻t这一持有阶段的收益率为

中加入数学公式

表示资产在持有期内的收入或利润,为负说明亏损。
表示持有资产初期的原始投资。

对数收益率(Log returns)

对数收益绘制成图表,在直观上更接近真实的表现。比如股票价格从1元涨到10元,相当于翻了10倍,再从10元涨到100元,也是翻了10倍。如果单纯绘制股票价格,那么从10元涨到100元的这一段明显会“看起来涨了更多”。但是如果换算成对数价格,那么就不会存在这种直观偏差了。

年化收益(Annualized Returns)

表示资产平均每年能有多少收益。

(最终价值/初始价值-1)/交易日数量×252

252代表每年有252个交易日

波动率(Volatility)

波动率和风险都是用来衡量收益率的不确定性。
波动率可以定义为收益率的标准差。

  • 日波动率
  • 月波动率
  • 年化波动率

假设股票收益率的日波动率为σ,那么股票每年的波动率就为(假设一年有252个交易日)

夏普比率(Sharpe Ratio)

投资光看收益是不够的,还要看承受的风险,也就是收益风险比。
夏普比率即每承受一单位的总风险会产生多少超额的报酬

表示投资组合预期收益率,统计估计得到该值。
表示无风险利率,
表示投资组合的波动率(投资组合的风险),统计估计得到该值。
注:以上三个值一般指年化后的值。
估计和 最简单的方法就是计算历史年化收益率及其标准差
记住计算这些指标时,数据的周期频率(年,月,日)得一致,不可混着各周期频率数据进行统计计算。

一,高频策略当然得用日收益率,每周调仓的策略则可以使用周收益率。
二,对比策略优劣的时候,周期要一致,比如,对比每日调仓的策略和每月调仓的策略,一定要换算到同一个周期上,才有可比性。

索提诺比率

索提诺比率是用下行风险来衡量波动率。

夏普比率中资产大涨与资产大跌都可视为波动风险。但实际上有时大涨并不算风险。有的大涨与大跌都是风险(期货,美股等可做多做空)

阿尔法和贝塔

阿尔法策略,其实是来源于资本资产定价模型(CAPM)。这个模型将股票的收益分为了两个部分,一部分是由大盘涨跌带来的另一部分则是由股票自身的特性带来的

  • 大盘的那部分影响就是贝塔(Beta)值
  • 剔除大盘的影响,剩下的股票自身就是Alpha值
    Alpha策略就是在谈论股票与大盘无关的那部分收益。
    对于多因子模型而言,Alpha值是指被因子定价完之后剩下的超额收益部分。

最大回撤

投资一项资产,可能产生的最大亏损,即所谓的“买在最高点,抛在最低点”。

max (1 - 当日净值/当日之前最高净值)
_ 对每个交易日进行循环计算

# 记录截至每个时点的前最高值
for idx, row in df.iterrows():
    max_c = max(row['high'], max_c)
    df.loc[idx, 'max_c'] = max_c

# 计算每个交易日的最大回撤
df['max_dd'] = df['low'] / df['max_c'] - 1

# 得到所有交易日中的最大回撤
max_dd = abs(df['max_dd'].min()

你可能感兴趣的:(《Python量化投资》笔记二——金融基础知识)