This is our CFM 101 final project, created by Max, Rain, and Sean. Our goal was to match the S&P 500 and TSX 60, known for being great investments, given any random list of stocks. The full details of the project can be found here.
In our algorithm, we take into account volume, volatility, sector correlation, and index distribution by sector in order to quantify how "good" a stock is. Furthermore, we implemented a weighted maximum bipartitie matching algorithm in order to ensure we obtained the best possible portfolio we could feasibly create.