README for MTM version 0.1.0
============================

  MTM is an experimental program for tutorials in financial modelling. 
  It allows Libor Market Model calibration experiments using real market
  data and pricing of financial instruments in a Monte Carlo framework.
  The program is intended as a play ground for quantitative analysts and 
  currently does not claim to be well-written. 

  MTM is built upon the Martingale project (see CREDITS) that includes
  a C++ library for Monte Carlo simulation of stochastic processes with
  a focus on financial modelling. MTM adds a financial instrument and 
  market data object layer to it which is serialized using SXP, a C++ 
  library for object serialization in XML, which in turn depends on the 
  Expat xml parser. SXP has been enhanced with a code generator that 
  generates required io and tag name code from the class declarations.
  
  MTM builds yield curves and prices simple instruments like Caps, Floors, 
  Swaps and European Swaptions using QuantLib and Boost C++ libraries 
  (see DEPENDENCIES). MTM adds a Caplet volatility bootstrap, creates 
  and prices calibration instruments, invokes the model calibration and 
  uses the Monte Carlo paths generated by the Martingale library to price 
  simple instruments.

  The SXP and expecially Martinagle code had to be modified slightly in 
  order to compile on the platforms mentioned below. SXP and Martingale 
  are distributed with this package.

  Expat, Boost and QuantLib need to be obtained and installed separately.
  
  For license and copying information, see the file COPYING.

               +------MTM-------+-- QuantLib -- Boost
               |      SXP       +-- Expat
               |   Martingale   |
               |    Mathexpr    |
               +----------------+

CREDITS
=======
 
  Thanks to ...
 
  Michael J. Meyer for his Martingale project and making the C++ code available
  http://martingale.berlios.de

  Ivan-Assen Ivanov for his C++ library SXP for object serialization in XML
  http://sxp.sourceforge.net

  Yann Ollivier for his Mathematical expression parser in C++ that is used
  in files formula.h and formula.cpp
  http://www.eleves.ens.fr/home/ollivier/mathlib/mathexpr.html

  James Clark for his xml parser toolkit Expat
  http://expat.sourceforge.net
  http://www.jclark.com/xml/expat.html

  the QuantLib group for their project providing a free/open-source library 
  for quantitative finance 
  http://quantlib.org


DEPENDENCIES
============

  It is required to install the following packages first:

  - Expat                Available as binary package in Linux distributions, 
                         as Fink package for Mac OS X, or Cygwin package in 
                         section "Devel". 
                         Home page:       expat.sourceforge.net
                         Download source: sourceforge.net/projects/expat
                       
  - Boost 1.31 or higher QuantLib depends on the Boost C++ libraries.
                         Available as binary package in Linux distributions,
                         and as Fink package for Mac OS X.
                         Homepage:        www.boost.org
                         Download source: sourceforge.net/projects/boost 

  - QuantLib 0.3.10      Debian and Fink packages are generally avialable, 
                         but may be out of date.
                         Home page:       quantlib.org
                         Download source: sourceforge.net/projects/quantlib  


INSTALL
=======

  Unpack the archive and change to the mtm directory.

  Installation is then done in three GNU steps:

  1) ./configure 
     
     If this fails, you may have to specify paths to Expat, Boost 
     and QuantLib include and library directories, see below *). 

  2) make

  3) (sudo) make install

  Installation has been tested so far on 
  - Mac OS X 10.3
  - Mac OS X 10.4
  - Cygwin.


  *) ./configure --help shows configuration options.

     Example:

     ./configure --with-boost-include=/usr/local/include/boost-1_33 \
                 --with-expat-include=/usr/X11R6/include \
                 --with-expat-lib=/usr/X11R6/lib


USAGE
=====

  Change to sub-directory data.

  Set environment variables as shown in file "env" or execute command 

        ". env" or "source env" (depending on your shell) 

  To see options and typical usage, run the command

        mtm -h

  To generate a sample instrument xml file, run the command

        mtm -e -o sample.xml
  
  To run a LMM calibration based on the first instrument in sample.xml, run

        mtm -i sample.xml -m mkt.xml -lmm

  To price the instrument(s) in sample.xml, run

        mtm -i sample.xml -m mkt.xml -o out.xml

  XEmacs users may also copy the mtm.el file to their .xemacs directory and 
  include it in init.el. This offers some editing support such as creation 
  of license headers for new source code files.

DOCUMENTATION
=============

  Refer to the QuantLib and Martingale project documentation, in particular
  Michael J. Meyer's Monte Carlo Book, available on his web site.

  Moreover, refer to this project's source code documentation.
  Todo: Derive doxygen documents.


FEEDBACK
========

  Please send any feedback to mtm@lichters.net
