Skip to content
This repository has been archived by the owner on May 16, 2024. It is now read-only.

OMS CS7646 Machine Learning for Trading- Fall '19 #8

Open
scarecrow1123 opened this issue Dec 31, 2019 · 0 comments
Open

OMS CS7646 Machine Learning for Trading- Fall '19 #8

scarecrow1123 opened this issue Dec 31, 2019 · 0 comments

Comments

@scarecrow1123
Copy link
Owner

scarecrow1123 commented Dec 31, 2019

CS 7646 Machine Learning For trading

Instructor(s): David Byrd / David Joyner / Tucker Balch
Course Page: Link

This was my third OMS course after Robotics - AI Techniques and KBAI. I've only been taking one course per term and this marks the completion of my one year into OMS, starting from Spring '19.

About the Course

This is a gentle introduction to few fundamental concepts of numpy/pandas, machine learning and trading. The only prerequisite that this course assumes is some familiarity in programming with Python. Hence this could be an apt starter course for someone from a non CS background too.

The first part of the course deals with introducing numpy, pandas, i.e., dealing with multi dimensional data in general. Historical stock data are provided in CSV files. Basic manipulation and plotting these data with matplotlib is also introduced.

Second part introduces concepts of trading, technical analysis and a some insights of how hedge funds function. Technical analysis chapter deals with details on how simple heuristics called technical indicators are used by traders to understand various characteristics of a stock. These indicators form the feature set with which machine learning algorithms are trained to do automated trading.

Third part discusses basic machine learning algorithms such as linear regression, decision trees and also Q-Learning which is a reinforcement learning technique.

Projects

There are totally 8 projects involved in the course work. Few of the major projects are:

  • Decision Trees: In this project, we built a regression model with decision trees from scratch. A classic decision tree and a random forest with boosting is built to predict stock returns.

  • Market Simulation: The objective here is to understand how a stock market works by writing a toy market simulator. It keeps track of orders/holdings and compute the final statistics. The code written for this also would find place in the subsequent projects.

  • Manual Strategy: Here, the intention is to implement few of the technical indicators of choice. Along with these, we are to write a rule based system to incorporate the chosen indicators and do trading on the simulator that is already written.

  • Q-Learner: The objective here is to implement a generic Q-Learner, but for robot navigation primarily to get familiarized with the algorithm.

  • The final project is to use either the Decision Tree or the Q-Learner and replace the rule-based trading with the automated one and report findings.

Class and Grading

This term, the on-site and online classes were run together for the first time as an experiment. Only the exams and lecture delivery varied. The class was pretty much run by the head TA for the entire term. Grades were not curved with two exams amounting to 25% and projects to 73% of the total grades. There were minor points for an extra credit project and participation.

Conclusion

The technical analysis part was helpful for me personally. Since I had prior experience with Python and machine learning to an extent, the material wasn't difficult to follow. I wish the course content had a bit more depth at times and the material felt like undergrad level in a few places.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant