This page contains a Flash digital edition of a book.
applications T


echniques once primarily used for science and engineering are now essential to financial institutions, where a small competitive edge can


mean huge profits. Conversely, having the most up-to-date and comprehensive information may be useful in identifying extreme events such as those that led to the banking collapse of 2008. For simple analysis, and basic mathematical


functionality, tools such as Excel are perfectly suited to the job of analysing financial data sets. However, as the data set becomes larger and the analysis more complex, not only is more processing power required but algorithms, low latency programming, HPC, and even techniques such as machine learning are all


being employed by the finance industry to make sense of the huge amounts of data. ‘It’s easy to optimise a trivial three or four asset


portfolio in something like Excel or VBA (Visual Basic for Applications), but anything beyond that and you need far more processing power; you need better optimisers; and you need multicore or parallel computing as well,’ said Samir Khan, senior application engineer at Maplesoſt. Computational tools, such as Maple or


Matlab, are oſten used for ‘agile and rapid development of quantitative algorithms,’ said Steve Wilcockson, industry manager for financial services at Mathworks. ‘Where industry-type black box solutions fall over, in terms of customisation, or you have lower level programming languages which can take too long to build algorithms, Matlab tends to sit somewhere in the middle of that spectrum. It is used across the financial services industry, anywhere really where you could find Excel, Python or C++.’ ‘Maple is essentially a high-level programming


language with advanced mathematical libraries and visualisation tools. Tere is functionality in Maple for pricing options, stochastic modelling, and developing your own applications and packages,’ said Khan.


THE ROOTS OF


TODAY’S COMPUTATIONAL FINANCE SOFTWARE LIE IN THE 1950S AND 1960S


Soſtware such as Maple and Matlab is used for


a range of finance operations by banks, insurers, and asset managers in applications ranging from financial modelling to long term forecasting and predicting risk scenarios for pensions. On the buy-side of finance, there are applications such as asset allocation, asset management, and also, in the smaller hedge funds, systematic trading, explained Wilcockson. Matlab is ‘used across all these applications in relatively equal measure.’


Early developments ‘Te roots of today’s computational finance soſtware lie in the 1950s and 60s when computers were used in portfolio optimisation,’ explains Khan. Te early 70s saw the development of modern option pricing; these models grew in sophistication; with that came advanced solution methods, and the associated demand for increasingly sophisticated soſtware.’ According to Wilcockson: ‘Matlab has been


used alongside computational finance methods for a long time, typically things with a heavy statistical and/or optimisation component: In the trading world, optimising particular parameters


www.scientific-computing.com l @scwmagazine


that might form the input to a trading model, for example, or perhaps optimising a cash flow for an insurance organisation, so that it can monitor its long term assets and liabilities.’ ‘Both of these tools have a numeric


engine and a symbolic math engine and that combination is unique,’ said Khan. He continued: ‘It allows you to develop and validate, say, algorithms for new option pricing models. Tese models can then be converted into language descriptions like C. At the very high level, you also have soſtware engineers working for investment banks in the city of London, for example writing C#, java and C++, so C and Java is generally used for front-end and desktop applications – big enterprise systems and backend trading platforms.’ ‘C# and Java have a number of high-level


libraries which make it easy to build enterprise applications that, for example, connect to databases and trading platforms,’ explained Khan. However these generally have a high latency for what would be considered real-time analysis or real-time pricing. ‘It [Maple] is generally not used for real-time


pricing, because it has latency issues, as do tools like Mathematica. Tey are generally not used in real-time applications. A tool like Maple is generally used for building new pricing models, optimising that mathematical description, and then converting them to a different form like C or C#. Ten you can take that code and use it in your real-time pricing platform,’ said Khan He continued: ‘Tis allows you to get very


close to the metal on the computer: you can program right down to the registers on your memory, and that results in very fast, very efficient code with low latency.’ Low latency is important in applications such


as algorithmic trading, whereby a computer enters trading orders according to an algorithm which executes pre-programmed trading instructions. ‘Algorithmic trading works on a timescale of microseconds, or even nanoseconds. Financial houses are vying for office spaces that are closer to the actual trading location, because of the amount of time it takes for the signals to travel down a fibre-optic line. Once you get down to that level, you generally cannot rely on high-level programming languages,’ said Khan. Wilcockson agrees in part, but notes


MathWorks strategy is to get closer to production including trading environments. ‘In 2013 we released the Matlab Production Server, a tool that runs Matlab instances directly in production systems, including C# and Java- oriented trading and risk management systems, at millisecond latencies. It’s also a very nice means to port analytics directly into “big data” environments. If you want faster microsecond response times, automatic code generation is


APRIL/MAY 2014 25


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40