Financial Informatics is the development and evaluation of applications, tools, processes, and structures which manage financial data or support the investment process.

Software Concepts

This page jist mentions some useful patterns which recur in financial informatics. They are not specific to the field and may well be quite common within other domains as well.

Write Once/Read Many Times - Financial Software is all about the data and it is very easy to sprinkle the data all over the enterprise. For example, how many places might you store CUSIP or Ticker within one organization. Yet, because these identifiers change with some regularity, sprinkling them all around leads to out of date identifiers and complex workflows for handling identifier changes.

Hub and Spoke - Many places within financial informatics would benefit from the application of a hub and spoke pattern. Trade and Master Data processing generally will benefit from a centralized approach because of the need to maintain clean and correct data for the enterprise.

Patterns - Here I don't mean ServiceLocator or the other fancy J2EE patterns, I mean the good old Gang of Four patterns. One can build quite a lot of good software with the Strategy pattern. For example, within valuation software (software that values securities) we would like to externalize the valuation model so that we can easily change the model used to value a specific instrument. This can be easily expressed as the Strategy pattern.

Polymorphism of grouping - Investments are often hierarchically structured, and reporting needs to be done for each level in the hierarchy. The best way to meet this need is to not distinguish between levels in the hierarchy, and to use a composite pattern to aggregate either investments of portfolios into other portfolios in a seamless pattern. I have seen software that has a formal and rigid grouping definiition and it doesn't match how organizations structure their investments.

Time Series/Columnar Data Store - This is a type of database purpose built to store time series of data, quite often time series of financial data. It is called a Columnar Data Store because it stores the data packed tightly into columns rather than in rows as data is stored in a Relational Data Base (RDBMS). It is called a Time Series Database because it uses a query language with the concept of time embedded in it, for example one can easily query a column for daily or monthly data and the database knows which values should be returned for each case. An interesting paper that covers the basics of dealing with market data.

Design of Reference Store - An interesting paper on this topic by Flood talks about a meta-driven data store and a hub and spoke arhitecture for iterfacing to other systems.