Course Outline
Introduction
Understanding the Fundamentals of Python
Overview of Using Technology and Python in Finance
Overview of Tools and Infrastructure
- Python Deployment Using Anaconda
- Using the Python Quant Platform
- Using IPython
- Using Spyder
Getting Started with Simple Financial Examples with Python
- Calculating Implied Volatilities
- Implementing the Monte Carlo Simulation
- Using Pure Python
- Using Vectorization with Numpy
- Using Full Vectoriization with Log Euler Scheme
- Using Graphical Analysis
- Using Technical Analysis
Understanding Data Types and Structures in Python
- Learning the Basic Data Types
- Learning the Basic Data Structures
- Using NumPy Data Structures
- Implementing Code Vectorization
Implementing Data Visualization in Python
- Implementing Two-Dimensional Plots
- Using Other Plot Styles
- Implementing Finance Plots
- Generating a 3D Plot
Using Financial Time Series Data in Python
- Exploring the Basics of pandas
- Implementing First and Second Steps with DataFrame Class
- Getting Financial Data from the Web
- Using Financial Data from CSV Files
- Implementing Regression Analysis
- Coping with High-Frequency Data
Implementing Input/Output Operations
- Understanding the Basics of I/O with Python
- Using I/O with pandas
- Implementing Fast I/O with PyTables
Implementing Performance-Critical Applications with Python
- Overview of Performance Libraries in Python
- Understanding Python Paradigms
- Understanding Memory Layout
- Implementing Parallel Computing
- Using the multiprocessing Module
- Using Numba for Dynamic Compiling
- Using Cython for Static Compiling
- Using GPUs for Random Number Generation
Using Mathematical Tools and Techniques for Finance with Python
- Learning Approximation Techniques
- Regression
- Interpolation
- Implementing Convex Optimization
- Implementing Integration Techniques
- Applying Symbolic Computation
Stochastics with Python
- Generation of Random Numbers
- Simulation of Random Variables and of Stochastic Processes
- Implementing Valuation Calculations
- Calculation of Risk Measures
Statistics with Python
- Implementing Normality Tests
- Implementing Portfolio Optimization
- Carrying Out Principal Component Analysis (PCA)
- Implementing Bayesian Regression using PyMC3
Integrating Python with Excel
- Implementing Basic Spreadsheet Interaction
- Using DataNitro for Full Integration of Python and Excel
Object-Oriented Programming with Python
Building Graphical User Interfaces with Python
Integrating Python with Web Technologies and Protocols for Finance
- Web Protocols
- Web Applications
- Web Services
Understanding and Implementing the Valuation Framework with Python
Simulating Financial Models with Python
- Random Number Generation
- Generic Simulation Class
- Geometric Brownian Motion
- The Simulation Class
- Implementing a Use Case for GBM
- Jump Diffusion
- Square-Root Diffusion
Implementing Derivatives Valuation with Python
Implementing Portfolio Valuation with Python
Using Volatility Options in Python
- Implementing Data Collection
- Implementing Model Calibration
- Implementing Portfolio Valuation
Best Practices in Python Programming for Finance
Troubleshooting
Summary and Conclusion
Closing Remarks
Requirements
- Basic programming experience
- A solid grasp of mathematics for finance