pricing derivatives

Newsletter ~ Fall 2009

Here is the latest news from SciComp on SciFinance®, the complete solution that automates coding and delivers source code (C/C++) for derivatives pricing and risk models. For more information on SciFinance, contact SciComp sales.

Table of Contents

Upcoming Webinar

Sign-up today for our upcoming webinar with NVIDIA:
Automatic GPU Computing for Derivative Pricing Models
Tuesday, November 17th, 11 am EDT.

New Technical Brief

Download our latest document, featuring in-depth information on GPU-enabling pricing and risk models.

New SciFinance Examples

New SciCommodity Catalog and expanded SciMC Examples Catalog

New SciFinance ASPEN Language/ Numerical Method Features

  • New implementation of jumps (SciMC)
  • New MultiStream feature (SciMC and SciGPU)
  • New AsArray option in Ouput statement (SciFinance)
  • New Monte Carlo discretizations: Milstein74 and ExactOU
  • New SciMC specification construct: BuildCorrelationMatrix
  • ArraySum, ArrayMax, ArrayMin can apply over a subset of indices
  • New TargetFileExtensions specification statement

___________________________________________________________


Upcoming Webinar

Sign up today for the webinar:
Automatic GPU Computing for Derivative Pricing Models
Tuesday, November 10th, 11 am EDT.

In this webinar, co-sponsored with NVIDIA Corporation and Dell, Inc., you will learn about:

  • Automatically generating parallelized (GPU-accelerated) C/C++ source code for any Monte Carlo derivative pricing and risk model (including path dependency and early exercise)
  • How you can easily generate CUDA-enabled code for your own proprietary pricing models
  • How to reduce the cost of your compute farm by more than 10X

Click here to sign up for the webinar.

New SciFinance / GPU Technical Brief

Download our new technical brief for more information on generating GPU-enabled source code

Topics covered include:

  • Why GPUs for finance?
  • Keys to NVIDIA® CUDATM programming
  • Alternatives for creating GPU-enabled pricing and risk models
  • Typical SciFinance® GPU-enabled pricing model speed-ups
  • Benefits of SciComp/NVIDIA joint technology
  • Cost/benefit considerations
  • Evaluation package information

Sign up and download here

New SciFinance Examples

The SciFinance Examples Catalogs provide hundreds of pricing and risk model specifications for all asset classes. The new SciCommodity Catalog features commodity-specific examples (contact your sales representative for more information on commodity support in SciFinance).

The new SciCommodity Catalog includes Monte Carlo and PDE examples for:

  • American, European and Asian Options on Futures
  • Swaptions
  • Spread Options
  • Barriers

In addition, the SciMC catalog has been upgraded with the addition of many new examples and revision of existing ones.

The SciMC Catalog includes new or revised Monte Carlo examples for:

  • Mountain Range Options
  • Other Path Dependent Options
  • Fixed Income (Short Rate Models)
  • Structured Notes

New SciFinance ASPEN Language/ Numerical Method Features

New implementation of jumps (SciMC)

Jump models are now implemented in MC codes by computing the Poisson distributed number of jumps that occur in each time step. The syntax for specifying SDEs with jumps in ASPEN is unchanged.

NOTE: This new method is now the default. To get the previous default method, (computing Poisson distributed jump times and inserting these into the time step sequence), specify SimulateJumpTimes[True]; The default method was changed to facilitate efficient parallel code implementations. Jump models now work in both SciGPU and SciOpenMP parallel code.

New MultiStream feature (SciMC and SciGPU)

A MultiStream feature had been added to random number generators ranALFG and ranWH4CLCG. These generators may now have sequence splitting in serial code:

  • ranALFG[MultiStream,N] creates N streams of random numbers (RNs)
  • ranALFG[MultiStream,1] is the same as ranALFG (no splitting)
  • ranALFG[MultiStream] makes the same number of streams as in CUDA.

These new arguments allow you to create serial MC code in which the pseudo-random number sequence is split identically as in in either OpenMP or CUDA parallel code. Thus serial and parallel code will have identical results, rather than just agreement within the MC variance. (The new arguments are ignored in CUDA version since CUDA codes always have multiple streams.)

New AsArray option in Ouput statement (SciFinance)

AsArray[<ArrayName>] is now an optional argument to Output. When there are multiple scalar values of the same type, they are assigned in statement order to the elements of <ArrayName>. For example, the specification

 Output[{V, der[V,S], der[V,{S,2}]}, S=Spot,   AsArray[atSpot], "Results.out"];

will output three scalars as an array. The output file is unchanged for executables running from the command line and producing output files. But for wrapped codes, e.g. ExcelWrapper, there will be a single function call returning the array <ArrayName> of outputs rather than individual function calls each producing a single scalar output.

New Monte Carlo discretizations: Milstein74 and ExactOU

Milstein74; This discretization scheme is due to Milstein (1974). This is the original, simpler version of the Milstein family of discretization methods. It has both weak and strong order 1.0 of convergence. It creates simpler code than the current command Milstein, which has strong and weak convergence order of 2.0. Milstein74 may be useful for high dimensional systems for which Milstein may require excessive computations. ExactOU; An exact discretization for Orenstein-Uhlenbeck processes

New SciMC specification construct: BuildCorrelationMatrix

This new statement lets you build up a correlation matrix in Monte Carlo codes from component sub-matrices. For example, in a basket equity structure in which we model the dynamics of each of the nD underlying stock as a Heston stochastic volatility process:

...

SDE[delta[S] == (r-q) S delta[t] + Sqrt[v] S dW1;
   delta[v] == kappa(theta-v) delta[t] + sigma Sqrt[v] dW2];
   StdWiener[{dW1,dW2}];
 Vector[{S,q,dW1,SRef,dW2,kappa,theta,sigma}, {iD,1,nD}];
 ReadArray[RhoSS, {iD,1,nD},{jD,1,nD}, "RhoSS.dat"];
   ReadArray[RhoSv, {iD,1,nD},{jD,1,nD}, "RhoSv.dat"];
   ReadArray[Rhovv, {iD,1,nD},{jD,1,nD}, "Rhovv.dat"];
   BuildCorrelationMatrix[rho,{{RhoSS,RhoSv},{Rhovv}}];

...

We supply three correlation sub-matrices: RhoSS, correlations of S_i and S_j; RhoSv, the correlations S_i and v_j; and Rhovv the correlations of v_i and V_j. The resulting global correlation matrix rho is (2*nD) x (2*nD). The syntax of BuildCorrelationMatrix is similar to that of CorrelationElements, except that the components may now themselves be matrices. The sub-matrices need not be identical in shape as above, but the dimensions must be consistent with their position in the global correlation matrix, which, once constituted, must be symmetric.

ArraySum, ArrayMax, ArrayMin can apply over a subset of indices

ArraySum, ArrayMax, and ArrayMin now take an optional second argument that is a list of index names over which to compute the value. For example, given array InA dimensioned by i and j, whereas the specification

OutA = ArraySum[InA] 
makes OutA a scalar out that is the sum over the entire array,
OutA = ArraySum[InA, {j}]
makes OutA an array dimensioned by i, generating the code
for (i=1; i<=iN; i++) {
   asum = 0.;
   for (j=1; j<=jN; j++) {
   asum = asum + InA[i][j];
   }
   OutA[i] = asum;
   }

New TargetFileExtensions specification statement

The TargetFileExtensions specification statement determines the extensions of files containing the target code, such as ".c" or ".hpp". If nothing is specified, the extensions will default to .cpp and .h when the target language is C++, or to .c and .h when the target language is ansiC or msC. Examples:

TargetFileExtensions[{".hpp",".cc"}];
TargetFileExtensions[{".h",".cpp"}];
TargetFileExtensions[{".h",".cxx"}];

Syntax: TargetFileExtensions[{<h-file-ext>,<c-file-ext>}];

 

SciComp


SciComp Inc., 5806 Mesa Drive
Suite 250, Austin, TX 78731
512-451-1050
Get more information on SciComp products

 

Home

Communicate

ICBI Global Derivatives 2010
Annual Conference
Paris, May 17-21, 2010

NEWS

CUDA-Enabled Codes

"...the only thing you need to add to get GPGPU acceleration is literally 'CUDA'; it's a single keyword, not a fundamentally different way to formulate the math equations. This allows SciComp's customers to save even more time while also improving accuracy."

Beyond 3D