Workgroup Financial Mathematics

Breadcrumb Navigation


Computational Finance and its implementation in Python with applications to option pricing

Lecturer: Dr. Andrea Mazzon

Schedule and Venue


Dr. Andrea Mazzon

Dates and Times:

Mon 1.3.21 9-13

Tue 2.3.21 14-18

Fri 5.3.21 14-18

Mon 8.3.21 14-18

Wed 10.3.21 14-18

Fri 12.3.21 9-13

Fri 26.3.21 10-12


Final Exam Tue 30.3.21 14-16

Registration is mandatory. For registration send an email to including your name and student id (Matrikelnummer) until the 22th of February. The course will be held in Zoom, unless there is a drastic change in the Covid situation, which is currently very unlikely. Further information will be provided per e-mail.

Course Description

The aim of the lecture is to connect theory and practice in Mathematical Finance, with applications to option prices by coding in Python. We will look at several examples/models and produce some code for each topic, implementing standard and more advanced financial models and the associated numerical procedures. The lectures will be held in an interactive format alternating theory, code illustration/demonstrations, and implementation exercises to be carried out during the class.
In particular, here is a tentative schedule.
  • Binomial model for option pricing:
    • replicating portfolio
    • calibration
    • different techniques for the evaluation of American options
    • convergence, computational efficiency and control variates
  • Review of the Monte-Carlo method for the simulation of stochastic processes and option pricing:
    • variance reduction techniques: control variate, importance sampling, antithetic variables
  • Finite difference methods for the approximation of the solution of PDEs for option pricing:
    •  forward Euler, backward Euler, Crank - Nicholson and theta-method: consistency, convergence, stability. Theory and examples
    • option pricing by Feyman-Kac formula
    • Feynman Kaç formula testing: comparison between the price approximation obtained by solving the PDE and the one got by Monte-Carlo simulation
  • Monte Carlo method for the pricing of Bermudan options
    • the problem of approximating conditional expectations
    • regression based methods, Longstaff & Schwartz Monte Carlo method
  •  Monte Carlo methods for stochastic volatility, Jump diffusion and Lévy models.


Please register for the lecture via mail to until the 22th of February. Your email should include name and student id (Matrikelnummer). Please note that registration is mandatory.


  • Monte Carlo Methods in Financial Engineering, Paul Glasserman, Springer-Verlag New York, 2004.
  • Numerical Solutions of Stochastic Differential Equations, Peter E. Kloeden and Eckhard Platen, Springer-Verlag Berlin Heidelberg, 1992.
  • R. Cont and P. Tankov: "Financial Modelling with Jump Processes" Chapman & Hall 2004,
  • J. Kienitz, D. Wetterau: "Financial Modelling: Theory, Implementation and Practice with MATLAB Source", Wiley, 2012
  • C. Fries : "Mathematical Finance: Theory, Modeling, Implementation". Wiley, 2007.
  • M.Gilli, D. Maringer, E. Schumann. "Numerical Methods and Optimization in Finance", Elsevier 2011

For who is this course?

Target Participants: Students of the Master in Mathematics or in Financial and Insurance Mathematics.

Pre-requisites: Students are supposed to be familiar with stochastic calculus and pricing theory. Good programming skills and a fair knowledge of Python are also required.

Applicable credits: 3 ECTS. Students may apply the credits from this course to:

  • the Master in Financial and Insurance Mathematics, PO 2011 (WP20, WP22, WP23)
  • the Master in Financial and Insurance Mathematics, PO 2019 (WP17)
  • the Master in Mathematics (WP44.3, WP45.2 or WP45.3)


There will be some theoretical exercise sheets as well as some programming exercises, to be solved and run in Python. The solution of the exercises is part of the exam.


In order to succesfully pass the exam, the students are required to present and discuss the solution of at least two of the three problems that can be found in the Project sheet.