Implementing QuantLib
Training Books Tutorials Blog About

Blog

  • Nov 28, 2023

    The Black-Scholes model in QuantLib

    Today’s post was originally published as an article in the May 2023 issue of Wilmott Magazine, which was dedicated to the 50th anniversary of the Black-Scholes model.

    Read more...

  • Oct 19, 2023

    Handling dependencies in QuantLib

    Today’s post on handles was originally published as an article in the March 2023 issue of Wilmott Magazine.

    Read more...

  • Sep 27, 2023

    Cross-currency swaps

    From time to time, a question on the QuantLib mailing list or, as in this case, on the Quantitative Finance StackExchange causes me to answer with a notebook.

    Read more...

  • Sep 13, 2023

    A QuantLib-Python companion for the Ametrano-Bianchetti paper

    It recently occurred to me that it’s 10 years since the paper by F. M. Ametrano and M. Bianchetti, Everything You Always Wanted to Know About Multiple Interest Rate Curve Bootstrapping but Were Afraid to Ask, was published on SSRN. Given the nice, round anniversary, I’m publishing here a companion Jupyter notebook that reproduces the calculations in the paper.

    Read more...

  • May 9, 2023

    Payment-in-kind bonds

    This post was inspired by a question by Dagur Gunnarsson (thanks!) on the QuantLib mailing list. How do you price a bond that adds the coupon payment to its notional after each period?

    Read more...

  • Apr 26, 2023

    The code from my Wilmott articles is now available

  • Apr 12, 2023

    A QuantLib series on Wilmott magazine

  • Jan 14, 2022

    Other QuantLib blogs

  • Oct 16, 2021

    LIBOR fallback calculation

  • Apr 19, 2021

    Oh, bother: email subscription is being turned off

  • Feb 10, 2021

    Leaving C++03: for real this time

  • Oct 30, 2020

    A few news items

  • Feb 19, 2020

    QuantLib in 2020 and beyond

  • Feb 10, 2020

    Implementing QuantLib is now available in Japanese

  • Jan 23, 2020

    QuantLib in the last decade

  • Sep 16, 2019

    Implementing QuantLib is now available in Chinese

  • Aug 9, 2019

    A quick look at the QuantLib 1.16 release

  • Feb 26, 2019

    A quick look at the QuantLib 1.15 release

  • Feb 19, 2019

    Introductory training on QuantLib in Python

  • Nov 27, 2018

    Leaving C++03: compiler compatibility so far

  • Nov 13, 2018

    QuantLib notebook: using curves with different day count conventions

  • Nov 7, 2018

    QuantLib notebook: discount margin calculation

  • Oct 30, 2018

    Leaving C++03: more STL classes

  • Oct 24, 2018

    QuantLib notebook: a glitch in forward rates

  • Oct 17, 2018

    Leaving C++03: a recap

  • Oct 9, 2018

    QuantLib notebook: more mischievous conventions

  • Oct 3, 2018

    A quick look at the QuantLib 1.14 release

  • Sep 27, 2018

    QuantLib notebook: mischievous bond conventions

  • Sep 18, 2018

    QuantLib notebook: building irregular bonds

  • Sep 4, 2018

    QuantLib notebook: pricing on a range of days

  • Aug 27, 2018

    The QuantLib Python Cookbook is almost done

  • Aug 7, 2018

    Leaving C++03: tooling, part 2

  • Jul 3, 2018

    Leaving C++03: tooling, part 1

  • Jun 18, 2018

    Leaving C++03: deprecated standard features

  • May 29, 2018

    A quick look at the QuantLib 1.13 release

  • May 8, 2018

    QuantLib notebook: dangerous day-count conventions

  • May 2, 2018

    Leaving C++03: automation, part 3

  • Apr 24, 2018

    Leaving C++03: automation, part 2

  • Apr 17, 2018

    Leaving C++03: automation, part 1

  • Apr 10, 2018

    Leaving C++03: standard smart pointers

  • Apr 4, 2018

    Leaving C++03: an experiment

  • Mar 20, 2018

    The benefits of procrastination

  • Feb 14, 2018

    A quick look at the QuantLib 1.12 release

  • Feb 8, 2018

    QuantLib notebook: rho for the Black process

  • Dec 20, 2017

    The slides from QLUM17 are available

  • Dec 6, 2017

    Screencast: my talk at the QuantLib user meeting 2017

  • Oct 25, 2017

    A quick look at the QuantLib 1.11 release

  • Oct 11, 2017

    A look back at the Implementing QuantLib series

  • Oct 4, 2017

    Odds and ends: the Visitor pattern

  • Sep 27, 2017

    Odds and ends: the Singleton pattern

  • Sep 20, 2017

    Odds and ends: the Observer pattern

  • Sep 13, 2017

    Odds and ends: disposable objects

  • Sep 6, 2017

    Odds and ends: linear algebra

  • Aug 30, 2017

    Odds and ends: statistics

  • Aug 23, 2017

    Odds and ends: solvers and optimizers

  • Jul 11, 2017

    QuantLib notebook: par and indexed coupons

  • May 23, 2017

    Odds and ends: exercises and payoffs

  • May 18, 2017

    A quick look at the QuantLib 1.10 release

  • May 11, 2017

    More tools: Travis CI, Codacy, and Codecov

  • Apr 26, 2017

    A visual history of QuantLib

  • Apr 12, 2017

    Chapter 8, part 13: finite-difference schemes and solvers

  • Mar 7, 2017

    Chapter 8, part 12: initial, boundary, and step conditions

  • Feb 7, 2017

    Test coverage in QuantLib

  • Feb 1, 2017

    Numerical Greeks

  • Dec 22, 2016

    'Tis the season

  • Dec 13, 2016

    Report from the QuantLib user meeting in Düsseldorf

  • Dec 9, 2016

    Chapter 8, part 11: Black-Scholes finite-difference operators

  • Dec 1, 2016

    Chapter 8, part 6.5: time-dependent operators

  • Nov 15, 2016

    A quick look at the QuantLib 1.9 release

  • Nov 3, 2016

    QuantLib notebook: market quotes

  • Oct 13, 2016

    Odds and ends: market quotes

  • Oct 5, 2016

    Chapter 8, part 10: basic finite-difference operators

  • Sep 27, 2016

    QuantLib and SWIG

  • Sep 20, 2016

    Chapter 8, part 9 of n: finite-difference iterators

  • Sep 13, 2016

    Chapter 8, part 8 of n: finite-difference meshers

  • Sep 6, 2016

    Chapter 8, part 7 of n: the new finite-difference framework

  • Jul 28, 2016

    Report from the QuantLib user meeting in London

  • Jul 19, 2016

    Translating QuantLib Python examples to C++

  • Jul 14, 2016

    The ABCD of Interest Rate Basis Spreads

  • Jun 15, 2016

    The QuantLib Python Cookbook is available

  • Jun 2, 2016

    PSA: QuantLib User Meeting in London

  • May 25, 2016

    A quick look at the QuantLib 1.8 release

  • May 18, 2016

    New blog engine, old URL

  • Mar 17, 2016

    QuantLib notebook: interest-rate sensitivities

  • Dec 17, 2015

    Christmas break

  • Dec 10, 2015

    Screencast: my talk at the QuantLib user meeting 2015

  • Dec 3, 2015

    Report from the QuantLib user meeting in Düsseldorf

  • Nov 26, 2015

    A quick look at the QuantLib 1.7 release

  • Nov 19, 2015

    Chapter 8, part 6 of n: example, American option

  • Nov 12, 2015

    Upcoming: QuantLib User Meeting 2015

  • Sep 29, 2015

    QuantLib notebook: term structures and reference dates

  • Aug 24, 2015

    Chapter 8, part 5 of n: finite-difference models

  • Jul 27, 2015

    Chapter 8, part 4 of n: step conditions

  • Jul 20, 2015

    MoneyScience Hangout available on YouTube

  • Jul 13, 2015

    Chapter 8, part 3 of n: boundary conditions

  • Jul 6, 2015

    PSA: Google Hangout

  • Jun 29, 2015

    A quick look at the QuantLib 1.6 release

  • Jun 22, 2015

    Chapter 8, part 2 of n: evolution schemes

  • Jun 15, 2015

    Chapter 8, part 1 of n: the finite-differences framework.

  • Jun 1, 2015

    An IPython notebook server with QuantLib on Docker

  • May 18, 2015

    Odds and ends: interpolations

  • May 4, 2015

    QuantLib notebook: duration of a floating-rate bond

  • Apr 27, 2015

    Chapter 7, part 6 of 6: an example of tree-based engine

  • Apr 20, 2015

    Chapter 7, part 5 of 6: tree-based lattices

  • Apr 13, 2015

    Chapter 7, part 4 of 6: trinomial trees

  • Mar 30, 2015

    Chapter 7, part 3 of 6: binomial trees

  • Mar 23, 2015

    Chapter 7, part 2 of 6: examples of discretized assets

  • Mar 16, 2015

    Chapter 7, part 1 of 6: the tree framework

  • Mar 9, 2015

    Implementing QuantLib available from Leanpub

  • Mar 2, 2015

    QuantLib notebook: numerical Greeks calculation

  • Feb 16, 2015

    A quick look at the 1.5 release

  • Feb 9, 2015

    Odds and ends: global settings

  • Jan 19, 2015

    Quants Hub workshop available

  • Dec 15, 2014

    Odds and ends: indexes

  • Dec 9, 2014

    Report from the QuantLib user meeting in Düsseldorf

  • Nov 17, 2014

    Odds and ends: date calculations

  • Oct 13, 2014

    Announcement: QuantLib user meeting 2014

  • Oct 1, 2014

    QuantLib notebook: implied term structures

  • Sep 11, 2014

    Still on hiatus, and some news

  • Jul 14, 2014

    Intermission: book update and summer schedule

  • Jul 7, 2014

    Chapter 6, part 8 of 8: example

  • Jun 30, 2014

    Chapter 6, part 7 of 8: Monte Carlo simulations

  • Jun 23, 2014

    Chapter 6, part 6 of 8: Monte Carlo models

  • Jun 16, 2014

    Chapter 6, part 5 of 8: path generators

  • Jun 9, 2014

    QuantLib notebook: random numbers

  • Jun 2, 2014

    Chapter 6, part 4 of 8: more processes

  • May 26, 2014

    Chapter 6, part 3 of 8: the Black-Scholes process

  • May 19, 2014

    Chapter 6, part 2 of n: stochastic processes

  • May 12, 2014

    Chapter 6, part 1 of n: random-number generation

  • Apr 28, 2014

    QuantLib notebooks

  • Apr 14, 2014

    Still on hiatus

  • Mar 3, 2014

    Screencast: term structures

  • Feb 24, 2014

    Screencast: instruments and pricing engines

  • Feb 17, 2014

    Chapter 4, part 5 of 5: cash-flow analysis

  • Feb 10, 2014

    Chapter 4, part 4 of 5: generating cash-flow sequences

  • Feb 3, 2014

    Chapter 4, part 3 of 5: coupon examples

  • Jan 27, 2014

    Chapter 4, part 2 of 5: floating-rate coupons

  • Jan 20, 2014

    Chapter 4, part 1 of 5: Cash flows and coupons

  • Jan 13, 2014

    Chapter 3, part 7 of 7; interest-rate volatilities

  • Dec 23, 2013

    Intermission: book update and holiday hiatus

  • Dec 16, 2013

    Odds and ends: error reporting

  • Dec 9, 2013

    The strange case of the changing implied term structure

  • Dec 2, 2013

    Chapter 3, part 6 of n: volatility term structures

  • Nov 25, 2013

    Screencast: my talk at the QuantLib User Meeting

  • Nov 18, 2013

    Report from the QuantLib User Meeting

  • Nov 11, 2013

    Intermission

  • Nov 4, 2013

    Interlude: code archaeology

  • Oct 28, 2013

    Chapter 3, part 5 of n: other term structures

  • Oct 21, 2013

    Odds and ends: interest rates

  • Oct 14, 2013

    Chapter 3, part 4 of n: adding z-spread to an interest-rate curve

  • Oct 7, 2013

    Chapter 3, part 3 of n: bootstrapping an interest-rate curve

  • Sep 30, 2013

    Chapter 3, part 2 of n: Yield term structures

  • Sep 23, 2013

    Chapter 3, part 1 of n: Term structures

  • Sep 16, 2013

    Odds and ends: basic types

  • Sep 9, 2013

    Intermission: LaTeX style file and some musings.

  • Sep 2, 2013

    Chapter 5, part 5 of 5: Model example

  • Aug 26, 2013

    Chapter 5, part 4 of 5: Models and calibration

  • Aug 19, 2013

    Chapter 5, part 3 of n: Model parameters

  • Aug 12, 2013

    Chapter 5, part 2 on n: Example

  • Aug 5, 2013

    Chapter 5, part 1 of n: Parameterized models and calibration

  • Jul 29, 2013

    Odds and ends: smart pointers and handles

  • Jul 22, 2013

    Chapter 2, part 4 of 4: Example

  • Jul 15, 2013

    Chapter 2, part 3 of 4: Pricing engines

  • Jul 8, 2013

    Chapter 2, part 2 of 4: Example

  • Jul 1, 2013

    Chapter 2, part 1 of 4: Financial instruments

  • Jun 25, 2013

    Interlude

  • Jun 17, 2013

    The Plan of the Book

  • Jun 10, 2013

    Introduction

Check out my books:

Luigi Ballabio is one of the administrators and lead developers of the QuantLib project. Also husband, father of four, ex-physicist, and amateur musician.

Follow:  

The posts on this blog are my own and don't represent my employer's positions, strategies, or opinions. What did you think?

Copyright 2013-2023 Luigi Ballabio. Social icons by Martz90. Powered by Jekyll.