Machine Learning for Trading
Machine Learning for Trading
This course introduces students to the real world challenges of implementing machine learning based trading strategies including the algorithmic steps from information gathering to market orders. The focus is on how to apply probabilistic machine learning approaches to trading decisions. We consider statistical approaches like linear regression, KNN and regression trees and how to apply them to actual stock trading situations.
Why Take This Course?
By the end of this course, you should be able to:
- Understand data structures used for algorithmic trading.
- Know how to construct software to access live equity data, assess it, and make trading decisions.
- Understand 3 popular machine learning algorithms and how to apply them to trading problems.
- Understand how to assess a machine learning algorithm's performance for time series data (stock price data).
- Know how and why data mining (machine learning) techniques fail.
- Construct a stock trading software system that uses current daily data.
- We use daily data. This is not an HFT course, but many of the concepts here are relevant.
- We don't interact (trade) directly with the market, but we will generate equity allocations that you could trade if you wanted to.
Prerequisites and Requirements
Students should have strong coding skills and some familiarity with equity markets. No finance or machine learning experience is assumed.
Note that this course serves students focusing on computer science, as well as students in other majors such as industrial systems engineering, management, or math who have different experiences. All types of students are welcome!
The ML topics might be "review" for CS students, while finance parts will be review for finance students. However, even if you have experience in these topics, you will find that we consider them in a different way than you might have seen before, in particular with an eye towards implementation for trading.
Programming will primarily be in Python. We will make heavy use of numerical computing libraries like NumPy and Pandas.
What Will I Learn?
P5: Build a Digit Recognition Program
In this project, you will use what you've learned about deep neural networks and convolutional neural networks to create a live camera application or program that prints numbers it observes in real time from images it is given. First, you will design and test a model architecture that can identify sequences of digits in an image. Next, you will train that model so it can decode sequences of digits from natural images by using the Street View House Numbers (SVHN) dataset. After the model is properly trained, you will then test your model using a live camera application (optional) or program on newly-captured images. Finally, once you obtain meaningful results, you will refine your implementation to also localize where numbers are on the image, and test this localization on newly-captured images.
This course is composed of three mini-courses:
- Mini-course 1: Manipulating Financial Data in Python
- Mini-course 2: Computational Investing
- Mini-course 3: Machine Learning Algorithms for Trading
Each mini-course consists of about 7-10 short lessons. Assignments and projects are interleaved.
Fall 2015 OMS students: There will be two tests - one midterm after mini-course 2, and one final exam.