Software Interoperability: Using QuantLib C++ Library in C# and Excel

This technical paper, which was published in Wilmott September magazine, is the second in a series of two on the design of software systems in computational finance. We created multi-language application to value an Equity-linked product. The actual pricing of this product was performed by using QuantLib Monte Carlo framework. We used C++/CLI code as a wrapper class for native QuantLib C++ code. Then, we used C# as a front end to C++/CLI wrapper, after having constructed transaction-related parameters and market data. For flexible input data construction, a specific factory mechanism was implemented by using C# Assembly, Reflection API, and Dynamic data types. Finally, we interfaced C# client code to Excel by using Excel-DNA.

Since the paper discussed how we implemented this application, we feel that being able to compile and run the actual code is necessary in order to understand the complete design. The original Equity-linked note native C++ implementation (including transaction term sheet) can be found in here. The entire source code, along with the complete setup instructions for this application is fully presented in here. All files included in this application, can be downloaded directly from here. Follow the instructions given in ReadMe file or visit the original blog page for accessing the more detailed instructions.