Algorithmic Trading A-Z with Python, Machine Learning & AWS

Build your own truly Data-driven Day Trading Bot | Learn how to create, test, implement & automate unique Strategies.

4.52 (2887 reviews)
Udemy
platform
English
language
Investing & Trading
category
32,583
students
43.5 hours
content
Mar 2024
last update
$99.99
regular price

What you will learn

Build automated Trading Bots with Python and Amazon Web Services (AWS)

Create powerful and unique Trading Strategies based on Technical Indicators and Machine Learning / Deep Learning.

Rigorous Testing of Strategies: Backtesting, Forward Testing and live Testing with paper money.

Fully automate and schedule your Trades on a virtual Server in the AWS Cloud.

Truly Data-driven Trading and Investing.

Python Coding and Object Oriented Programming (OOP) in a way that everybody understands it.

Coding with Numpy, Pandas, Matplotlib, scikit-learn, Keras and Tensorflow.

Understand Day Trading A-Z: Spread, Pips, Margin, Leverage, Bid and Ask Price, Order Types, Charts & more.

Day Trading with Brokers OANDA, Interactive Brokers (IBKR) and FXCM.

Stream high-frequency real-time Data.

Understand, analyze, control and limit Trading Costs.

Use powerful Broker APIs and connect with Python.

Description

Welcome to the most comprehensive Algorithmic Trading Course. It´s the first 100% Data-driven Trading Course!

*** May 2023:  Course fully updated and now with an additional Broker: Interactive Brokers (IBKR)***


Did you know that 75% of retail Traders lose money with Day Trading? (some sources say >95%)

For me as a Data Scientist and experienced Finance Professional this is not a surprise. Day Traders typically do not know/follow the five fundamental rules of (Day) Trading. This Course covers them all in detail!


1. Know and understand the Day Trading Business

Don´t start Trading if you are not familiar with terms like Bid-Ask Spread, Pips, Leverage, Margin Requirement, Half-Spread Costs, etc.

Part 1 of this course is all about Day Trading A-Z with the Brokers Oanda, Interactive Brokers, and FXCM. It deeply explains the mechanics, terms, and rules of Day Trading (covering Forex, Stocks, Indices, Commodities, Baskets, and more).


2. Use powerful and unique Trading Strategies

You need to have a Trading Strategy. Intuition or gut feeling is not a successful strategy in the long run (at least in 99.9% of all cases). Relying on simple Technical Rules doesn´t work either because everyone uses them.

You will learn how to develop more complex and unique Trading Strategies with Python. We will combine simple and also more complex Technical Indicators and we will also create Machine Learning- and Deep Learning- powered Strategies. The course covers all required coding skills (Python, Numpy, Pandas, Matplotlib, scikit-learn, Keras, Tensorflow) from scratch in a very practical manner.

3. Test your Strategies before you invest real money (Backtesting / Forward Testing)

Is your Trading Strategy profitable? You should rigorously test your strategy before 'going live'.

This course is the most comprehensive and rigorous Backtesting / Forward Testing course that you can find.

You will learn how to apply Vectorized Backtesting techniques, Iterative Backtesting techniques (event-driven), live Testing with play money, and more. And I will explain the difference between Backtesting and Forward Testing and show you what to use when. The backtesting techniques and frameworks covered in the course can be applied to long-term investment strategies as well!   


4. Take into account Trading Costs - it´s all about Trading Costs!

"Trading with zero commissions? Great!" ... Well, there is still the Bid-Ask-Spread and even if 2 Pips seem to be very low, it isn´t!

The course demonstrates that finding profitable Trading Strategies before Trading Costs is simple. It´s way more challenging to find profitable Strategies after Trading Costs! Learn how to include Trading Costs into your Strategy and into Strategy Backtesting / Forward Testing. And most important: Learn how you can control and reduce Trading Costs.

 

5. Automate your Trades

Manual Trading is error-prone, time-consuming, and leaves room for emotional decision-making.

This course teaches how to implement and automate your Trading Strategies with Python, powerful Broker APIs, and Amazon Web Services (AWS). Create your own Trading Bot and fully automate/schedule your trading sessions in the AWS Cloud!


Finally... this is more than just a course on automated Day Trading:

  • the techniques and frameworks covered can be applied to long-term investing as well.

  • it´s an in-depth Python Course that goes beyond what you can typically see in other courses. Create Software with Python and run it in real-time on a virtual Server (AWS)!

  • we will feed Machine Learning & Deep Learning Algorithms with real-time data and take ML/DL-based actions in real-time!

What are you waiting for? Join now. As always, there is no risk for you as I provide a 30-Days-Money-Back Guarantee!

Thanks and looking forward to seeing you in the Course!

Content

Getting Started

What is Algorithmic Trading / Course Overview
Did you know...? (what Data can tell us about Day Trading)
How to get the best out of this course
Student FAQ
*** LEGAL DISCLAIMER (MUST READ!) ***

+++ PART 1: Day Trading, Online Brokers and APIs +++

Our very first Trade
Long Term Investing vs. (Algorithmic) Day Trading
Overview & the Brokers OANDA and FXCM

Day Trading with OANDA A-Z: a Deep Dive

OANDA at a first glance
How to create an Account
FOREX / Currency Exchange Rates explained
Our second Trade - EUR/USD FOREX Trading
How to calculate Profit & Loss of a Trade
Trading Costs and Performance Attribution
Margin and Leverage
Margin Closeout and more
Introduction to Charting
Our third Trade A-Z - Going Short EUR/USD
Netting vs. Hedging
Market, Limit and Stop Orders
Take-Profit and Stop-Loss Orders
A more general Example
Trading Challenge

FOREX Day Trading with FXCM

FXCM at a first glance
How to create an Account
Example Trade: Buying EUR/USD
Trade Analysis
Charting
Closing Positions vs. Hedging Positions
Order Types at a glance
Trading Challenge

Installing Python and Jupyter Notebooks

Introduction
Download and Install Anaconda
How to open Jupyter Notebooks
How to work with Jupyter Notebooks
Tips for Python Beginners

Trading with Python and OANDA/FXCM - an Introduction

Overview
OANDA: Commands to install required packages
OANDA: How to install the OANDA API / Wrapper
OANDA: Getting the API Key & other Preparations
OANDA: Connecting to the API/Server
OANDA: How to load Historical Price Data (Part 1)
OANDA: How to load Historical Price Data (Part 2)
OANDA: Streaming high-frequency real-time Data
OANDA: How to place Orders and execute Trades
Trading Challenge
FXCM: Commands to install required packages
FXCM: How to install the FXCM API Wrapper
FXCM: Getting the Access Token & other Preparations
FXCM: Connecting to the API/Server
FXCM: How to load Historical Price Data (Part 1)
FXCM: How to load Historical Price Data (Part 2)
FXCM: Streaming high-frequency real-time Data
FXCM: How to place Orders and execute Trades
Trading Challenge

Conclusion and Outlook

Conclusion and Outlook

+++ PART 2: Pandas for Financial Data Analysis and Introduction to OOP +++

Introduction and Downloads Part 2

Introduction to Time Series Data in Pandas

Importing Time Series Data from csv-files
Converting strings to datetime objects with pd.to_datetime()
Indexing and Slicing Time Series
Downsampling Time Series with resample()
Coding Exercise 1

Financial Data Analysis with Pandas - an Introduction

Getting Ready (Installing required library)
Importing Stock Price Data from Yahoo Finance
Initial Inspection and Visualization
Normalizing Time Series to a Base Value (100)
The shift() method
The methods diff() and pct_change()
Measuring Stock Performance with MEAN Returns and STD of Returns
Financial Time Series - Return and Risk
Financial Time Series - Covariance and Correlation
Coding Exercise 2
Simple Returns vs. Log Returns
Importing Financial Data from Excel
Simple Moving Averages (SMA) with rolling()
Momentum Trading Strategies with SMAs
Exponentially-weighted Moving Averages (EWMA)
Merging / Aligning Financial Time Series (hands-on)

Advanced Topics

Helpful DatetimeIndex Attributes and Methods
Filling NA Values with bfill, ffill and interpolation
Timezones and Converting (Part 1)
Timezones and Converting (Part 2)

Object Oriented Programming (OOP): Creating a Financial Instrument Class

Introduction to OOP and examples for Classes
The FinancialInstrument Class live in action (Part 1)
The FinancialInstrument Class live in action (Part 2)
The special method __init__()
The method get_data()
The method log_returns()
String representation and the special method __repr__()
The methods plot_prices() and plot_returns()
Encapsulation and protected Attributes
The method set_ticker()
Adding more methods and performance metrics
Inheritance
Inheritance and the super() Function
Adding meaningful Docstrings
Creating and Importing Python Modules (.py)
Coding Exercise 3: Create your own Class

+++ PART 3: Defining and Testing Trading Strategies +++

Introduction to Part 3
Trading Strategies - an Overview
Downloads for Part 3
Getting the Data
A simple Buy and Hold "Strategy"
Performance Metrics

Defining and Backtesting SMA Strategies

SMA Crossover Strategies - Overview
Defining an SMA Crossover Strategy
Vectorized Strategy Backtesting
Finding the optimal SMA Strategy
Generalization with OOP: An SMA Backtester Class in action
OOP: the special method __init__()
OOP: the method get_data()
OOP: the method set_parameters()
OOP: the method test_strategy()
OOP: the method plot_results()
OOP: the method update_and_run()
OOP: the method optimize_parameters()
OOP: Docstrings and String Representation

Defining and Backtesting simple Momentum/Contrarian Strategies

Simple Contrarian/Momentum Strategies - Overview
Getting the Data
Defining a simple Contrarian Strategy
Vectorized Strategy Backtesting
Changing the Window Parameter
Trades and Trading Costs (Part 1)
Trades and Trading Costs (Part 2)
Generalization with OOP: A Contrarian Backtester Class in action
OOP Challenge: Create the ConBacktester Class (incl. Solution)

Defining and Backtesting Mean-Reversion Strategies (Bollinger)

Mean-Reversion Strategies - Overview
Getting the Data
Defining a Bollinger Bands Mean-Reversion Strategy (Part 1)
Defining a Bollinger Bands Mean-Reversion Strategy (Part 2)
Vectorized Strategy Backtesting
Finding the optimal Strategy
Generalization with OOP: A Mean-Reversion Backtester Class in action
OOP Challenge: Create the MeanRevBacktester Class (incl. Solution)

Trading Strategies powered by Machine Learning - Regression

Machine Learning - an Overview
Linear Regression with scikit-learn - a simple Introduction
Making Predictions with Linear Regression
Overfitting
Underfitting
Getting the Data
A simple Linear Model to predict Financial Returns (Part 1)
A simple Linear Model to predict Financial Returns (Part 2)
A Multiple Regression Model to predict Financial Returns
In-Sample Backtesting and the Look-ahead-bias
Out-Sample Forward Testing

Trading Strategies powered by Machine Learning - Classification

Logistic Regression with scikit-learn - a simple Introduction (Part 1)
Logistic Regression with scikit-learn - a simple Introduction (Part 2)
Getting and Preparing the Data
Predicting Market Direction with Logistic Regression
In-Sample Backtesting and the Look-ahead-bias
Out-Sample Forward Testing
Generalization with OOP: An ML Backtester Class in action
The MLBacktester Class explained (Part 1)
The MLBacktester Class explained (Part 2)

Advanced Backtesting Techniques

Introduction to Iterative Backtesting ("event-driven")
A first Intuition on Iterative Backtesting (Part 1)
A first Intuition on Iterative Backtesting (Part 2)
Creating an Iterative Base Class (Part 1)
Creating an Iterative Base Class (Part 2)
Creating an Iterative Base Class (Part 3)
Creating an Iterative Base Class (Part 4)
Creating an Iterative Base Class (Part 5)
Creating an Iterative Base Class (Part 6)
Creating an Iterative Base Class (Part 7)
Creating an Iterative Base Class (Part 8)
Adding the Iterative Backtest Child Class for SMA (Part 1)
Adding the Iterative Backtest Child Class for SMA (Part 2)
Using Modules and adding Docstrings
OOP Challenge: Add Contrarian and Bollinger Strategies

+++ PART 4: Real-time Implementation and Automation of Strategies +++

Introduction and Overview
Downloads for Part 4

Implementation and Automation with OANDA

Recap: Historical Data, real-time Data and Orders
How to collect and store real-time tick data
Storing and resampling real-time tick data (Part 1)
Storing and resampling real-time tick data (Part 2)
How to implement a Contrarian Strategy in Real-Time (Part 1)
How to implement a Contrarian Strategy in Real-Time (Part 2)
How to implement a Contrarian Strategy in Real-Time (Part 3)
Updating the Wrapper Package (Part 1)
Updating the Wrapper Package (Part 2)
How to implement a Contrarian Strategy in Real-Time (Part 4)
How to implement a Contrarian Strategy in Real-Time (Part 5)
How to implement a Contrarian Strategy in Real-Time (Part 6)
Alternative : Running a Python Script

Implementation and Automation with FXCM

Recap: Historical Data, real-time Data and Orders
Collecting, storing and resampling real-time tick data (Part 1)
Collecting, storing and resampling real-time tick data (Part 2)
How to implement a Contrarian Strategy in Real-Time (Part 1)
How to implement a Contrarian Strategy in Real-Time (Part 2)
How to implement a Contrarian Strategy in Real-Time (Part 3)
How to implement a Contrarian Strategy in Real-Time (Part 5)
Alternative : Running a Python Script

+++ PART 5: Expert Tips & Tricks, Case Studies and more +++

Overview
Downloads for PART 5

Trading Hours, Spreads and Granularity - control and limit Trading Costs!

Introduction
Getting and Preparing the Data
The best time to trade (Part 1)
The best time to trade (Part 2)
Spreads during the busy hours
The Impact of Granularity
Strategies and Cost Efficiency

Working with two or many Strategies (Combination)

Introduction
Getting the Data
Strategy 1: SMA
Strategy 2: Mean Reversion
Combining both Strategies - Alternative 1 (Part 1)
Combining both Strategies - Alternative 1 (Part 2)
Combining both Strategies - Alternative 2

A Machine Learning-powered Strategy A-Z

Project Preview

+++ APPENDIX: Python Crash Course +++

Overview

Appendix 1: Python (& Finance) Basics

Section Downloads
Intro to the Time Value of Money (TVM) Concept (Theory)
Calculate Future Values (FV) with Python / Compounding
Calculate Present Values (FV) with Python / Discounting
Interest Rates and Returns (Theory)
Calculate Interest Rates and Returns with Python
Introduction to Variables
Excursus: How to add inline comments
Variables and Memory (Theory)
More on Variables and Memory
Variables - Dos, Don´ts and Conventions
The print() Function
Coding Exercise 1
TVM Problems with many Cashflows
Intro to Python Lists
Zero-based Indexing and negative Indexing in Python (Theory)
Indexing Lists
For Loops - Iterating over Lists
The range Object - another Iterable
Calculate FV and PV for many Cashflows
The Net Present Value - NPV (Theory)
Calculate an Investment Project´s NPV
Coding Exercise 2
Data Types in Action
The Data Type Hierarchy (Theory)
Excursus: Dynamic Typing in Python
Build-in Functions
Integers
Floats
How to round Floats (and Integers) with round()
More on Lists
Lists and Element-wise Operations
Slicing Lists
Slicing Cheat Sheet
Changing Elements in Lists
Sorting and Reversing Lists
Adding and removing Elements from/to Lists
Mutable vs. immutable Objects (Part 1)
Mutable vs. immutable Objects (Part 2)
Coding Exercise 3
Tuples
Dictionaries
Intro to Strings
String Replacement
Booleans
Operators (Theory)
Comparison, Logical and Membership Operators in Action
Coding Exercise 4
Conditional Statements
Keywords pass, continue and break
Calculate a Project´s Payback Period
Introduction to while loops
Coding Exercise 5

Appendix 2: User-defined Functions (required for OOP)

Section Downloads
Defining your first user-defined Function
What´s the difference between Positional Arguments vs. Keyword Arguments?
How to work with Default Arguments
The Default Argument None
How to unpack Iterables
Sequences as arguments and *args
How to return many results
Scope - easily explained
Coding Exercise 6

Appendix 3: Numpy, Pandas, Matplotlib and Seaborn Crash Course

Downloads for this Section
Modules, Packages and Libraries - No need to reinvent the Wheel
Numpy Arrays
Indexing and Slicing Numpy Arrays
Vectorized Operations with Numpy Arrays
Changing Elements in Numpy Arrays & Mutability
View vs. copy - potential Pitfalls when slicing Numpy Arrays
Numpy Array Methods and Attributes
Numpy Universal Functions
Boolean Arrays and Conditional Filtering
Advanced Filtering & Bitwise Operators
Determining a Project´s Payback Period with np.where()
Creating Numpy Arrays from Scratch
Coding Exercise 7
How to work with nested Lists
2-dimensional Numpy Arrays
How to slice 2-dim Numpy Arrays (Part 1)
How to slice 2-dim Numpy Arrays (Part 2)
Recap: Changing Elements in a Numpy Array / slice
How to perform row-wise and column-wise Operations
Coding Exercise 8
Intro to Tabular Data / Pandas
Create your very first Pandas DataFrame (from csv)
Pandas Display Options and the methods head() & tail()
First Data Inspection
Coding Exercise 9
Selecting Columns
Selecting one Column with the "dot notation"
Zero-based Indexing and Negative Indexing
Selecting Rows with iloc (position-based indexing)
Slicing Rows and Columns with iloc (position-based indexing)
Position-based Indexing Cheat Sheets
Selecting Rows with loc (label-based indexing)
Slicing Rows and Columns with loc (label-based indexing)
Label-based Indexing Cheat Sheets
Summary, Best Practices and Outlook
Coding Exercise 10
First Steps with Pandas Series
Analyzing Numerical Series with unique(), nunique() and value_counts()
Analyzing non-numerical Series with unique(), nunique(), value_counts()
The copy() method
Sorting of Series and Introduction to the inplace - parameter
First Steps with Pandas Index Objects
Changing Row Index with set_index() and reset_index()
Changing Column Labels
Renaming Index & Column Labels with rename()
Filtering DataFrames (one Condition)
Filtering DataFrames by many Conditions (AND)
Filtering DataFrames by many Conditions (OR)
Advanced Filtering with between(), isin() and ~
Intro to NA Values / missing Values
Handling NA Values / missing Values
Exporting DataFrames to csv
Summary Statistics and Accumulations
Visualization with Matplotlib (Intro)
Customization of Plots
Histogramms (Part 1)
Histogramms (Part 2)
Scatterplots
First Steps with Seaborn
Categorical Seaborn Plots
Seaborn Regression Plots
Seaborn Heatmaps
Removing Columns
Introduction to GroupBy Operations
Understanding the GroupBy Object
Splitting with many Keys
split-apply-combine

Screenshots

Algorithmic Trading A-Z with Python, Machine Learning & AWS - Screenshot_01Algorithmic Trading A-Z with Python, Machine Learning & AWS - Screenshot_02Algorithmic Trading A-Z with Python, Machine Learning & AWS - Screenshot_03Algorithmic Trading A-Z with Python, Machine Learning & AWS - Screenshot_04

Reviews

Rv
July 29, 2023
Not useful for very beginner, only reading code already written , its get boring without much explanation
Azael
July 27, 2023
la claridad del acento y dicción del maestro al hablar es muy difícil de entender y los subtítulos no son precisos lo que hace complicado el momento de entender la información del curso
Jaishankar
July 13, 2023
The course content is good! He explains well! I need this same course with respect to derivatives in stocks and hopefully following this course will show me how to! But I like the course, he is thorough.
Godswill
July 7, 2023
Overall good content because there's not much out there that involves trading with Python, but I feel like the explanations could be better, the Author just displays already written codes. As a beginner coder, it's hard to understand what those codes actually mean or represent. It would've been better if the Author wrote the codes live while explaining each line, and their purpose. It just feels like I have to figure out how to copy and paste the codes without really understanding what they are there for. I was expecting a class of live coding from start to finish when it came time to put everything together, but it doesn't seem like that will happen. Maybe I'll have to keep watching to fully understand, and if I do, I'll update my review, but for now, I'm left confused and disappointed.
Nikola
June 13, 2023
This course is great, it teaches you literally from Zero how to start programing in python to the last point which is creating Robot. All recommendations for anyone who would like to code and trade in the same time!!
Andrius
May 10, 2023
The course content is not up to date, and the interface of the trading applications has changed since the video was made. As a result, I am unable to generate a PAI key.
Andrey
April 23, 2023
This course about everything at once and nothing in particular. The most interesting topics are not disclosed, but at the same time there is a lot of information that is not related to the course on the basics of programming. A very strange combination of slow presentation of the material and insufficient information.
Aviv
April 15, 2023
Good content but there are better machine learning and algo trading courses. he teaches little bit of boring, very monotonic
Vikas
April 15, 2023
i think a litte more information to true beginners who are completely unaware of ask, bid, pip etc can be provided in the begining videos.
Dhruv
April 8, 2023
This is a lovely course. The pace of the tutor is just perfect.. Hope to learn alot from this one.....!!!!!
Kelly
April 4, 2023
I am blown away by the instructor's extremely thorough knowledge of both finance and coding, and equally impressed by his teaching skills. This is a great course, I highly recommend it to anyone who is interested in the subject matter. Included is an excellent course in Python as well as basic finance. Beginners of either subject (or both!) will have everything they need, but be prepared because there is a ton of information!
Mason
March 23, 2023
For the most part it's solid and well explained. However, some of his code doesn't work and you need to figure it out on your own. Both times I asked a question I received no response.
Joana
March 13, 2023
I am really enjoying all the explanations of the basic concepts of trading. Wasn't expecting this to be so thorough!
Challa
March 7, 2023
Hey dude your are awesome. I am a java programmer. after watching your videos i am good to go with it.
Rishat
January 26, 2023
Good explanations. Maybe some challenges should be a bit more diffucult. But I like how the course explains, the second part I think will be more interesting

Coupons

DateDiscountStatus
5/29/202195% OFF
expired
6/21/202194% OFF
expired
2/24/202384% OFF
expired

Charts

Price

Algorithmic Trading A-Z with Python, Machine Learning & AWS - Price chart

Rating

Algorithmic Trading A-Z with Python, Machine Learning & AWS - Ratings chart

Enrollment distribution

Algorithmic Trading A-Z with Python, Machine Learning & AWS - Distribution chart
3395102
udemy ID
8/5/2020
course created date
11/7/2020
course indexed date
Bot
course submited by