前言
既然本站的名称就叫作cnVaR,那就不得不介绍在险价值(Value at risk)的计算方法。VaR模型有多种的计算方法,比较常见的有历史模拟法、方差-协方差法 和 蒙特.卡洛模拟法 本文将介绍历史模拟法并计算VaR。
其实用历史模拟法计算VaR的整体思路是,先计算出某只股票某段时间的整体回报率和波动, 然后根据置信区间的百分比,如10%、5%或 1% 来确定最大损失值。
下面我们将用到tushare.pro的数据来计算上市公司的相关统计数据。
免费注册Tushare.pro账号
首先,我们需要从tushare.pro注册一个账号并调用其API获取股票日线数据。可能大多数的童稚是第一次接触tushare.pro, 那我就直接贴上官方介绍:
Tushare是一个免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资的python财经数据接口包。拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。
步骤
- 我们首先调用Tushare的API 获取股票数据;
- 再通过python计算出其股票价格每日的百分比变化;
- 历史模拟法计算VaR
(一)收益率计算
因为计算股票的历史回报率不是本文的重点,所以我直接就用代码带过,过程如下:
(二)用历史模拟法计算VaR
我们将使用到上面收益率计算
中的returns
变量。
1. 用百分比来表示在险价值
1 | VaR_90 = returns.quantile(0.1) |
输出:
- | 在险损失(VaR) |
---|---|
90% | -0.019468 |
95% | -0.029046 |
99% | -0.052938 |
99.99% | -0.090910 |
2. 用绝对金额来表示在险价值
假设你的投资金额为100万,那么用绝对值来算,那么:
1 | invest =100 |
输出:
- | 在险损失(金额) |
---|---|
90% | -1.938319 |
95% | -2.904585 |
99% | -5.293842 |
99.99% | -9.090971 |
解释: 假设你投资了100万股票600377(宁沪高速),你单日的投资损失有90%的机率会少于1.94万;你单日的投资损失有95%的机率会少于2.90万;你单日的投资损失有99%的机率会少于5.29万;你单日的投资损失有99%的机率会少于9.09万。
用图来显示:
1 | # 假设置信区间为95% |
输出:
你单日的最大投资损失有95%的机率会少于-2.90%, 占3999 天中的199.95天。