CS-7646: Machine Learning for Trading

CS-7646: Machine Learning for Trading

Instructor(s): Tucker Balch, Ph.D. / David Joyner
Course Page: Link

CS-7646 is another introductory course into machine learning-based trading strategies. The course is broken into 3 major components:

  • Manipulating financial data with Pandas
  • Finance Fundamentals: CAPM, Techincal Analysis, Options, Modern Portfolio Theory & Mean-Variance Analysis
  • Machine Learning Techniques: Decision Trees, Reinforcement Learning & Q-Learning

I took this course during the Summer semester, which shortened the project and exam timelines from a regular semester. In terms of course work, there was 8 assignments (1 due each week) and 2 exams.

Course Highlights


Learning about Finance Fundamentals was the major highlight of this course. With the whole recent debacle around WallStreetBets/GME and increasing popularity of cryptotrading, I've been meaning to learn more about technical analysis and brush up on the basics of trading.

The course reviews basics like market metchanics, exchanges & order books, option trading strategies, technical indicators. Capital Asset Pricing Model (CAPM), Efficient Market Hypothesis and Modern Portfolio Theory.

Candlesticks to the moon!

Armed with those fundamentals, the final project has you build your own ML Trader against historical data compared to a manual strategy that you construct yourself!

Sample iteration of my ML Trader vs Benchmark based on 2011-2012 historical data

Overall Assessment


A great course if you have interest in finance or machine learning with time-series data. The coursework isn't very demanding if you already have some background with Python and libraries like Pandas, Matplotlib and Numpy.

Pros:

  • Coursework isn't very demanding, 5-10 hours a week at most (depends on the project difficulty)
  • Lectures were well structured and had good production quality
  • Interesting course material if you're into Finance
  • You get to watch 'The Big Short' for school!

Cons:

  • Some of the earlier assignments were tedious. Mostly learning Pandas, figuring vectorization, etc...
  • I would have liked more emphasis on the Machine Learning sections like diving deeper into reinforcment learning, decision trees and more state of the art techniques used today, like deep neural nets and recurrent nets
  • Exam questions were a bit tedious. I think a quiz format would have suited the course material a bit better.