gitmyhub

Financial-Models-Numerical-Methods

Jupyter Notebook ★ 6.8k updated 1y ago

Collection of notebooks about quantitative finance, with interactive python code.

A collection of Jupyter notebooks teaching quantitative finance, option pricing, Monte Carlo simulation, Fourier methods, Kalman filtering, and portfolio optimization, combining theory with runnable Python code.

PythonJupyter NotebookCondaDockerNumPySciPysetup: moderatecomplexity 3/5

This repository is a collection of Jupyter notebooks covering topics in quantitative finance, the area of finance that uses mathematical models and computing to price financial instruments and manage risk. Each notebook is self-contained and combines explanations with runnable Python code, so you can read the theory and immediately experiment with it in the same document.

The notebooks span several areas. Some cover standard option pricing using Monte Carlo simulation and the Black-Scholes model. Others focus on less commonly taught approaches: solving partial differential equations numerically, pricing options via Fourier methods, working with models that include random jumps in asset prices (known as Levy processes), and using the Kalman filter to track changing market statistics over time. Additional notebooks cover calibrating model parameters to real market data, pricing exotic options such as barrier and Asian options, and mean-variance portfolio optimization.

The collection is aimed at students in science, finance, or economics who have completed at least one course in financial mathematics and statistics. It does not explain foundational concepts like options or stochastic processes from scratch, but every new term comes with a link to a reference for readers who need a refresher. Self-taught readers with an introductory financial mathematics background should also find the material accessible.

To run the notebooks, the repository includes setup instructions for several approaches: a reproducible Conda virtual environment, a standard Python virtual environment, and a Docker container. Once the environment is set up, launching Jupyter opens all the notebooks in an interactive format where you can modify and re-run the code.

Where it fits