# 경기 국면별 확률과 수익률을 행렬 곱셈한다. 연산의 결과 각 주식의 기대수익률이 계산된다
    # 경기 국면별 확률과 수익률을 곱한다
    expectedReturns = np.matmul( prob.T, returns )
    
    # prob.T는 prob 전치행렬이며 두 행렬의 곱은 * 또는 matmul( ) 함수를 사용할 수 있다
    expectedReturns = prob.T * returns
    print( '3. 각 주식의 기대수익률: \n', expectedReturns )
    
    # 투자 비중을 만든다. 주식의 개수(numStocks)대로 난수를 만든 후 이를 난수의 합으로 다시 나눠 전체 투자 비중의 합(100%)이 1.0이 되도록 한다
    weights = np.random.rand( numStocks )
    weights = weights / weights.sum( )
    print( '4. 투자 비중*기대수익률: \n', weights )
    
    # 각각의 투자 비중과 주식 기대수익률의 곱을 모두 합해 포트폴리오의 기대수익률을 계산한다
    expectedReturnOfPortfolio = np.sum( weights*expectedReturns )
    print( '5. 포트폴리오의 기대수익률: {:.2%}'.format( expectedReturnOfPortfolio ) )
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.