Financial Modelling - Theory, Implementation and Practice is a unique combination of quantitative techniques, the application to financial problems and programming using Matlab. The book enables the reader to model, design and implement a wide range of financial models for derivatives pricing and asset allocation, providing practitioners with complete financial modelling workflow, from model choice, deriving prices and Greeks using (semi-) analytic and simulation techniques, and calibration even for exotic options.The book is split into three parts. The first part considers financial markets in general and looks at the complex models needed to handle observed structures, reviewing models based on diffusions including stochastic-local volatility models and (pure) jump processes. It shows the possible risk neutral densities, implied volatility surfaces, option pricing and typical paths for a variety of models including SABR, Heston, Bates, Bates-Hull-White, Displaced-Heston, or stochastic volatility versions of Variance Gamma, respectively Normal Inverse Gaussian models and finally, multi-dimensional models. The stochastic-local-volatility Libor market model with time-dependent parameters is considered and as an application how to price and risk-manage CMS spread products is demonstrated.The second part of the book deals with numerical methods which enables the reader to use the models of the first part for pricing and risk management, covering methods based on direct integration and Fourier transforms, and detailing the implementation of the COS, CONV, Carr-Madan method or Fourier-Space-Time Stepping. This is applied to pricing of European, Bermudan and exotic options as well as the calculation of the Greeks. The Monte Carlo simulation technique is outlined and bridge sampling is discussed in a Gaussian setting and for Lévy processes. Computation of Greeks is covered using likelihood ratio methods and adjoint techniques. A chapter on state-of-the-art optimization algorithms rounds up the toolkit for applying advanced mathematical models to financial problems and the last chapter in this section of the book also serves as an introduction to model risk. The third part is devoted to the usage of Matlab, introducing the software package by describing the basic functions applied for financial engineering. The programming is approached from an object-oriented perspective with examples to propose a framework for calibration, hedging and the adjoint method for calculating Greeks in a Libor Market model.