DerivaQuant
(GPL licence, Copyright
Tuan
Nguyen, Arbitragis)
A Free,
Robust and Fast Derivatives Pricing Software
June 16, 2005
DESCRIPTION :
DerivaQuant http://sourceforge.net/projects/derivaquant/ (first release date : end of June, 2005) aims at creating a free robust front-office GPL software for hedge funds, proprietary trading firms and derivatives traders. For academics, it will also be a platform to test new models against regular models. It offers multiple option pricing models, links with databases, and the risk analysis of a derivatives position. Ultimately, it will be the basis for a fully automated trading system trading the market in real-time.
As opposed to commercial softwares, DerivaQuant pricing models will be subject to practitioners / academics peer-review and auditing in order to attain an industrial-grade level good enough for trading derivatives professionaly. Both the interface and the pricing models are published under the GPL licence, i.e. DerivaQuant is free.
Comparisons betwee the different algorithms will be discussed in order to check their reliability under different conditions.
OBJECTIVES
:
This software is different from apparently similar projects :
Pricing routines are less exhaustive than QuantLib for instance, but more readable and focused towards simplicity, speed, and ideally, 100% reliability. They are initially based on the very good library written by Bernt Arne Ødegaard ( Financial Recipes, GPL project on http://finance.bi.no/~bernt/gcc_prog/) and will be extended soon. These routines are being extended to include stochastic volatility, price volatility swaps and other esoteric pricing models. They will be wrapped in order to answer practitioner's needs (inclusion of calendars, corrected time decays, parallelization of Monte Carlo calculations, inclusion of relevant volatility smiles),
The GUI interface will be aimed at being an easy-to-use trading platform,
There are different parts in this project :
The derivatives pricing models : the code will be kept as readable as possible, to make peer review as easy as possible, à la Numerical Recipes.
The database project : stock prices, option prices, interest rates, implied volatilities, will be stored in a database that will be linked to the pricing models. Feeds with different data vendors will be hopefully done.
Risk analysis : a portfolio of trading positions can be entered and tested against adverse scenarii. We have struck a partnership with Opalit (http://www.opalit.com), which is a back-office / middle-office software that stores deals (and does much more), so that DerivaQuant can read deals coming from Opalit.
A trading interface : once it is connected to real-time data vendor (Interactive Brokers), this software will allow traders to trade directly on the market.
Automated trading : eventually, this will be the basis for a fully computerized real-time trading system. Some preliminary studies are done on ways to integrate a rule engine in the pricer.
WHO
MIGHT BE INTERESTED :
finance practitioners such as derivatives traders, hedge fund managers, who want to have an understanding on pricing models they use, and who want to have a user-friendly interface to trade,
academics who want to publish pricing models that can be immediately tested against current models and real-life parameters used by DerivaQuant. Compiling a new model and using it within the interface, and using the same set of parameters allows a quicker validation of the model,
programmers who want to understand the design of a software used by hedge funds and investment banks and the implementation of a systematic analytical tool of derivatives markets. Participating in this project would be a very good way of preparing a shift of career towards the financial industry,
software firms or market-data providers who would use DerivaQuant as the “missing link” to bring synergies to their services, and who might leverage on DerivaQuant in order to indirectly attract clients to their services.
WHY WAS THIS SOFTWARE WRITTEN ?
Arbitragis, the sponsor of this project, is a proprietary trading firm focused on equity derivatives trading. We found different issues with current commercial softwares :
they are extremely expensive (tens or hundreds of thousands of USD / year),
the lack of transparency on pricing models and algorithms makes it difficult for professional traders to really get a feel for the model they are using,
there is a lag in time between their models and the latest developments in derivatives pricing models,
proprietary softwares are not scalable and sometimes rely on proprietary outdated technology : we want for instance to implement parallel computing from the ground up for Monte Carlo pricings or for non-recombining binomial trees. Using the open-source MPI library would be extremely efficient and reliable, rather than relying on proprietary parallelization proposed by software vendors,
while Open Science is starting to gain momentum, we believe that Open Source and Open Science are a perfect match, and that the conjunction of the two movements can produce financial softwares of superior quality. We believe that exchanging ideas on financial theory, or distributing a derivatives pricing software for free does not prevent people from making money : smart implementation of a strategy is the key, not software,
current Open Source derivatives pricing libraries have no links to databases nor GUI interfaces, and it makes it difficult for an end-user to use them to trade. We found QuantLib to be too complex and difficult to debug when a quick and reliable pricing solution is required,
Eventually, peer-review of option pricing models is going to benefit the whole community.
PLATFORMS
/ REQUIREMENTS :
Tools : Gcc for pricing algorithms and Qt for the interface, Financial Recipes in C++,
Platforms : Suse Linux 9.3 and FreeBSD mainly. Support for Windows might be added later on, but should be very easy to do as Qt is a cross platform development tool.
Database : Postgresql 8.0 (http://www.postgresql.org)
Interface : Qt (http://www.trolltech.com)
Charting tool : gnuplot 4.0 (http://www.gnuplot.org)
Historical data : Bloomberg, Yahoo Finance, Exchanges around the world,
Real-time data : Interactive Brokers.
SCREENSHOTS
:
Pricing
screen :
Rates Screen :
Dividends
screen :
Settings Screen :
FUTURE
OBJECTIVES : WHERE HELP IS NEEDED....
Each
project is rated by a perceived level of difficulty : 1 = Easy, 5 =
very difficult.
On
the quant side :
Contributors wanting to create derivatives pricing algorithms not yet in Financial Recipes are welcomed. Here is a non-exhaustive list :
-parallelization of Monte Carlo pricing and of non-recombining binomial trees via MPI (level : 3),
-fine-tuning of pricing parameters taking into account : rates conventions in ZC discounting, correction of time decay due to week ends etc... (level : 2).
-integration of discrete dividends for finite-differences american option pricing models (level : 3),
-time varying volatility on a binomial tree (level : 2),
-stochastic volatility (level : 4),
-Avellaneda model (level : 4),
-Dupire model (level : 5),
On the trading side :
-help is needed on the development of an interface between the Java API of Interactive Brokers and DerivaQuant in order to get real-time options data and calculate real-time smile surfaces (level : 4),
-pricing greeks on a whole portfolio (level : 2),
-real-time VAR (level : 3),
-visual representation of greeks (level : 3),
On the interface side :
-we would like to implement XML importing capability in order to import derivatives portfolios, dividends, index components etc....Work is neededon the definition of the XML protocol and its implementation via SAX (level : 3),
-the current charting tool is gnuplot, which is very handy, but is unfortunately not interactive : once a graph is calculated, in order to generate another view, all data need to be recalculated. One solution would be to integrate the 3D Qt plotting library “qwtplot3d” : http://qwtplot3d.sourceforge.net/ (level : 4),
On the programming side :
-the object structure on different derivatives might need some work in order to have a global generic API which would price an object modelled as a structure, with relevant parameters (level : 3),
-a Windows branch should be established, which should be easy as Qt is portable, with only one source code for Linux and Windows (level : 1),
On the partners' side :
-we
are working on a way to link retrieve data seamlessly from the
closed-source
Opalit software (http://www.opalit.com) to
DerivaQuant in order to run risk analyses (level : 3),
-we are looking for other partnership, especially with a data provider,
On the artist's side :
RELEVANT
LINKS AND RESOURCES :
Forums
on Quantitative Finance :
Wilmott : http://www.wilmott.com/
Theoretical Papers on Derivatives Pricing / Quantitative Finance :
Science et Finance : http://www.cfm.fr/us/publications.php
Peter Carr's papers : http://www.math.nyu.edu/research/carrp/research.html
Derivatives Pricing Libraries :
Numerical Recipes (the one we are going to rely on) : http://finance.bi.no/~bernt/gcc_prog/
QuantLib : http://www.quantlib.org
Parallel computing and grid computing :
http://www.netlib.org/utk/papers/mpi-book/mpi-book.html
Trading interface:
Interactive Brokers (free if you open an account) : http://www.interactivebrokers.com/en/software/highlights/twsHighlights.php?ib_entity=uk
Trade$tation (commercial software) : http://www.tradestation.com
Open source softwares :
Qtstalker : http://qtstalker.sourceforge.net/
Eclipse Trader : http://eclipsetrader.sourceforge.net/
Open Source Development Tools :
Qt Designer (IDE): http://www.trolltech.com
QwtPlot3D (plotting software for Qt) : http://qwtplot3d.sourceforge.net/
Postgresql : http://www.postgresql.org
Operating Systems :
FreeBSD : http://www.freebsd.org
FreeBSD forums : http://www.bsdforums.org
Suse Linux : http://www.novell.com/linux/suse
LinuxQuestions : http://www.linuxquestions.org
Commercial Softwares :
Sungard : http://www.sungard.com/
Ito 33 : http://www.ito33.com/html/ito33.htm
Bibliography :
Options, futures and other derivatives, John C. Hull, Prentice Hall.
Building Financial Derivatives Applications with C++. Brooks.
Numerical methods in finance. Brandimarte, Wiley Inter Science.
Monte Carlo methods in finance, Peter Jäckel, Wiley Finance.
Implementing Derivatives Models, Les Clewlow and Chris Strickland, John Wiley and Sons.
Paul Wilmott on Quantitative Finance, Wiley.
Applied Computational Economics and Finance, Mario Miranda and Paul L. Facklers, The MIT Press.
New Directions in Mathematical Finance, Paul Wilmot, Henrik Rasmussen, Wiley Finance.
Proprietary Trading Firms / Hedge Funds :
http://www.hedgefund.net/index.cfm
http://www.cfm.fr/us/company_profile.php
Miscellaneous sites :
Caltech Laboratory for Experimental Finance : http://www.hss.caltech.edu/~pbs/LabFinance.html