Post Mortem | Machine Learning For Trading
Summary
What this class is
Overall, this class follows what a lot of the other reviews have stated. The lectures and material are not too complicated so that a data science wizard can breeze through or a non-CS major can learn it with a little bit of effort. The lectures, readings, and assignments build upon one another and this continuity was refreshing compared to other classes. The exams are easy if you study the lectures and readings for 5 hours (assuming you reviewed them throughout the class originally). Every assignment has a video or example that you can follow along to get an idea of how to do it. Assignments are not open ended, which is great for an intro to ML concepts. The python programming required is all numpy, and pandas-based. Review numpy and pandas prior to the course. The project descriptions are not as fleshed out as they should be, so fulfilling the requirements can be time consuming and annoying. However, with a little bit of effort on reading the project descriptions and watching the videos anyone can get an A.
What this class is NOT
This class is not an in-depth intro to a vast amount of industry ML concepts that can be used as an intro for other classes such as ML or DL. The ML concepts lack breadth and aren’t too difficult conceptually. However, this makes it a great intro ML course. This class is not a all-inclusive financial concepts course that can teach you all the concepts a CS person who wants to trade will need to know.
My Review (Overall Grade: 95%)
Background
Undergrad CS-major with some experience in python. I did not have experience in numpy and pandas which is essential to this course. I understood some of the basic financial concepts from, you guessed it, losing money in the stonk market.
Overview
Here is a link to the syllabus: http://lucylabs.gatech.edu/ml4t/fall2021/
I meticulously tracked my time spent on this course and each individual project throughout the semester using a tracking app. The times stated are extremely accurate.
Total Hours spent on this course: 119 hours and 20 minutes
Average hours per week: 7.5 hours
Max hours spent in a week: 24 hours 26 minutes (project 8, the Capstone)
Min hours spent in a week: 0 hours
Lectures/Readings
The video lectures range from the ML4T Udacity lectures to Professor Balch’s YouTube channel. The lectures introduce the concepts needed for the projects and explain them very well, anyone can understand. The lectures also give tips for doing the projects, so please watch them before attempting projects.
The readings are mainly needed for the exams.
Project 1 (8 hours 40 minutes, Grade: 94%)
This project was a good introduction to using statistics, rudimentary math, python, and writing a report to JDF specification. You’ll notice that time spent on projects directly correlates to whether a report is needed. This project gently introduces the expectations for the course in regards to coding using numpy, statistical understanding, and report writing.
Project 2 (4 hours 54 minutes, Grade: 100%)
This is a more coding-heavy project. You’ll use the python library scipy to optimize a financial indicator for a given stock portfolio and generate a chart. This chart is the only “report” to be turned in.
Project 3 (14 hours 12 minutes, Grade 76%)
This project is extremely important, and in my opinion the most difficult one. It is using ML concepts to create a learner that is then used in the capstone project. Make sure to get this one right and understand all the concepts, as they will come back to you in Project 8. Very python heavy, and a large report of your experiments is required. I lost points for using a python list variable instead of a numpy ndarray. Don’t be like me and lose 20 points on a one-line mistake.
Project 4 (4 hours 43 minutes, Grade 100%)
No report required. This project can either take 1 hour or 10 hours. This kind of depends on ingenuity. It was a project to create datasets to be used for different learners. If you understand linear regression and decision trees it won’t take more than 5 hours.
Project 5 (14 hours 52 minutes, Grade 100%)
No report required. This project took me a long time due to bugs in my code. My best recommendation is to watch and re-watch Professor Balch’s video on the project. Your project will take stock trade orders and cross-reference the orders with the stocks’ prices for that day to generate portfolio values per day. Python numpy and pandas experience is very helpful here.
Project 6 (10 hours 41 minutes, Grade 100%)
In this project you select technical indicators for stocks and write code to generate them from given stock data. A report also goes with this describing the indicators. Make sure to read the project description very carefully, as you are stuck using these in Project 8.
Project 7 (5 hours 24 minutes, Grade 102%)
This project uses Q learning. You write some python to make a Q-learner that passes some tests. No report required! I highly recommend watching the videos on Q-learning and Dyna-Q prior to starting.
Project 8 (26 hours 10 minutes, Grade 100%)
This project is the capstone. You will take your indicators from project 6, and the learners from project 3, and your market simulator from project 5, and put it all together. You create strategies for trading stocks based on your ML concepts learned in the course, do some experiments, and write a report about it. It’s very time consuming and requires looking at discussion posts and the project description to not mess anything up. Good luck.
Exams
Exam 1: 93.3%
Exam 2: 96.6%
If you watch the required videos and do the readings throughout the course, these exams take only 5 hours of review to get an A. The questions aren’t hard and come directly from the material.