Newsletter ~ Spring 2007
Table of Contents
New Products, Versions
Events
ICBI Global Derivatives 2007 - Paris
Publications and Website
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
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.
