Using a Domain-Specific Language for Financial Engineering
by Arie van Deursen
In order to reduce the lead time to market for new types of financial products, it is crucial that a banks financial and management information systems can be quickly adapted. The use of domain-specific languages has proved a valuable tool to achieve this required flexibility.
Financial engineering deals, amongst others, with interest rate products. These products are typically used for inter-bank trade, or to finance company take-overs involving triple comma figures in multiple currencies. Crucial for such transactions are the protection against and the well-timed exploitation of risks coming with interest rate or currency exchange rate fluctuations.
The simplest interest rate product is the loan: a fixed amount in a certain currency is borrowed for a fixed period at a given interest rate. More complicated products, such as the financial future, the forward rate agreement, or the capped floater, all aim at risk reallocation. Banks frequently invent new ways to achieve this, giving rise to more and more interest rate products. This, however, affects the banks automated systems, which perform contract administration and provide management information concerning the banks on- and off-balance position, interest and exchange rate risks, etc.
To make the required modifications to these systems, bank MeesPierson and software house CAP Gemini decided to describe the essence of their interest rate products in a high-level language, and to generate the software automatically from these product descriptions. To that end, a small domain-specific language was designed, especially suited to describe so-called cash-flows following from products.
The use of this language is illustrated in the Figure. At the heart of the system is a compiler for the domain-specific language. Given a high-level product description, it is able to generate automatically data structures in VSAM format, data entry screens in CICS format, and COBOL routines for registering modifications in the product or for yielding management information.
The key enabler to the compiler is a COBOL library formalizing domain concepts such as cash flows, intervals, interest payment schemes, date manipulations, etc. The domain-specific language provides ways to combine these concepts into products, using a notation that is familiar to financial engineers. The language has been developed in collaboration with CWI, using the ASF+SDF Meta-Environment to construct a prototype tool suite.
The language has been included in Cap Geminis Financial Product System FPS, which is in use at several Dutch financial institutions. Time to market has gone down from months to days, and IT cost reductions of up to 50% have been reported.
At the time of writing, CWI is involved in a major research project addressing the tooling, application, and methodology of domain-specific languages in general a project that is carried out as part of the Dutch Telematics Institute, in collaboration with several Dutch businesses.
Arie van Deursen - CWI
Tel: +31 20 592 4075