In a long-running project for a major European bank we have designed and implemented software for front office and risk control in the area of structured equity and foreign-exchange derivatives.
A core area of our work was the efficient calculation of theoretical prices and sensitivities for complex derivatives. Another area was the support for semi-automated trading by providing approximated derivative prices in near-real time.
Implementation languages were C++, Java, and Lisp/Scheme.
While closed-form solutions existed for certain derivatives, in many cases price and sensitivity calculations had to be based on Monte-Carlo simulations.
To reduce the high computational effort required by Monte-Carlo simulations optimizations on the mathematical, algorithmic, and technical level have been introduced, streamlining all aspects of the calculations:
Besides the optimizations indicated above it was nevertheless necessary to parallelize the calculations in a high-performance computing cluster with thousands of parallel threads.
To achieve this we have rewritten and adapted the business logic code. We have also defined and implemented communication protocols and contributed to the task-distribution code.