全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
6245 4
2016-01-22
已经有4个股票3年的daily price,并且有一个Cholesky Decomposition Matrix.  需要建立一个投资组合包含这4个股票,然后用蒙特卡罗法计算出VaR。有没有高手指点一下思路?求大神帮帮忙。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-1-22 15:23:36
Excel没有用过,但是在R里面很简单
R有个PerformanceAnalytics的包,里面有个函数就是VaR
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-23 01:49:49
已经用Norminv(rand(),mean,sd)模拟出10000次投资组合的profit,求得VaR
但是怎么用这个holesky Decomposition Matrix来求VaR呢?建立一列符合正态分布的随机数和这个矩阵相乘可以得到四个资产价格之前的相关系数,然后接下来怎么做就不清楚了....

求大神指点一下...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-26 12:52:44
举个例子,比如算一个股票投资组合1天的VaR, 先列出各个股票的covariance矩阵,用下面的VBA代码对其进行Cholesky factorization,用这个矩阵配合Norm.S.Inv(rand()) 来模拟各个股票的收益。再算1天后组合的盈亏。重复10000次就能得出投资组合价值变化量的分布。VaR 就取这个分布对应的分位点即可。

Function cholesky(Sigma As Object)

Dim n As Integer
Dim k As Integer
Dim i As Integer
Dim j As Integer
Dim x As Double
Dim a() As Double
Dim M() As Double

n = Sigma.Columns.Count

ReDim a(1 To n, 1 To n)
ReDim M(1 To n, 1 To n)

For i = 1 To n
   For j = 1 To n
      a(i, j) = Sigma.Cells(i, j).Value
      M(i, j) = 0
   Next j
Next i

For i = 1 To n
   For j = i To n
      x = a(i, j)
      For k = 1 To (i - 1)
         x = x - M(i, k) * M(j, k)
      Next k
   If j = i Then
     M(i, i) = Sqr(x)
   Else
     M(j, i) = x / M(i, i)
   End If
   Next j
Next i

cholesky = M

End Function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-26 15:15:21
用matlab或者python
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群