Primarily Deriscope provides Excel - but also non-Excel (see below) - access to the vast QuantLib resources for pricing options and other types of financial derivatives.
It has been also extended to access the analytics implemented in a QuantLib extension called ORE, sponsored by Quaternion Risk Management.
QuantLib, according to their official site here, is a free open-source software library for quantitative finance and analytics written in the C++ programming language. In the hands of the right experts - typically quantitative analysts with software engineering skills - it can do the number crunching required by front-end applications that deliver theoretical prices and sensitivities on a number of financial derivative products.
QuantLib's biggest strength is that it is actually used - in some way or another - by a large number of market participants, but that number is not exactly known. Although most large financial institutions tend to rely on their own legacy code, the fact is that the development and maintenance of pricing code is so costly that a sensible alternative for several smaller institutions is to rely - at least partially - on third party libraries. Thus several developers would choose to integrate snippets of QuantLib code within their own, if not outright use the entire QuantLib library.
On the other hand, QuantLib currently lacks a decent Excel interface that would allow a non-programmer to use its vast pricing algorithms directly on the spreadsheet with context-based hints on the available choices and their meanings.
It is Deriscope's mission to fill that gap by ultimately exposing the whole QuantLib library at the spreadsheet level.
On a technical level Deriscope acts as an Excel Calculator for Financial Options - and Derivatives in general - by being loaded as a com Add-In automatically when Excel starts. It is composed by a number of managed and unmanaged dlls that must be saved in a folder of the client pc. This requires a commensurate registry entry, which takes place during installation.
The unmanaged dlls are created from proprietary C++ source code and include the QuantLib library as a statically linked lib. The pricing routines are implemented in the QuantLib library with the sole exception of generally light calculations that are not available in QuantLib and therefore are implemented in the non-QuantLib part of the Deriscope dlls. Run-time information on such exceptional treatment is always provided so that the user knows the origin of the calculation results. The essential task of the non-QuantLib part of the Deriscope dlls is to instantiate a set of financial objects that will both link to QuantLib's own objects and also display themselves in Excel for user interaction.
The managed dlls are created from mostly proprietary C# source code. Their sole purpose is to enable user interaction in Excel primarily through a dedicated task pane located at either the left or the right side of the spreadsheet window. These dlls are compatible with all Excel versions that are equal to or later than Excel 2000.
The bulk of Deriscope's functionality is available off-line. Only real-time data from live feeds providers, such as Yahoo Finance, will obviously not be deliverable if internet connection is absent.
The mentioned non-Excel access is handled by a non-DLL executable program that can be launched as a DOS command with a text stream input and a text stream output. Both streams are XML formatted and may be linked to files or just facilitate data transfer between the executable and some other IT client. Deriscope can map properly formatted XML streams to Excel binary objects and - reversely - map Excel binary objects to XML streams. In order to establich an interface between a company's non-Excel IT system and Deriscope, a specialized code must be writen that implements a similar mapping between the IT system's objects and XML. But, if the company's IT system already has an Excel interface, an easier approach would be to use Excel rather than XML as an intermediary for linking that IT system with Deriscope.
Apart from the XML interface, a JSON interface may be also quite easily implemented.