Course Highlights
  • Build automated Crypto Trading Bots with Python, Binance and Amazon Web Services (AWS)
  • Spot Trading and Futures Trading
  • Create powerful and unique Crypto Trading Strategies
  • Rigorous Testing of Strategies: Backtesting, Forward Testing and live Testing (Paper Trading)
  • Deep Dive into the Binance API (Spot & Futures)
  • API Trading with Binance and many other Exchanges (Coinbase, Kraken & co.)
  • Truly Data-driven Trading and Investing
  • Margin Trading (Leverage)
  • Understand Trading: Order Types, Commissions, Bid-Ask-Spread, Slippage, Liquidation, etc.
  • Load Historical Market Data (Price, Volume and more) from Crypto Spot & Futures Markets
  • Get programmatic access to many Crypto Exchanges with the CCXT Library
  • Python Coding and Object Oriented Programming (OOP) in a way that everybody understands it
  • Coding with Numpy, Pandas, Matplotlib and Seaborn
  • Fully automate and schedule your Trades on a virtual Server in the AWS Cloud
  • Stream high-frequency real-time Cryptocurrency Data
  • Understand, analyze, control and limit Trading Costs
Curriculum

6 Topics
Welcome and Introduction
Did you know...? (a Sneak Preview on Crypto Trading)
How to get the best out of this course
Student FAQ
*** LEGAL DISCLAIMER (MUST READ!) ***
Course Overview

2 Topics
PART 1 Overview
Downloads for PART 1 ***Updated August 2023***

9 Topics
Investing vs. (Algorithmic) Trading
Asset Classes Money and (Crypto-) Currencies
What is a Stable Coin?
Why Trading Cryptocurrencies?
Why using Binance?
Alternative Exchanges (Bybit Kraken etc.)
Spot Trading vs. Derivatives (Futures) Trading (Part 1)
Spot Trading vs. Derivatives (Futures) Trading (Part 2)
[Article] Algorithmic Trading 101 and how to start

17 Topics
Binance.com and Binance.US at a first glance
How to get a 10% Discount on Trading Commissions
Registration and Identity Verification
How to instantly buy your first Cryptos
Deposits and Withdrawals (Part 1)
Deposits and Withdrawals (Part 2)
The first Spot Trade (buy Bitcoin)
Trade Analysis and Trading Fees/Commissions
Another Spot Trade (sell Bitcoin)
Limit Orders vs. Market Orders
Take-Profit Orders
Stop-Loss Orders
The Order Book
Bid-Ask-Spread and Slippage
Total Costs of a Trade (visible vs. hidden Costs)
Liquidity and Market Depth
Introduction to Charting and Technical Indicators

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

15 Topics
Introduction
Test your debugging skills!
Major reasons for Coding Errors
The most commonly made Errors at a glance
Omitting cells changing the sequence and more
IndexErrors
Indentation Errors
Misuse of function names and keywords
TypeErrors and ValueErrors
Getting help on StackOverflow.com
How to traceback more complex Errors
Problems with the Python Installation
External Factors and Issues
Errors related to the course content (Transcription Errors)
Summary and Debugging Flow-Chart

31 Topics
How to maximize your learning experience
Overview
***Important Notice (August 2023 Update)***
Getting the API Key & other Preparations
Commands to install required packages
How to install the Binance API Wrapper
Connecting to the API/Server
Troubleshooting
Important notice for Binance.US users (Part 1)
Retrieving general account/system Info (Part 1)
Retrieving general account/system Info (Part 2)
Getting (current) Market Data
How to load Historical Price & Volume Data (Part 1)
How to load Historical Price & Volume Data (Part 2)
Excursus: Loading Historical Data (csv) from the Website
Streaming real-time Market Data (Part 1)
Running a Python Script
Important notice for Binance.US users (Part 2)
Streaming real-time Market Data (Part 2)
Streaming and collecting real-time Candles
Placing a Test Order
The Binance Spot Test Network
***Important Notice (August 2023 Update)***
Creating a Connection to the Spot Testnet
Spot Testnet API - Overview
Placing a Market Buy Order
Placing a Market Sell Order
Placing Limit Orders
Reporting: Getting all (historical) Orders and Trades
How to create & run a first (simple) Trading Bot
Homework: Running the Trading Bot in a Python Script

37 Topics
Introduction and Overview
Installing and importing required Libraries/Packages
Loading Financial Data from the Web
Initial Inspection and Visualization
[Article] Loading Data into Pandas - advanced topics
Normalizing Time Series to a Base Value (100)
Coding Challenge #1
Price changes and Financial Returns
Reward and Risk of Financial Instruments
Coding Challenge #2
Investment Multiple and CAGR
Compound Returns & Geometric Mean Return
Coding Challenge #3
Discrete Compounding
Continuous Compounding
Log Returns
Simple Returns vs Log Returns ( Part 1)
Simple Returns vs Log Returns ( Part 2)
Coding Challenge #4
Mid-Section Test
Comparing the Performance of Financial Instruments
(Non-) Normality of Financial Returns
Annualizing Return and Risk
Resampling / Smoothing of Financial Data
Rolling Statistics
Coding Challenge #5
Short Selling and Short Position Returns (Part 1)
Introduction to Currencies (Forex) and Trading
Short Selling and Short Position Returns (Part 2)
Short Selling and Short Position Returns (Part 3)
Coding Challenge #6
Covariance and Correlation
Portfolios and Portfolio Returns
Margin Trading and Levered Returns (Part 1)
Margin Trading and Levered Returns (Part 2)
Coding Challenge #7
Final Test

2 Topics
Overview
Downloads for PART 2 ***Updated August 2023***

9 Topics
Trading Strategies - Overview
[Article] More on Trading Strategies
Trading Strategies for Cryptocurrencies (best practices)
How to create your own Trading Strategies
[Article] The Lifecycle of a Trading Strategy
Getting the Data
Financial Data Analysis / Visual Inspection
A simple Buy and Hold "Strategy"
Performance Measurement

7 Topics
Introduction
Data Preparation
Explanatory Data Analysis: Financial Returns and Trading Volume (Part 1)
Explanatory Data Analysis: Financial Returns and Trading Volume (Part 2)
Formulating a Long-only Strategy based on Price & Volume Data
Strategy Backtesting
Trading Costs

11 Topics
Introduction
Getting started
Strategy Optimization (Part 1)
Strategy Optimization (Part 2)
Putting everything together: a Backtester Class
Backtesting & Forward Testing (Part 1)
Backtesting & Forward Testing (Part 2)
The Backtester Class explained (Part 1)
The Backtester Class explained (Part 2)
The Backtester Class explained (Part 3)
The Backtester Class explained (Part 4)

12 Topics
Introduction
Getting started
Important notice for Binance.US users
Recap: Streaming and Collecting Real-Time Candles
NEW: BinanceSocketManager (August 2023 Update)
Creating the LongOnlyTrader Class
Working with historical data and real-time data (Part 1)
Working with historical data and real-time data (Part 2)
Adding a Long-Only Trading Strategy
Placing Orders and Executing Trades
Trade Monitoring and Reporting
How to set/automate the stop of a Trading Session

10 Topics
Introduction
Getting started
Recap: Explanatory Data Analysis and generating a Trading Idea
Defining the Long-Short Strategy
A Long-Short Backtesting Framework
Strategy Backtesting
A Long-Short Trading Framework
Implementing and Automating a Long-Short Trading Strategy
#Troubleshooting for the next Lecture#
Running a Python Trader Script

10 Topics
Introduction and Motivation
Demonstration: AWS EC2 for Algorithmic Trading live in action
Amazon Web Services (AWS) - Overview and how to create a Free Trial Account
How to create an EC2 Instance
How to connect to your EC2 Instance
Required Installations and Downloads
Getting the Instance Ready for Algorithmic Trading
How to run Python Scripts in a Windows Command Prompt
How to start Trading sessions with Batch (.bat) Files
How to schedule Trading sessions with the Task Scheduler

5 Topics
Introduction
Solution (Notebook) ***Updated August 2023***
The Solution explained (Part 1)
The Solution explained (Part 2)
The Solution explained (Part 3)

2 Topics
Overview
Downloads for Part 3 ***Updated August 2023***

20 Topics
Creating an account on Binance Futures Testnet
First Steps
The first Futures Trade (Long)
Trade Analysis
A trade with Leverage
The impact of Leverage
A Short Trade
Margin Requirements and Liquidation (Part 1)
Margin Requirements and Liquidation (Part 2)
Excursus: The Futures Calculator
How to add Stop Loss to an open position
Stop Loss (SL) and Take Profit (TP) Orders
Margin Mode: Cross vs. Isolated
Position Mode: One-way (Netting) vs. Hedging
How to work with many open positions
Introduction to the Funding Rate
The Funding Rate explained (Part 1)
The Funding Rate explained (Part 2)
The Funding Rate explained (Part 3)
The Funding Rate live in action

8 Topics
Introduction
Getting the Data
Backtesting without Leverage and Trading Costs in the Futures Market
Recap: Leverage and levered Returns
Levered Returns: a more realistic approach
The Futures Backtesting Class live in action
How to adjust the Framework to (levered) Futures Trading
The impact of Leverage on Trading Performance

12 Topics
Introduction and Preparations
The Binance Futures API
How to change Settings and Modes
Placing Market Orders (Part 1)
Trade Analysis - Trade and Income History
Placing Market Orders (Part 2)
Getting Historical Futures Market Data
***Important Notice (August 2023 Update)***
Streaming Future Prices in real-time
A Futures Trading Bot (Part 1)
A Futures Trading Bot (Part 2)
Putting everything together

2 Topics
Overview
Downloads for Part 4 (Updated: June 2023)

19 Topics
Introduction
Preparations
First Steps with CCXT
General Exchange Information
The Public API
Loading Historical Data (Part 1)
Loading Historical Data (Part 2)
Streaming real-time Data (Part 1)
Introduction to Multithreaded Programming
Streaming real-time Data (Part 2)
Streaming real-time Data (Part 3)
Getting Historical Data and Streaming live Data
The Private API
How to connect to Testnets (Sandbox mode)
Creating Orders and analyzing Trades (Spot)
Creating Orders and analyzing Trades (Futures)
A CCXT Spot Trading Bot
Excursus: Generalization
A CCXT Futures Trading Bot

9 Topics
Introduction
Creating accounts on bybit.com and testnet.bybit.com
More Preparations for (API) Trading with Bybit and CCXT
API Trading with Bybit and CCXT - First Steps
What you should consider for Backtesting
Spot Trading (Orders and Trades)
A Bybit Spot Trading Bot
Futures Trading on Bybit (Orders and Trades)
A Bybit Futures Trading Bot

9 Topics
Important Notice
Introduction
How to get a 5% Discount on Trading Commissions (FTX.com)
Creating accounts on FTX.com and FTX.us
FTX and CCXT - an Overview
What you should consider for Backtesting
An FTX Spot Trading Bot
Futures Trading on FTX
An FTX Futures Trading Bot

2 Topics
Introduction and Overview
Appendix Downloads ***Updated May 2023***

52 Topics
Intro to the Time Value of Money (TVM) Concept (Theory)
Calculate Future Values (FV) with Python / Compounding
Calculate Present Values (PV) 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

9 Topics
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

68 Topics
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)
Loading a CSV-file into Pandas
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

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

16 Topics
Introduction to OOP and examples for Classes
The Financial Analysis Class live in action (Part 1)
The Financial Analysis 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: Create your own Class

1 Topic
Bonus Lecture

  Write a Review

Cryptocurrency Algorithmic Trading with Python and Binance

Go to Paid Course