EN FR
EN FR


Section: Software and Platforms

PREMIA

Participants : Antonino Zanette, Mathrisk Research Team, Agnès Sulem [correspondant] .

Premia is a software designed for option pricing, hedging and financial model calibration. It is provided with it's C/C++ source code and an extensive scientific documentation. https://www-rocq.inria.fr/mathfi/Premia

The Premia project keeps track of the most recent advances in the field of computational finance in a well-documented way. It focuses on the implementation of numerical analysis techniques for both probabilistic and deterministic numerical methods. An important feature of the platform Premia is the detailed documentation which provides extended references in option pricing.

Premia is thus a powerful tool to assist Research & Development professional teams in their day-to-day duty. It is also a useful support for academics who wish to perform tests on new algorithms or pricing methods without starting from scratch.

Besides being a single entry point for accessible overviews and basic implementations of various numerical methods, the aim of the Premia project is:

  1. to be a powerful testing platform for comparing different numerical methods between each other;

  2. to build a link between professional financial teams and academic researchers;

  3. to provide a useful teaching support for Master and PhD students in mathematical finance.

  • AMS: 91B28;65Cxx;65Fxx;65Lxx;65Pxx

  • License: Licence Propriétaire (genuine license for the Consortium Premia)

  • Type of human computer interaction: Console, interface in Nsp, Web interface

  • OS/Middelware: Linux, Mac OS X, Windows

  • APP: The development of Premia started in 1999 and 15 are released up to now and registered at the APP agency.

  • Programming language: C/C++ librairie Gtk

  • Documentation: the PNL library is interfaced via doxygen

  • Size of the software: 280580 lines for the Src part only, that is 11 Mbyte of code, 130400 lines for PNL, 103 Mbyte of PDF files of documentation.

  • interfaces : Nsp for Windows/Linux/Mac, Excel, binding Python, and a Web interface.

  • Publications: [1] , [68] , [75] , [83] , [86] , [55]

Content of Premia

Premia contains various numerical algorithms (Finite-differences, trees and Monte-Carlo) for pricing vanilla and exotic options on equities, interest rate, credit and energy derivatives.

  1. Equity derivatives:

    The following models are considered:

    Black-Scholes model (up to dimension 10), stochastic volatility models (Hull-White, Heston, Fouque-Papanicolaou-Sircar), models with jumps (Merton, Kou, Tempered stable processes, Variance gamma, Normal inverse Gaussian), Bates model.

    For high dimensional American options, Premia provides the most recent Monte-Carlo algorithms: Longstaff-Schwartz, Barraquand-Martineau, Tsitsklis-Van Roy, Broadie-Glassermann, quantization methods and Malliavin calculus based methods.

    Dynamic Hedging for Black-Scholes and jump models is available.

    Calibration algorithms for some models with jumps, local volatility and stochastic volatility are implemented.

  2. Interest rate derivatives

    The following models are considered:

    HJM and Libor Market Models (LMM): affine models, Hull-White, CIR++, Black-Karasinsky, Squared-Gaussian, Li-Ritchken-Sankarasubramanian, Bhar-Chiarella, Jump diffusion LMM, Markov functional LMM, LMM with stochastic volatility.

    Premia provides a calibration toolbox for Libor Market model using a database of swaptions and caps implied volatilities.

  3. Credit derivatives: CDS, CDO

    Reduced form models and copula models are considered.

    Premia provides a toolbox for pricing CDOs using the most recent algorithms (Hull-White, Laurent-Gregory, El Karoui-Jiao, Yang-Zhang, Schönbucher)

  4. Hybrid products

    PDE solver for pricing derivatives on hybrid products like options on inflation and interest or change rates is implemented.

  5. Energy derivatives: swing options

    Mean reverting and jump models are considered.

    Premia provides a toolbox for pricing swing options using finite differences, Monte-Carlo Malliavin-based approach and quantization algorithms.

Premia design

Premia has managed to grow up over a period of more than a dozen years; this has been possible only because contributing an algorithm to Premia is subject to strict rules, which have become too stringent. To facilitate contributions, a standardized numerical library (PNL) has been developed by J. Lelong under the LGPL since 2009, which offers a wide variety of high level numerical methods for dealing with linear algebra, numerical integration, optimization, random number generators, Fourier and Laplace transforms, and much more. Everyone who wishes to contribute is encouraged to base its code on PNL and providing such a unified numerical library has considerably eased the development of new algorithms which have become over the releases more and more sophisticated. An effort will be made to continue and stabilize the development of PNL.

  1. Development of the PNL. Here are the major 2013 contributions (by Jérôme Lelong):

    1. PNL relies on CMake for compiling.

    2. Add the sampling of new distributions: log-normal, inverse Gaussian, asymmetric double exponential distributions.

    3. Add the computation of eigenvalues and eigenvectors for complex matrices. Based on this new function, add the computation of the matrix logarithm for complex matrices.

    4. Add Newton's algorithm with Armijo line search.

    5. The top level PnlOjbect is modified to keep track of the number of references on an object to improve memory management in lists. This delicate change in the core of the library enabled us to speed codes based on lists by a great deal.

    6. Several other functions have also been added.

  2. Premia

    1. The compilation of Premia is now based on CMake which is a cross-platform building tool. It allows us to maintain a single building chain and to automatically generate Makefiles or a Visual project. This technology change significantly improves our ability to generate Windows versions.

    2. Add support for PnlMatrix both in Premia VAR and in the Nsp toolbox.

    3. A model size change in the Nsp GUI automatically propagates to all parameters thanks to the addition a Return callback in the GUI.

    4. Some fixes in the core of Premia: several setters were broken.

    5. Refactor the credit toolbox to simplify the number of products.

    6. Scripts to generate new model templates have been significantly improved and reimplemented in Python.

    7. Improve the generic functions Get , FGet , Show , PrintVar and FScanVar to enable all the models to use them. This led us to remove a lot of code.

Algorithms implemented in Premia in 2013

Premia 15 was delivered to the consortium members in March 2013. It contains the following new algorithms:

  • Interest Rate, Inflation, FX

    • Inflation products with stochastic volatility and stochastic interest rates. S. Singor, L. Grzelak C.W.Oosterlee D.D.B. van Bragt.

    • On cross-currency models with stochastic volatility and correlated interest rates. L. Grzelak C.W.Oosterlee. Applied Math. Finance, to appear.

    • Repricing the Cross Smile: An Analytic Joint Density. P.Austing. preprint 2011

  • Energy and Commodities

    • Efficient Pricing of Commodity Options with Early-Exercise under the Ornstein–Uhlenbeck process. C.W.Oosterlee. B.Zhang. preprint 2011

    • A finite dimensional approximation for pricing moving average options. M. Bernhart P.Tankov X. Warin, to appear in SIAM Journal on Financial Mathematics.

    • Pricing and hedging spread options. R. Carmona V.Durrleman. SIAM Rev. 45 (2003), no. 4, 627–-685.

    • Closed form spread option valuation. P.Bjerksund G. Stensland Quantitative Finance, 2011.

    • A Fourier transform method for spread option pricing. T. R. Hurd and Z. Zhou. SIAM Journal on Financial Mathematics. 1, 142-–157, 2010.

    • Multi-asset spread option pricing and hedging Quantitative Finance, Vol.10, No3, 305-324, 2010.

    • Unspanned Stochastic Volatility and the Pricing of Commodity Derivatives. A.B.Trolle E.Schwartz. Rev. Financ. Stud. (2009) 22(11): 4423-4461

    • Pricing Commodity Swaptions in Multifactor Models. K.Larsson. The Journal of Derivatives Winter 2011, Vol. 19, No. 2,32-44.

  • Equity Derivatives

    • Importance sampling and Statistical Romberg Method. M.B. Alaya A.Kebaier K.Hajji

    • New approximations in local volatility models. E. Gobet, A.Suleiman

    • Componentwise splitting methods for pricing American options under stochastic volatility. Ikonen, S.; Toivanen,J. Int. J. Theor. Appl. Finance 10 (2007), no. 2, 331–361.

    • ADI finite difference schemes for option pricing in the Heston model with correlation. K.J. in 't Hout and S. Foulon. Int. J. Numer. Anal. Mod. 7, 303–320 (2010).

    • ADI schemes with Ikonen-Toivanen splitting for pricing American put options in the Heston model. T. Haentjens, K. in 't Hout and K. Volders. In: Numerical Analysis and Applied Mathematics, eds. T. E. Simos et. al., AIP Conf. Proc. 1281, 231-234 (2010).

    • Pricing of Timer Options. C. Bernard Z. Cui. Journal of Computational Finance, to appear

    • Efficient Simulation of the Double Heston Model. P.Gauthier D.Possamai.

    • Greedy methods method for basket options. T.Lelievre J.I.Acevedo

    • Pricing higher-dimensional American options using the stochastic grid method. C.W.Oosterlee S. Jain

    • Calibration in the Heston model. L. Abbas Turki

The software Premia 15 has been registered at the APP (Agence pour la Protection des Programmes) with the reference IDDN.FR.001.190010.012.S.C.2001.000.31000.