pricing derivatives

Newsletter ~ Spring 2007

Table of Contents

New Products, Versions

SciComp Yield Curve Builder

Events

ICBI Global Derivatives 2007 - Paris

Publications and Website

New SciFinance overview movie

Expanded SciFinance Examples Catalogs

SciFinance Editor Getting Started Guide

Get a password to the SciComp Resource Center

New ASPEN Language / Numerical Method Features

New C++ cppStyle3 uses C++ library routines

New ExternalClass specification statement

Statements for date arrays

SciPDE specific:

New Rannacher specification statement

Enhanced PersistentGrid specification statement

SciMC specific:

New SoftFloor specification statement

New Products, Versions

New SciComp Yield Curve Builder

The new SciComp Yield Curve Builder is an Excel add-in and spreadsheet that builds yield curves based on the given financial data (BBA LIBOR rates and swap rates). The market standard bootstrapping method is used which is based on the exponential interpolation and linear forward rate approximation. Email SciComp sales for more information on the Yield Curve Builder. Click to email SciComp sales.

News and Events

SciComp to Exhibit at ICBI Global Derivatives 2007 - Paris

SciComp will demonstrate its products at the ICBI Global Derivatives
2007 meeting in Paris on May 22nd and 23rd. Attended by leading
industry players, Global Derivatives 2007 is Europe's largest,
longest running, and most internationally recognized derivatives and
risk management event.

Visit us at our booth, we would like to discuss with you how we can
help to take your derivatives pricing to the next level.

Click here for more information on Global Derivatives 2007

If you are interested in attending the show, let us know. SciComp
contacts receive a nice discount. Click to email SciComp sales.

Publications and Website

New SciFinance overview movie

Visit the SciComp website and see the new 4-minute SciFinance movie.
This quick overview is a great way to find out in a flash just what
SciFinance is and who can benefit from its use. Have a colleague that
would be interested in automated coding for derivatives? Send them
this link, it's a quick and entertaining way to get a complete
picture of SciFinance. Click to view movie

Expanded SciFinance Examples catalogs

The SciFinance Examples Catalogs provide hundreds of pricing and risk
model templates for all asset classes. The latest release includes
many new model templates as well as an update of existing templates.

Highlights include PDE examples of models using the new PersistentGrid
code style, examples using the new cpp3 code style, new credit CSO
examples, examples solving FokkerPlanck equations, convertible bonds
including PERCs, fixed income examples using Cheyette and Gaussian
models, and new calibration examples including calibration of lognormal
forward LIBOR rate models

New SciFinance Editor Getting Started Guide

A new Getting Started Guide is available for the SciFinance Editor.
The SciFinance Editor is an interface from which you can perform all
SciFinance-related tasks including creating and editing specification
files and macros, synthesizing and generating code, and working with
output for SciPDE, SciMC, SciCredit, SciXL and SciCalibrator problems.

The Editor includes built-in syntax checking to ensure that
specifications conform to the requirements of ASPEN; a search
capability within and between files; display of comments regarding the
status of running specifications;a comprehensive Help system for
SciFinance keywords and concepts; and the ability to create SciFinance
project-level (.sfp) files for organizingmain specifications and all
related files (macros, equation generators, C code, data files, etc.)
For more information on the SciFinance editor Click to email SciComp sales.

Get a password to the SciComp Resource Center

Data sheets, articles, examples and publications can be found in the SciComp Resource Center.
If you don't already have a password for the Resource Center, request one using the link below.

Click here to request a password.

New ASPEN Language/ Numerical Method Features

ASPEN (Algorithm SPEcification Notation) is a concise, flexible, and
extensible language for specifying the derivatives structures you want
to model with SciFinance. Below are some of ASPEN's newest features.
Features that apply to both SciPDE and SciMC are listed first, and
then SciMC and SciPDE specific enhancements are detailed.

New C++ cppStyle3 uses C++ libraries for interpolations, gridding

The new cppStyle3 specification uses C++ library routines to speed
code synthesis and reduce synthesized code volume. There is also
modest execution speed improvement for some functions. Any of the
existing interpolations may be specified, while a variety of new
interpolations have been added. Simply specifying cppStyle3 will
use the same SciArray representations as cppStyle2, and will
additionally call interpolation and gridding functions from the
C++ interpolation and grid libraries rather than synthesize them. 

For MonteCarlo codes, and for PDE codes that are specified with
BuildDiscreteEventsTable[True];, a library routine BuildTimeGrid
is also used.

The C++ libraries that implement these interpolations are
SciInterpLib.h and SciGridLib.h (in Examples/SciShared).

The new interpolations, available only in cppStyle3 are:

  • Quadratic - 1-D quadratic interpolation
    Quadratic[LeftBias] is the default, and uses two left
    neighbors and one right
    Quadratic[RightBias] uses two right neighbors and one left
  • Cubic - 1-, 2-, or 3-D factor cubic interpolation
    the 1-D version can be used in DiscreteEvents statements
  • ForwardMonotoneConvex - a specialized method for interpolation
    of yield (zero) curves; 1-D only
  • StairStep is available in 2-D and 3-D versions in cppStyle3

An example of using cppStyle3 can be seen in the generated code for
the revised example pdeDividends1.cpp and can be found in
SciPDE Examples Catalog Volume 1.

New ExternalClass specification statement

The ExternalClass specification statement makes it easy to work
with user-defined external class member functions. For example:

      ExternalClass[myYieldCurve,
{"myClassLib.h", "myClassLib.cpp"},
StubFunction[getForwardRate,tm,tp],
StubRoutine[getSize,nZero],
Initializes[getSize, {nZero}]];
Type[{YC1,YC2}, myYieldCurve];
...
r == YC1->getForwardRate[t1,t2];
YC2->getCurve[ZeroDates, ZeroRates];
...

The ExternalClass statement first names the class and lists the
files defining the classes. Next, any member functions to be
used in the specification are declared, either as StubFunctions
that return a value or as StubRoutines that modify one or more
arguments without returning a value. Initializes statements
specify which arguments of Stubroutines are modified by the
call. The Type statement gives class instances, which appear
as arguments to the synthesized pricing functions.

The example pdeExtClasses1 has been revised to use the new
ExternalClass specification statement, and can be found in
SciPDE Examples Catalog Volume 1.

Statements for date arrays

The SciDateBuildSchedule specification statement has been
modified to build the array with the SciDateLib library routine
BuildSchedule. For example,

   SciDateBuildSchedule[Inception, Period, CouponInterval,
       allDates, lb, ncoup];

builds a date array allDates (indexed from lb to ncoup), which can used
by SciDateInterval and SciDateYearFrac statements. 

The new SciDateBuildIMMSchedule builds schedules of so-called
" IMM dates." If MonthInterval is a positive integer, the
initial date is the third Wednesday of the month that follows
Inception by MonthInterval months. For example if Inception
is March 18 and MonthInterval=3, then the first date in the
schedule will be the third Wednesday of June. If MonthInterval=0, then
the function builds an array of CDS dates, defined as one of the 20th
of March, June, September, or December. 

The specification statement is similar to SciDateBuildSchedule and
builds the array using the SciDateLib library routine BuildIMMSchedule.
For example,

   SciDateBuildIMMSchedule[Inception,MonthInterval,allDates,
        0,ncoup,RollConvention];

The example pdeSciDates1 illustrates these statements and can be found
in SciPDE Examples Catalog Volume 2.

New Rannacher specification statement (SciPDE)

The Rannacher discretization method uses the standard CrankNicholson
time stepping preceded by a few fully implicit steps. The strong
numerical diffusion associated with implicit differencing can greatly
reduce the amplitude of high-frequency components created by
discontinuous initial data and discrete events. For example,

   Rannacher[dtRann];

specifies that implicit time stepping will apply for a time
interval of dtRann initially and after each interruption for
a discrete event. The new example pdeDigital3 illustrates
the use of Rannacher discretization and can be found in
SciPDE Examples Catalog Volume 2.

Enchanced PersistentGrid specification statement (SciPDE)

A second, more flexible, form of PersistentGrid can build a layered
structure 'data' with any number of parameter arrays and
an access function that interpolates in these arrays using
specified interpolation methods and point in the parameter arrays.
For example, this specification creates two functions:

	PersistentGrid[
         ForVars[{VSpot,DSpot,VegSpot}],
   	  Over[{sigma==VolTable, r==rTable}],
          thisValue==Cubic[VSpot, SpotTable, VolTable, rTable,
   			thisS, thisVol, thisr],
   	  thisDelta==InterpolateLinear[DSpot, SpotTable, VolTable, rTable,
   			thisS, thisVol, thisr],
   	  thisVega ==InterpolateLinear[VegSpot, SpotTable, VolTable, rTable,
   			thisS, thisVol, thisr]];
         Output[{thisValue,thisDelta,thisVega}];

The first synthesized function, ComputeDataGrid1, creates a data
layers for each of the variables specified by the ForVars part on
the PersistentGrid statement. In this example, VSpot, DSpot, and
VegSpot have been obtained by interpolating in the finite grid S
for each value of spot price in the input array SpotTable. We
specify that one data layer is stored for each value of the PDE
parameters sigma and r by listing the parameters in the Over[..]
statement. The data structure will consist of (nV+1)*(nr+1) data
layers, each of which comprises three one-dimensional arrays of
size (nS+1) value for VSpot, DSpot, and VegSpot, a total of three
three-dimensional arrays.

The second synthesized access function, InterpolateFromGrid1,
takes as input the structure 'data' and a parameter point to
interpolate over - in this example (thisS, thisVol, thisr) - and
returns the result (thisValue, thisDelta, and thisVega) of
interpolating in the specified arrays at the parameter point,
using the specified methods.

See the SciPDE Examples Catalog Volume 2 for example specifications
that demonstrate the new PersistentGrid statement.

New SoftFloor specification statement (SciMC)

The new SoftFloor specification statement applies a lower bound
to a stochastic variable but only when it appears on the right
hand side of an SDE. The stochastic variable itself may
actually take lower values. For example,

   SDE[ delta[v] == kappa(theta-v) delta[t] + sigma Sqrt[v] dW];   
   SoftFloor[v,0];

In this case v itself is allowed to become negative while
only its positive part appears in the expressions (theta-v)
and Sqrt[v]. This mechanism can be shown to lead to large
reductions of discretization bias, particularly for CIR models,
including Heston style stochastic volatility models.

Home

SciFinance automates pricing and risk model development

Parallel Computing achieves blazing fast performance with CUDA and OpenMP

SciCalibrator provides pricing model calibration

SciCMD delivers off-the-shelf" and custom pricing models

SciSTCDO is a single-tranche pricing and risk engine

Yield curve builder

A resource site with examples, documentation and more...

Communicate

IN THE NEWS

Monte Carlo Greeks in Practice

"...The advantage of such estimation lies in its independence of the underlying model and payoff structure, enabling a generic implementation with little additional programming"

Wilmott Magazine

Software That Writes Itself

"...SciFinance takes complex mathematical models and translates them into something a computer can solve, allowing banks to flexibly change pricing models as they introduce new products."

Newsweek International