A Division of Andrew Kalotay Associates, Inc.
|BondOAS™ Library Overview|
BondOAS™ is a rigorously developed, continuously enhanced, thoroughly tested valuation engine for the universe of fixed coupon bonds. These can be step coupon, callable, putable, amortizing, and pre-refunded securities as well as simple mortgages. Option types covered include American, Bermudan, European, and Canary (like Bermudan but can stop being callable before maturity). The structures can be sinking fund bonds with acceleration options (double-up, etc.) and delivery options (the ability of the issuer to buy below par and deliver in lieu of sinking at par).
The library contains a suite of internally consistent analytical routines, the primary ones being arbitrage-free valuation, conventional price/yield calculations, and scenario analysis. Its speed and accuracy makes it ideal for interactive applications or high volume processing.
BondOAS™ is widely used in trading, risk management, and pricing systems (including intra-day pricing of bond ETFs). Clients include major investment banks, exchanges, pricing services, risk management vendors, global financial information services, traders and portfolio managers, back office process vendors, and rating agencies.
BondOAS™ is released as both static and dynamic libraries for multiple architectures. In addition, Java and C# wrappers are available for each of these platforms.
BondOAS™ uses a proprietary tetranomial lattice model employing the Black-Karasinski interest rate process. The user can specify either a) the volatility of the short-term rate and a mean reversion factor (which together determine the long-rate volatility) or b) the volatilities of the short and long rates (which together determine the mean reversion factor).
Bonds and embedded options are valued recursively on the calibrated interest rate lattice. Given an option-adjusted spread (OAS), BondOAS™ will shift the discount rate at each node on the lattice accordingly, apply it to the cash flow, check for option exercise if relevant, and report a price. Option values are extracted by taking the difference between the value of the underlying bullet bond and the value of the bond with embedded option(s).
Given a price, BondOAS™ uses an iterative process to calculate the OAS. A trial OAS is added to the discount rate at every node on the lattice. If the resulting price using recursive valuation on the lattice is too low, the next try is a lower OAS; if the resulting price is too high, a higher OAS is attempted. The process is highly optimized for rapid convergence.
All fixed rate bonds (single coupon and step-coupon bonds), including:
The following tables describe the performance of the principal BondOAS™ Library operations. The timings were conducted on our baseline machine which has a 2.6gHz CPU and is running Linux.
The benchmark program, distributed in the lib sub-directory of the release, reports the benchmark of the machine it runs on relative to our baseline machine. The performance on any machine will be the value reported below multiplied by the average of the values reported by the benchmark program.
Lattice calibrations per second from real world curves by source:
ust 2005-2011 208 swaps 2005-2011 208
Lattice calibrations per second by curve type and volatilty:
0% 10% 30% flat 300 222 207 gentle rise 286 222 207 sharp rise 286 222 207 negative/low 286 231 222
Price computations per second by bond type and years to maturity:
1yr 2yr 5yr 10yr bullet 107143 90909 71429 56604 callable 45455 34884 25000 17045 call and sink 25862 18750 9259 4225
OAS computations per second by bond type and years to maturity:
1yr 2yr 5yr 10yr bullet 38462 29412 17857 12821 callable 6098 4464 3125 2793 call and sink 3205 2242 1634 801
BondOAS™ is a thread-safe library written in C/C++. We provide both a C and C++ API. The API is documented in BondOAS API. The library is released as both static and dynamic libraries for multiple architectures including 32 and 64 bit Linux, Windows, and SunOS Solaris for x86 as well as Solaris for Sparc.
In addition to the libraries the release includes Java and C# APIs and wrapper libraries. The release also includes example code as well as compilation instructions for each architecture.