【发布时间】:2022-01-27 20:46:27
【问题描述】:
我有一个包含 40 只股票的投资组合,我试图计算整个投资组合的标准差,同时每次计算这个标准差时都会更改每只股票的权重。我知道如何创建总和为 1 的随机数列表,但是如何添加每只股票的最大和最小权重..
我使用的最大值是 4.5%,最小值是 0.5%。
我用于创建总和为 1 的随机数列表的代码是:
import numpy as np, numpy.random
random = np.random.dirichlet(np.ones(10), size=1)
但我怎样才能使这个列表只包含 0.005 和 0.045 之间的值?
【问题讨论】:
-
您想要一个介于 4.5% 和 0.5% 之间的随机大小?
-
@Matiiss 是的,我需要 40 个介于 0.005 和 0.045(0.5% 和 4.5%)之间的值的列表
-
一定要均匀分布吗? (不可能。)或者有什么要求?
-
您是否只需要该范围
lst = [x / 1000 for x in range(5, 45 + 1)]内的值列表?还是您需要np.radnom.dirichlets 的列表,其大小在lst = [np.random.dirichlet(np.ones(10), size=x / 1000) for x in range(5, 45 + 1)]范围内?
标签: python list numpy random portfolio