我有一个包含N种资产的投资组合(N>300),我知道每种资产的权重和价格,并且我的目标是反推出每种资产的数量(份额)。为了简化问题,我们假设N=3。
背景:
首先,介绍一下投资组合的基础知识以便更好地理解上下文:可以把投资组合想象成一个篮子,在这个篮子里有三个项目(资产)——苹果、橙子和香蕉。我知道每种物品的价格和数量,并能计算出每种物品在篮子中的持有比例(权重)。例如:
价格 = [50, 30, 20]
数量 = [20, 30, 30]
例如,苹果的持有比例(权重)为:5020 / (5020 + 3030 + 2030) = 0.4
所以权重数组为:
权重 = [0.4, 0.36, 0.24]
问题:
出于某种原因,我想从篮子中移除苹果,于是新的权重会变为:
权重更新后 = [0, 0.6, 0.4]
这是因为在移除苹果之后,我会重新调整橙子和香蕉的比例:
新权重下的橙子:0.36 / (0.36 + 0.24) = 0.6
新权重下的香蕉:0.24 / (0.36 + 0.24) = 0.4
我期望得到的是根据权重更新后的数量,并利用价格进行计算。因此,正式的问题是:
权重更新后 = [0, 0.6, 0.4]
价格 = [50, 30, 20]
需要解以下方程组:
50 * x1 / (50 * x1 + 30 * x2 + 20 * x3) = 0
30 * x2 / (50 * x1 + 30 * x2 + 20 * x3) = 0.6
20 * x3 / (50 * x1 + 30 * x2 + 20 * x3) = 0.4
由于可能存在无限多组解:
解集:x1 = 0, x2 = x3
这个问题是否可解?是否有方法通过添加额外约束来求解实际的更新后数量?例如,我能使用原始数量[20, 30, 30]来设置一些边界条件吗?因为我预期更新后的数量应该以原始数量为基础有所变化。
请注意,我需要这个问题的一个通用解决方案,因为在实践中我有300种或更多的资产。