Date |
Summary |
2020.7.29 |
- Syllabus
- Recent financial news
- Development environment
- (FYR) Preliminary knowledge about CS
- Programming basics
- Lecture slides: lecture1.pdf
- Lecture notebook: pyf_1_python_programming_1.ipynb
- Variables and naming
- Simple data types (float, str, bool)
- Arithmetic operators (+,-, *, /, //, %, **), assignment operator (=), rational operators (<, <=, ==, >, >=, !=), logical operators (and, or, not)
- Built-in data structures: list, dictionary, tuple
- Branching (if-elif-else)
- Iteration (for, while)
- Applications: Monte Carlo simulation with random number generator, bisection method for root-finding
|
2020.8.1 |
- Programming basics (cont'd)
- Lecture notebook: pyf_1_python_programming_2.ipynb
- Flow controls
- Jump statements (break, continue, pass)
- Looping techniques: enumerate, zip, reverse, sorted
- Comprehensions
- Functions
- User-defined function
- Variable scope
- Default arguments
- Positional & keyword arguments
- Lambda expressions
- Functional programming (map, filter)
- Advanced usage: iterator (next) & generator (yield)
- Object-oriented programming
- Class & object
- Applications: string, file i/o (with-as), date & time, exceptions (try-except-else-finally)
- Homework: Lab 1 due 8/8
|
2020.8.5 |
- Data acquisition, visualization & backtesting
- (FYR) Jake VanderPlas, Python's data science stack, 2016
- Numerical & scientific packages: numpy & scipy
- Lecture notebook: pyf_math.ipynb
- Vectorization
- Matrix computation
- Interpolation: spline
- Optimization
|
2020.8.8 |
|
2020.8.12 |
(no class)
|
2020.8.15 |
|
2020.8.19 |
- Financial time series analysis
- Lecture notebook: pyf_financial_time_series_analysis.ipynb
- Autocorrelation
- Stationaryness
- Autoregressive moving-average (ARMA) model
- Generalized autoregressive conditional heteroskedasticity (GARCH) model
- Vector autoregression (VAR) model
- Cointegrated VAR using vector error correction (VEC) model
- Granger causality
|
2020.8.22 |
- Pricing theory
- Lecture slides: pricing_theory.pdf
- Lecture notebook: pyf_pricing_theory.ipynb
- Arbitrage-free principle
- Complete market
- Valuation framework: fundamental theorem of asset pricing
- Binomial option pricing model (BOPM)
- Stochastic calculus: Wiener process & Ito's formula
- Random walk: Brownian motion
- Black-Scholes formula
- Case study: option pricing with negative strikes by using Bachelier model (Chadv20-152)
|
2020.8.26 |
- Pricing theory (cont'd)
- Monte Carlo simulation
- European options
- American options using least-square Monte Carlo (LSM)
- More stochastic processes with simulation
- Mean-reverting process: Ornstein-Uhlenbeck (OU) model, Vasicek model
- Mean-reverting square-root process: Cox-Ingersoll-Ross (CIR) model
- Stochastic volatility model: Heston model
- Jump-diffusion process: Merton's model
- Term-structure of interest rates: Hull-White (HW) model, Heath-Jarrow-Morton (HJM) framework, LIBOR market model
- QuantLib tutorial
- Model calibration
- Implied volatility
- CIR model
|
2020.8.29 |
- Risk management
- Lecture notebook: pyf_7_risk_management.ipynb
- Value at risk (VaR) and Expected shortfall (ES)
- Sensitivity analysis: Greeks
- Dynamic hedging
- Case study: VIX
|
2020.9.2 (video) |
- Machine learning tutorial
- Lecture notebook: pyf_machine_learning_tutorial_1.ipynb
- Regression with regularization: ridge regression & LASSO regression
- Logistic regression
- Support vector machine (SVM)
- Decision tree, random forest, and AdaBoost
- Principal component analysis (PCA)
- K-means clustering
- Reinforcement learning: Q-learning
- Lecture notebook: pyf_machine_learning_tutorial_2.ipynb
- Recurrent neural network (RNN)
- Long-short term memory (LSTM) model
- Performance issues
- Lecture notebook: pyf_misc.ipynb
- Row major vs. column major
- Performance profiling
- Multiprocessing/multithreading and Amdahl's law
- Dynamic compiling
|