From Flametree Technologies
Revision as of 02:51, 20 February 2017 by Fiasys (talk | contribs) (→‎The default OpenRisk library)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


A fundamental requirement of any fixed income attribution system is the ability to price the securities held within the user's portfolios under a range of different scenarios.


In previous releases, FIA's security pricing routines were embedded within the main application. Changes or additions to the list of available security types required an upgrade and a reinstallation, and could only be carried out by Flametree.

In version 2.0 and later, all pricing functions have been moved to external libraries, called via a simple common API. This OpenPricing API has been designed so that any information accessible to FIA (inlcuding user-defined fields) can be passed to any pricing function.

This carries several advantages:

  • New security types can be defined and provided without an upgrade
  • New pricing functions for new instruments can be written and integrated within days, ensuring analytics support can keep up with new developments in the market.
  • Changes can be made without reference to the vendor – the process is under the client’s control.

Pricing libraries

When FIA runs, it compares the names of the pricing functions supplied in the security master table against the available functions in the pricing libraries. If a function is referenced but not found in the libraries, or if a function has been supplied more than once, FIA flags an error and stops.

Security definitions, and the way that they are priced, are still specified in the security master table. However, security types are no longer set up by referring to a label. Instead, the name and location of a pricing function must be supplied, together with additional information if required. Pricing functions are defined using the ‘C’ language. Pricing functions written in other languages such as C# or Fortran can be integrated into this framework; please contact Flametree Technical Support if you need assistance or examples.

The default OpenPricing library

FIA's default library is designed to meet the requirements of the vast majority of our users. In most cases it will never be necessary to delve into the implementation details of OpenPricing.

Name Description Inputs Usage
FT_CASH Price of cash per $1 face value None FT_CASH
FT_EQUITY Price of equity per $1 face value None FT_EQUITY
FT_BILL Price of bank bill, discount security, zero coupon bond Settlement date, maturity date, yield curve FT_BILL
FT_BOND_ZERO_CURVE Price of coupon-bearing bond, using discount factors from the supplied zero curve Maturity date, coupon, coupon frequency, yield curve FT_BOND_ZERO_CURVE
FT_FRN_ZERO_CURVE Price of floating-rate note, using the supplied index Maturity date, coupon, coupon frequency, index FT_FRN_ZERO_CURVE(LIBOR)
FT_SINKER_ZERO_CURVE Price of amortizing bond Maturity date, coupon, coupon frequency, curve FT_SINKER_ZERO_CURVE
FT_MBS_PSA Price of MBS security, using the PSA prepayment model Maturity date, coupon, coupon frequency, curve, PSA value FT_MBS_PSA

The default OpenRisk library

Name Description Inputs Usage
Interest Return due to interest over current interval Curve Interest(GBP_CURVE[0.0])
Inflation Return due to inflation over current interval Inflation index (CPI or RPI) Inflation(GBP_CPI)
Delta Return from option due to changes in price of underlying asset Delta, price of option, price of underlying Delta(QANTAS_OPTION[DELTA],QANTAS_OPTION[PRICE],QANTAS[PRICE])
Gamma Return from option due to second-order changes in price of underlying asset Gamma, price of option, price of underlying Gamma(QANTAS_OPTION[DELTA],QANTAS_OPTION[PRICE],QANTAS[PRICE])
Theta Return from option due to elapsed time Theta, price of option, price of underlying Theta(QANTAS_OPTION[DELTA],QANTAS_OPTION[PRICE],QANTAS[PRICE])
Vega Return due to changes in volatility of underlying asset Vega, price of option, volatility of underlying Vega(QANTAS_OPTION[VEGA],QANTAS_OPTION[PRICE],QANTAS[VOL])