Lecture 1. Python and Tools
The first lecture shows how to efficiently set-up a Python and develeopment environment for Quant Finance. It also introduces into IPython, and in particular into the Notebook version which allows interactive, browser-based financial analytics with Python
Lecture 2. Introductory Financial Use Cases
This lecture immediately dives into three canonical use cases: calculating and plotting implied volatilities, implementing performant Monte Carlo simulations, backtesting a trend based trading strategy. These use cases illustrate the benefits of the major Python libraries (NumPy, pandas), explained in detail in later lectures.
Lecture 3a. Data Types & Structures
Lecture 3b. Data Visualization
This lecture is all about data modeling and storage with Python and the visualization of data. It introduces the basic data types and structures in Python, shows how to make use of NumPy's array capabilities and how to write vectorized numerical code with Python/NumPy.
Lecture 4. Financial Time Series
This lecture is about the use of the pandas library for the management and analysis of financial time series. It shows examples implementing simple and advanced analytics as well as time series visualization. It also shows how to work with High Frequency data.
Lecture 5. Input-Output Operations
Financial analytics and financial application development mainly rests on the efficient and performant management and movement of (large, big) data. This lecture illustrates how to make sure that data reading and writing (to HDDs, SSDs) takes place at the maximum speed that any given hardware component allows. Examples also illustrate how to make use of compression techniques in such a context.
Lecture 6. Performance Python
The Python ecosystem has to offer a number of powerful performance libraries. For example, using the Numba dynamic compling library allows to compile Python byte code at call-time to machine code by using the LLVM infrastructure. The resulting compiled functions are directly callable from Python. Similarly, using the Multiprocessing module of Python makes parallelization of Python function executions a simple and efficient task.