Course Overview

In this course, we will learn how to implement machine learning-based trading strategies. We will begin with information gathering and move toward executing market orders through algorithmic processes. The course will emphasize probabilistic machine learning approaches for trading decisions. We will also explore statistical methods such as linear regression, Q-learning, K-nearest neighbors (KNN), and regression trees, and learn how to apply them to real-world stock trading.

There are three parts in this course:

Part 1: Working with Financial Data in Python
Part 2: Computational Investing
Part 3: Machine Learning Methods for Trading

Learning Goals

By the end of the course, students should be able to:

  • Work with financial data in Python.
  • Explain basic investing and trading concepts.
  • Build machine learning models for trading problems.
  • Test trading strategies using different validation methods.
  • Explain model results, limits, and tradeoffs.

Prerequisites/Co-requisites

Students with any background are welcome in this course. If you are a computer science major, you may already recognize some of the machine learning topics. If you are a finance major, you may already be familiar with some of the investment concepts. In this course, we will bring these areas together and focus on how they can be used to design, test, and evaluate trading strategies. The most important requirements are curiosity about financial markets and a willingness to learn by doing.

One small note: this is a graduate-level, or at least senior-level, course. We will start slowly and build the foundation step by step, but the course will gradually ramp up as we move toward more advanced topics.

Some prior familiarity with the following topics will be helpful:

  • Basic statistics, such as mean, median, mode, variance, standard deviation, and probability distributions
  • Basic investment ideas, such as stocks, returns, risk, and portfolio performance
  • Programming experience in Python

If you would like to strengthen your Python skills before the course, Harvard’s CS50P: Introduction to Programming with Python is a great place to start: https://cs50.harvard.edu/python/

If you would like to refresh your statistics knowledge, Josh Starmer’s StatQuest videos are also very helpful: https://statquest.org/video_index.html

You can earn bonus points by showing your CS50P certificate within the first month of class!

Logistics

All course content will be delivered through Canvas.

All assignment submissions must also be completed through Canvas. Unless I provide different instructions for a specific activity, Canvas is the official submission system for this course.

Textbooks

Introduction to Statistical Learning
Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani
Available online: https://www.statlearning.com/

Probabilistic Machine Learning: An Introduction
Kevin P. Murphy
Available online: https://probml.github.io/pml-book/

Python for Finance
Yves Hilpisch
Available online: https://www.sea-stat.com/wp-content/uploads/2021/05/Yves-Hilpisch-Python-for-Finance_-Mastering-Data-Driven-Finance-Book-OReilly-2018.pdf

What Hedge Funds Really Do: An Introduction to Portfolio Management
Philip J. Romero and Tucker Balch
Available on Amazon: https://www.amazon.com/gp/product/1631570897

I will also provide additional reading materials on a need basis, depending on the lectures covered in class.

Grading Scale

This course will use the following grading scale:

Final PercentageLetter Grade
90% to 100%A
80% to 89%B
70% to 79%C
60% to 69%D
Below 60%F

Final grades will be based on the total points earned across assignments, projects, exams, participation, and other course activities described in this syllabus.

Software

For the coding assignments, we will use Python and common data analysis libraries such as NumPy, Pandas, SciPy, scikit-learn, and related tools. In the video lessons, I will use a Windows environment for demonstrations. You may work on Windows, Mac, or Linux, as long as you can install and run the required Python packages.

We will also use the following software:

We will also learn how to use coding agents as part of the development process. In this course, I will use OpenAI’s Codex to demonstrate how coding agents can help with writing, debugging, and improving code. You may use your preferred coding agent, but a ChatGPT account with a payment method attached is highly recommended.

For more information, see OpenAI’s pages on using Codex with your ChatGPT plan, ChatGPT Plus, and OpenAI Codex.

Plagiarism

Academic integrity is expected in this course. You are expected to submit your own work and to give proper credit when you use someone else’s words, ideas, code, data, examples, or analysis.

Because this course involves programming, data analysis, machine learning, and coding agents, plagiarism may include copying code, notebooks, written explanations, trading strategies, model outputs, charts, or analysis from another student, website, GitHub repository, AI tool, or any other source without proper acknowledgment. You may use outside resources to learn, but your submitted work should reflect your own understanding.

You may use coding agents and AI tools when they are allowed for an assignment, but you must use them responsibly. If an assignment requires you to disclose outside help, you should clearly state what tools or resources you used and how you used them. Submitting AI-generated work, copied code, or another person’s work as your own is not acceptable.

Students found responsible for violating the Student Code of Conduct may receive sanctions depending on the nature and seriousness of the violation. You should review the official Southeastern Louisiana University Student Handbook for the full policy and student conduct procedures: https://www.southeastern.edu/wp-content/uploads/osaa/southeastern-student-handbook-2025.pdf