我需要你的帮助来解决我正在为学校解决的问题。我的目标是近似权重矩阵的系数,以便它们检查特定属性。所以我有我的资产的权重矩阵和这些资产的协方差矩阵。我的投资组合的全球风险,, 由 定义:和资产数量的边际风险经过 : .
我需要找到一种方法来近似权重,这样如果是资产的数量,对于每个,和,协方差矩阵是已知的。
我尝试在 python 中使用 package 中的fsolve函数scipy.optimize,但我得到的答案不符合我的标准,因为我需要介于 0 和 1 之间且它们的总和为 1
我的程序:
def CalcPoids(A,t):
n=len(A)
W=MatriceCov(A,t-30,30)
C=[(1/n) for i in range(n)]
def g(x,i):
M=np.dot(W,x)
d=np.dot((x.T),np.dot(W,x))
return(x[i]*M[i])/d - (1/n)
def f(x):
return [g(x,i) for i in range(n)]
return op.fsolve(f,C)
其中MatriceCov只是计算我的资产的前 30 个值的协方差矩阵。
def MatriceCov(A,j,t):
n=len(A)
M=np.zeros((n,n))
for i in range(n):
M[i][i]=Variancet(A[i],j,t)
for j in range(n):
i=0
while i<j:
M[i][j]=M[j][i]=Covt(A[i],A[j],j,t)
i+=1
return M
如果您对如何解决此问题有任何想法,我们将不胜感激。