Quant projects

back to home

Michigan Quant Lab

We meet on Fridays, 9-11am, in the East Hall Math Lab, room B745.

Meeting agendas

Friday, April 7, 2017: no meeting
Friday, March 31, 2017
  1. Update as needed from GitHub. We will create a method called writeSimulation that can dump any number of market price simulations into a file.
  2. Question 3.11 from Quant interview book.
  3. We'll finish with practice problems from Project Euler.
Friday, March 24, 2017
  1. Spent some time getting everybody's code base synced up via umich-quant on GitHub.
  2. We added the Market class. A market consists of the risk factors to be simulated, with weighted returns from a specified period. A simulation of the market is generated by taking the inner product of each risk factor's returns with a market noise vector.
Friday, March 17, 2017
  1. We will complete HackerRank's Cracking the Coding Interview: Heaps: Find the Running Median, by implementing BaseHeap and MaxHeap, then MedianHeap. Source to date is available on GitHub.
  2. Update your fork of Python implementation of multi-factor Monte Carlo. If necessary, download historical S&P data from QuantQuote, on the Free Data tab.
  3. Questions 3.10 from Quant interview book.
Friday, March 10, 2017
  1. An easy warmup from HackerRank: Array Left Rotation
  2. Began HackerRank's Cracking the Coding Interview: Heaps: Find the Running Median. This is a very nice coding exercise: not only do you learn/review heap data structures, but it is an excellent example of polymorphism via both composition and inheritance. We got the MinHeap up and running. Next week will write BaseHeap and MaxHeap, then MedianHeap.
Friday, Feb 24, 2017
  1. Via GitHub, get the latest version of our Python implementation of multi-factor Monte Carlo. If necessary, download historical S&P data from QuantQuote, on the Free Data tab.
  2. We will add MarketUniverse and Market classes, implement simulation.
  3. From HackerRank's Cracking the Coding Interview: Trees, Ransom Notes, and Contacts. If you want to better understand hash tables, watch the video that accompanies Random Notes.
  4. Questions 1.10, 8.1, and 8.2 from Quant interview book.
Friday, Feb 17, 2017
  1. Continue implementation of Multifactor Monte Carlo in Python.
  2. Any questions about technical interview book?
Friday, Feb 10, 2017

To prepare:

  1. Review updates to technical interview book.
  2. Install pandas in PyCharm if necessary.
  3. Download historical S&P data from QuantQuote, on the Free Data tab. Discovered via Caltech Quantitative Finance Group, which has some interesting information.
  4. Begin implementation of Multifactor Monte Carlo in Python.
  5. One-on-one discussions to determine what you want to get from your time in the Michigan Quant Lab.
Friday, January 27, 2017

To prepare:

  1. Install PyCharm Community Edition. We’ll be doing some Python in an IDE that has better debugging support than Jupyter.
  2. Solve the BinaryTree problem from the technical interview book. You may use C++ or Python or both.
  3. Do LeetCode problems 2 and 20 (some of you have already done #20).
  4. Be able to explain why the sum of IES is equal to ES.
  5. We discovered that our C++ code for Monte Carlo does not react gracefully to an invalid name for a MarketFactor ("APL" is unknown). A better way to deal with this is through exceptions. Note that we threw a string. Which of these standard exceptions would have been better to throw? Can you add exception handling to these PortfolioSimResult methods? double var(double quantile) const; double expectedShortfall(double quantile) const; If you do this problem, do a pull request from GitHub Desktop. If I like your code, I will add it to the codebase, and list you as a contributor!.
  6. Recall the Jane Street min max correlation problem? An equivalent statement is problem 2.7 in the technical interview book. Try to solve it.
  7. The mission of the Michigan Quant Lab is to prepare ourselves for employment through practice, and by demonstrating we are involved in something beyond the classroom. Think about the role(s) that need to be handled in the Michigan Quant Lab. Do you want to be developing the website? Implementing pricing algorithms? Building the backtesting framework? Writing a paper that explains and documents parts of our codebase? Creating test cases to verify our algorithms are working correctly? Organizing a Friday afternoon pizza-fueled meeting? Or something else?
Friday, January 20, 2017

Carlo Acerbi of MSCI presented on Backtesting expected shortfall.

Projects

Students in the quant program have the opportunity to develop projects inspired by real-world applications. This involves reading research, designing solutions, and implementing them in a relevant development environment, such as C++ or Python.