Based on the preceding program, we could easily choose 20 stocks from 500 available securities. This is an important step if we intend to investigate the impact of the number of randomly selected stocks on the portfolio volatility, as shown in the following code:
import scipy as sp n_stocks_available=500 n_stocks=20 sp.random.seed(123345) x=sp.random.uniform(low=1,high=n_stocks_available,size=n_stocks) y=[] for i in range(n_stocks): y.append(int(x[i])) #print y final=sp.unique(y) print(final) print(len(final)) [ 8 31 61 99 124 148 155 172 185 205 226 275 301 334 356 360 374 379 401 449] 20
In the preceding program, we select 20 numbers from 500 numbers. Since we have to choose integers, we might end up with less than 20 values, that is, some integers appear more than once after we convert real numbers into integers. One solution is to pick more than we need. Then choose the first 20 integers. An alternative is to use the randrange...