# 포트폴리오 수익률, 변동성, 투자 비중을 저장할 변수를 미리 준비한다
p_returns = [ ]
p_volatility = [ ]
p_weights = [ ]
# len( ) 함수로 투자자산의 수를 계산한다
n_assets = len( tickers )
# 다섯 개 종목으로 투자 비중을 바꿔 3만 개의 포트폴리오를 만들 것이다
n_ports = 30000
# n_ports만큼 반복하면서 자산의 투자 비중을 랜덤하게 만들고 포트폴리오의 기대수익률, 변동성을 계산한다
# 계산한 수익률, 변동성, 투자 비중은 앞서 미리 준비한 변수, p_returns, p_volatility, p_weights에 저장한다
for s in range( n_ports ):
# np.random.random( ) 함수로 난수 생성
wgt = np.random.random( n_assets )
# 투자 비중 합계 100%를 위해 각 난수를 난수 합으로 나눈다
wgt /= np.sum( wgt )
# 투자 비중*기대수익률로 기대수익률 계산
ret = np.dot( wgt, ret_annual )