Welcome to the class!
In this website you will find the lecture notes and Python notebooks for Data Analysis for Investments (FIN 8533) which I typically teach online at WashU during Summer sessions.
What This Site Covers
The course is organized into five modules that build on each other, taking you from Python basics to advanced financial modeling:
Module 1 — Introduction to Python Set up your Python environment, write Jupyter notebooks, define functions, and work with numerical data using NumPy and Pandas. Practical examples include pricing bonds and analyzing stock return data.
Module 2 — Working with Financial Data Download real stock data from Yahoo! Finance, compute price returns and implied dividends, summarize data with descriptive statistics, and estimate beta using linear regression.
Module 3 — The Cross-Section of Stock Returns Explore why stocks earn different returns. Study the Fama-French factor model, momentum strategies, and evaluate mutual fund performance — building a framework for understanding systematic return differences across stocks.
Module 4 — Portfolio Choice Apply mean-variance optimization to construct efficient portfolios. Use numerical methods to map out the investment opportunity set and find the portfolio that best balances risk and return.
Module 5 — Time-Series Analysis Analyze the time-series properties of financial data: serial correlation in stock returns, mean-reversion in interest rates, and time-varying volatility using GARCH models.
Who This Is For
This course is designed for graduate students in finance who want to use Python as a practical tool for investment analysis. No prior programming experience is assumed — the course starts from scratch and progressively introduces more sophisticated techniques.