
Set up a Python development environment with Python from python.org, Visual Studio Code, and Jupyter notebooks; create and activate a virtual environment, install libraries, and run Python files.
Install and register Anaconda as the default Python 3.9, open the Anaconda Navigator, and launch a Jupyter Notebook to write Python code.
Define variables in Python and display values, such as price, with print. Identify data types (integer, float, string, boolean), use type(), and note case sensitivity and flow of execution.
Learn how to use Python if, elif, and else to make decisions with conditional statements. Understand indentation and printing outcomes like price is high or price is low.
Explore Python lists as a versatile datatype that stores multiple values using square brackets. Learn common list methods like append and index, accessed via dot notation.
Learn to create a data frame from a list in pandas, rename the column, and inspect the data frame's columns and index to understand its structure and a range index.
Create a pandas data frame quickly by passing a dictionary of column names and values, then add a person column and view the two-column result with number and person.
Explore how to select rows and columns with iloc in pandas, using position-based indexing to extract rows, columns, or ranges from a data frame.
Use pandas loc to select data by label, choosing rows and columns by names like zero and stock, with ranges for time-series filtering. Compare label-based loc with ilog for access.
Master boolean indexing in pandas to filter data frames with boolean masks, and combine conditions with and/or and parentheses to reveal rows by price, quantity, and name.
Explore yfinance 0.2.51 updates: data frames now have a multi‑index column and no adjusted close. Learn how values are auto-adjusted by adjustment factor for close, high, low, open, and volume.
Explore how to use the diff function to compute row differences, dropNa values with the dropNa function, and apply the rolling function to calculate a 10‑day moving average.
Explore how axis (axis=0 vs axis=1) and the access argument drive row-wise versus column-wise operations, demonstrating dropNa and shift effects on a data frame with daily changes.
Learn to use Pandas nlargest and nsmallest to extract top or bottom values from a close series or dataframe, returning matching dates or full rows.
Use pandas concat to merge two data frames by passing them in a list, along the index (axis=0) or along the columns (axis=1), noting index and column effects on NaN.
Learn how to combine time series data with pandas pd.concat on axis 0 or 1, handle overlapping dates with drop_duplicates, and compare Apple and Tesla close prices from 2015 onward.
Resampling data transforms daily stock data into monthly insights by aggregating volumes with sum and identifying monthly high prices using the max, applied to a daytime index.
Iterate over a data frame with iterose to extract trading signals and track the highest high in the S&P 500 since 2022, using a max variable and index.
Vectorization with pandas operations dramatically speeds calculations, outperforming iterations on 24k-row S&P 500 data by ~40x in execution time using the time library; avoid loops and pursue vectorized backtests.
Explore how to calculate stock returns, from simple and cumulative returns to log returns, including their time-additive property. See how these concepts are implemented in spreadsheets and Python.
Plot the yearly returns of the S&P 500 since 2010 using resampling; learn which libraries and the ticker symbol to use, and set the starting date.
Compute yearly returns of the S&P 500 by cumulating daily returns with pct_change and resampling to yearly, or by taking yearly last close prices, then plot a bar chart.
Explore backtesting by evaluating a simple strategy on the S&P 500: buy when the close exceeds the 100-day moving average and sell when it falls below, to test past performance.
Build an iterative backtest in Python using pandas to compute a 100-day moving average, generate buy and sell signals from close vs ma, and evaluate profits after fees.
Learn vectorized backtesting by building a full S&P 500 trading strategy using a 100-day moving average, boolean indexing, and first-buy logic, removing loops and enabling mtm profit evaluation.
Learn to fetch S&P 500 tickers from Wikipedia using the official media wiki API, avoiding 403 errors and brittle scraping.
Develop and backtest a cross-sectional momentum strategy in Python on the S&P 500, using past 12-month top performers, one-month holdings, survivorship bias, and benchmark comparison.
Explore time-series momentum trading in Python by computing log returns, rolling sums with a window, and a position strategy across stocks, cryptos, and forex, including intraday configurations.
Explore large-scale backtesting on over 500 S&P 500 stocks using a moving average crossover strategy, with data handling via yfinance and pandas, and iterative optimization for unseen data.
Learn key options terminology, including strike price, expiration, premium, and moneyness, distinguish American vs European styles, and read an option chain with bid, ask, volatility, volume, and open interest.
Use puts for protection, calls to speculate, and selling options to generate income via the premium, including the covered call strategy.
Explore hands-on Python techniques to visualize options by fetching real option chain data, building payoff diagrams for calls and puts, and interpreting volatility and pricing through real data.
Learn how intrinsic value and extrinsic value (time value) compose an option's price, with calls and puts, strike price, stock price, time to expiration, volatility, and supply and demand.
Explore the greeks—delta, gamma, theta, and vega—to understand how options prices respond to price moves, time decay, and volatility.
Price a European call with Monte Carlo simulation under geometric Brownian motion, compare to Black-Scholes, discount payoffs, and note path-dependent options like Asian and lookback.
Explore implied volatility, how it differs from historical volatility, and how market price and Black-Scholes pricing reveal forward-looking expectations for option pricing.
Reverse engineer implied volatility from live Binance option data using Black-Scholes and Brent's method. Extracts data with requests, computes mid price, and demonstrates applying an IV tracker.
Apply option theory to practical strategies by combining stock with options through a covered call and a protective put, learning how income is earned and downside risk is protected.
Simulate the payoff of covered call and protective put with Python code, using NumPy to model expiration prices and premium and strike parameters, and Matplotlib to visualize results.
Master vertical spreads: two-leg options with the same expiration, buy one and sell another. Use bull call spreads to target moderate upside; bear put spreads to target moderate downside.
Simulate and compare bull call spread and bear put spread payoffs in Python, computing intrinsic values from stock price ranges, applying premiums, and plotting results.
Simulate and compare payoffs for the iron condor and butterfly multi-leg option strategies using numpy and matplotlib, translating theory into code and visualizing break-even and payoff curves.
Explore the option Greeks as practical tools that reveal how time decay, volatility, and price moves affect strategies like covered calls and iron condors, guiding risk and timing.
Connect to Binance vanilla options websocket to stream real-time bitcoin option prices, save to a csv, and build a data pipeline for estimating implied volatility and volatility smiles with Python.
Analyze live Bitcoin option data from a CSV with pandas, extract underlying, expiry, strike, and type, filter for a strike and expiry, and compute implied volatility using Black-Scholes.
Pull option chain data with yfinance for Apple and analyze volatility smile using Python. Plot implied volatility versus strike prices with Matplotlib, showing u-shaped smile for calls, filtering open interest.
Explore the volatility smile in bitcoin options, comparing short-term and long-term expiries, and fetch live implied volatility data from Deribit using Python to visualize strikes.
Learn how to compute mean, variance, standard deviation, and covariance, compare sample versus population variance, and derive correlation between two data series.
Compute portfolio return by weighting assets' mean returns and assess risk with portfolio standard deviation, using variances and covariances for two or three assets; apply algebra to simplify Python coding.
Compute portfolio expected return and portfolio risk in Python using pandas, deriving means, variances, and covariance from a covariance matrix, and apply the 0.5 and 0.5 weights to illustrate formula.
Apply the dot product to compute portfolio expected return from weights and returns, then derive variance via the covariance matrix and weights; implement in Python with NumPy for scalable portfolios.
Explore the efficient frontier and minimum variance portfolio per Markowitz, using Python to generate random weights, compute annualized returns and risk, and identify the maximum Sharpe ratio portfolio.
Explore a standard sharp optimization in Python, comparing unconstrained and 30% cap portfolios, and assess weight stability through rolling windows and stress testing.
Learn to connect pandas with SQL using an SQLite database, create engines, and write to and query data with to_sql and read_sql.
Build your own finance database of stock prices with python, pandas, SQLAlchemy, and yfinance, importing data, setting date as a column, and storing in SQLite per market for easy querying.
Create an index performance dashboard in Streamlit that shows the top and bottom S&P 500 performers over a chosen horizon, with selectable winners and losers time series.
Build algorithmic trading and options strategies with Python — from raw market data to fully backtested systems.
This course teaches you how to design, implement, and evaluate real trading strategies using Python.
You will not learn isolated concepts. Instead, you will follow a complete workflow used in quantitative finance:
Data → Signal → Strategy → Backtest → Optimization
From stock strategies to options pricing and portfolio construction, everything is built step by step using real data.
What you will learn
By the end of this course, you will be able to:
• Build and backtest momentum and volatility-based trading strategies
• Work with real financial time series data using Pandas
• Create fast, fully vectorized backtests
• Understand and implement options pricing (Black-Scholes, Monte Carlo)
• Understand and calculate implied Volatility on Options
• Build and analyze options trading strategies (spreads, condors, etc.)
• Apply machine learning models to financial data
• Optimize portfolios using risk/return techniques
• Build dashboards to analyze performance
• Store and manage financial data using SQL
What makes this course different?
Most courses either focus on trading strategies, options, or Python basics.
This course combines all of them into one consistent framework.
Every project follows the same structure:
Data → Signal → Strategy → Backtest → Optimization
You will not just learn individual tools. You will learn how to build complete trading systems.
Projects you will build
• Cross-sectional and time-series momentum strategies
• A VIX-based trading strategy inspired by institutional research
• Options pricing models using Black-Scholes and Monte Carlo
• Multi-leg options strategies such as covered calls, spreads, and condors
• A machine learning model for market prediction
• Portfolio optimization using the Sharpe Ratio
• A Streamlit dashboard for market analysis
• A financial database using Python and SQL
Who this course is for
• People with basic Python knowledge who want to apply it to trading
• Aspiring quants, analysts, and data-driven traders
• Anyone who wants to build and test trading strategies properly
This is not a theory-heavy course.
Everything is implemented in Python using real market data.
No filler content and no toy examples.
This course focuses on practical implementation and real workflows used in quantitative finance.
Start building your own algorithmic trading and options strategies with Python.