前言
上次在VaR模型 - 用历史模拟法计算VaR中粗略介绍了几种计算在险价值(Value at risk)的计算方法,本文介绍第二种计算VaR的方法,用方差-协方差计算VaR。
用方差-协方差计算VaR的思路跟历史模拟法来计算VaR是不一样的,前者是根据股票某时间段的均值(mean),标准差(standard deviation),根据这两个值再重新算出正态分布图,然后然后根据置信区间来确定在险价值;而后者是先计算出某只股票某段时间的整体回报率和波动, 然后根据置信区间的百分比,如10%、5%或 1% 来确定在险价值。
正如我刚刚所提到,用方差-协方差来计算VaR是基于正态分布作为前提,所以这也是缺点之一。
免费注册Tushare.pro账号
首先,我们需要从tushare.pro注册一个账号并调用其API获取股票日线数据。可能大多数的童稚是第一次接触tushare.pro, 那我就直接贴上官方介绍:
Tushare是一个免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资的python财经数据接口包。拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。
步骤
- 我们首先调用Tushare的API 获取股票数据;
- 再通过python计算出其股票价格每日的百分比变化;
- 用方差-协方差计算VaR
(一)收益率计算
因为计算股票的历史回报率不是本文的重点,所以我直接就用代码带过,过程如下:
(二)用方差-协方差计算VaR
我们将使用到上面收益率计算
中的returns
变量。
1. 用历史均值和标准差来确定正态分布图
1 | mean = returns.mean() |
输出:
2. 计算
我们假设是95%的置信区间,输入值就是0.05. 下面我们主要用到一个函数
ppf
, stats.norm.ppf正态分布的累计分布函数的逆函数,即下分位点。
1 | #ppf(q, df, loc=0, scale=1) Percent point function (inverse of cdf — percentiles). |
输出:
-0.03220175377167319
解释:用股票600377的方差-协方差得出每日收益率为-3.22%, 这意味着95%的机率这只股票单日的损失不高于3.22%. 如果你投资100万来计算绝对金额,一日5% VaR为0.0322 * 100万 = 3.22万。