栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

计算单个资产的VaR与ES

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算单个资产的VaR与ES

在险价值VaR是按某一确定的置信度,对某一给定的时间期限内不利的市场变动可能造成投资组合的最大损失的一种估计。目的是为了展示损失会糟糕成什么样子。
预期亏损(ES),也被成为条件风险价值度(conditional VaR)或条件尾部期望(conditional expectation)或尾部损失(tail loss),其回答的是当市场条件变糟糕而触发损失时,我们的损失预期会有多大。
下面我们通过python程序来展示如何计算单个资产的VaR及ES。
本次使用的数据来自与Tushare平台,有较为全面的金融数据可供使用,通过数据接口调用数据简单快捷,可以通过在终端利用命令pip install tushare安装该库并进行调用。

1.首先我们导入必要的库

import tushare as ts
import numpy as np
import pandas as pd
import scipy.stats as st

2.初始化pro接口。token可以在https://tushare.pro/上注册后获得。

pro = ts.pro_api('your token')

3.提取数据。本次我们调用的是601398.SH这支股票2020年的日线数据,同时并对数据进行一些预处理。

data = pro.daily(ts_code='601398.SH', start_date='20200101', end_date='20201231')
data = data.sort_values(by=['trade_date']).reset_index(drop=True)

 4.计算VaR与ES。

r = np.array(data[0:len(data)].T).tolist()[8]
T = len(r)
alpha = 0.01  #置信度
print('  =====================================')
print('  ==   Univariate unconditionnal VaR ==')
print('  =====================================')
print(' ')
print("  Coverate Rate = %1.2f" % (alpha))
print("  Sample size = %4.0f" % (T))
VaR_univariate= np.mean(r) - np.std(r, ddof=1) * st.norm.ppf(alpha)  # st.norm.ppf(alpha)为累积标准正态分布的反函数
ES = np.mean(r) + st.norm.pdf(st.norm.ppf(1-alpha)) * np.std(r, ddof=1) / alpha
print("  Asset :  Expected returns = %2.6f    Variance of returns = %2.6f " % ( float(np.mean(r)), float(np.var(r, ddof=1))))
print("  Asset :  Univariate VaR = %2.6f  Univariate ES = %2.6f" % ( VaR_univariate, ES))

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号