CS 7646 - Machine Learning For Trading
As the semester of Spring 2025 dawns on us, I wanted to talk about my first semester as a student of OMSCS at Georgia Tech. I took the generally accepted good choice for a first course, which happened to be Machine Learning for Trading (ML4T).
The primary instructors for this course is Dr. David Joyner. Although you will see more of Steven Bryant in the live sessions as well as on EdStem, which is the primary mode of communication with the rest of the cohort.
Grading Distribution
- Projects - 71%
- Exams - 25%
- Quizzes - 2%
- Course Surveys - 2%
The grading is absolute in this course. No curve :(
Projects
The course had a project heavy structure. The eight projects over the semester added up to 71% of the grade. This is also where you will learn the majority of the content. All the projects are implemented in Python. The packages we were allowed to use were mainly for plotting and local grading. There was one project where we needed to use SciPy for an optimization problem.
Each project had a different weightage on its own, the lowest being 3%, and the highest being 20%. The highest weightage was reserved for the final project which is worth it’s weightage.
Project | Weightage | Report |
---|---|---|
Martingale | 3% | Yes |
Optimize Something | 3% | No |
Assess Learners | 15% | Yes |
Defeat Learners | 5% | No |
Market Simulation | 8% | No |
Indicator Evaluation | 7% | Yes |
Q Learning Robot | 10% | No |
Strategy Evaluation | 20% | Yes |
The projects with glasses on it indicate some research necessary to get started with the project. The ones with clocks indicate time to work on these projects. You can see that the final project is the only one with two clocks. Believe me, rightly so. Start early on the final project to be more comfortable with your results as the deadline approaches.
Most of the projects are similar to what is listed on the Lucy Labs page from Fall 2023. Assess Learners and Strategy Evaluation were the hardest projects of all. Make sure that you start them on time. Both these projects needed at least 90-100 hours worth of effort. For Strategy Evaluation, I would strongly suggest being prudent about your approach on the trader. You will have the option to use Random Forests and Q-Learner as well. I struggled with Q-Learner for a full week, before I gave up and wrote the Random Forest solution. By the time you reach this project, you should have learned how to manage your time.
Indicator Evaluation needed a lot of research to understand the indicators and making sure we picked the correct one. This project was less of implementation but a lot more of understanding technical indicators. This is an important project because these are what you will use for your final project as well.
Q Learning and Assess Learners were the only two projects that had core Machine Learning concepts. Assess Learners dealt with Decision Trees and Random Forests. It also explored the Ensemble Learner concept where we had to implement Bagging to reduce the variability in performance. The Q-Learning project had us implement a Q-Learner from scratch that should be able to navigate through a world riddled with obstacles. I really like the Q-Learner project as it was a new concept to me, and it was fun to implement it from scratch.
The rest of the projects were pretty easy. Each would take about 15-20 hours of your time at worst. All projects have a very descriptive project instruction page. Make sure to read that thoroughly and also consult on the EdStem page to see if there are any other things to be considered. They are very descriptive of what each component of the project will account for in your final score.
A good tip for the projects is to keep your solutions as simple as possible. And, vectorize as much as possible. Everything you build in the projects, except Martingale and Defeat Learners, gets used in your final project. Your implementation will do a lot of heavy lifting and will be constrained by limited runtime. Vectorizing the individual components would optimize your overall runtime by the time you reach the final project. All the projects have decent local grading scripts. But, it is always better to set up your own testcases as well. This would be highly recommended to handle edge cases and timeout possibilities.
Note: Some of the projects did have extra credit for excellent work or report, although I never received it. Some people did. Wonder what they did… o.O
Exams
Each exam is worth about 12.5% of your grade. In my opinion, be ready to lose some points in the exams. Typically, they are multiple select questions, where each option is a T/F question. There is nothing to prepare specifically for your exams. Make sure that you go through the reading materials and understand it. Although it is open book, treat it as an option to confirm your choices, rather than finding the choices. You won’t have enough time to read the question, go through the book and then come up with the answers. You are allowed to use Chat-GPT, but I did not find it useful.
Quizzes and Surveys
Quizzes are worth 2% of your grade. No need to sweat it. But it is also the easiest 2% of your grade after course surveys. It would be a set of simple questions to answer every week, usually based on the readings assigned.
There are four surveys that ask you about your experience of the course at each checkpoint of the course timeline. These account to about 2% of your grade overall.
Review
Overall, I think this course had very little to do with Machine Learning as a concept. You learn very basic algorithms that are almost never applicable in the real world. This course primarily deals with working on financial data, implementing simple algorithms to model this data and an attempt at making a functional automated trader.
The course content is very stale, as the lectures are almost 7 years old now. They use the lectures recorded by Professor Tucker Balch, who was a previous lecturer of this course. I think he did a good job at explaining most of the concepts. As I mentioned before, most of your learning will happen while working on the projects. The EdStem conversations are also extremely helpful. A lot of other students will be facing the same issues as you, so you will mostly find answers you are looking for.
But, all said and done, I think this is a decent course to start your OMSCS journey. The grading is quite lenient. I lost about 4.5 points in exams and quizzes combined, netting me an A in the course. The most important thing I learnt from this course was the skill of writing a paper. When you work on something for a better part of two weeks, you might have a book to write on the details. But, we had to limit these to about 10 pages typically, which is a lot harder than it sounds.
Good Luck! :)