Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

Working with Simple Numerix Trades

This example shows how to price a callable reverse floater using Numerix® CAIL.

Initialize Numerix environment.

import com.numerix.integration.*;
import com.numerix.integration.implementation.*;

n = numerix('i:\NumeriX_java_10_3_0\data')
n = 

              Path: 'i:\NumeriX_java_10_3_0\data'
    RepositoryPath: 'i:\NumeriX_java_10_3_0\data\Repository'
        Repository: [1x1 com.numerix.integration.implementation.FileSystemRepository]
           Context: [1x1 com.numerix.integration.implementation.LocalCalculationContext]
       LookupsPath: 'i:\NumeriX_java_10_3_0\data\Data\LookupRules'
       MarketsPath: 'i:\NumeriX_java_10_3_0\data\Data\Markets'
       FixingsPath: 'i:\NumeriX_java_10_3_0\data\Data\Fixings'
        TradesPath: 'i:\NumeriX_java_10_3_0\data\Data\Trades'
        Parameters: [1x1 com.numerix.integration.implementation.CalculationParameters]

Create a market.

quotes = java.util.HashMap;
quotes.put('IR.USD-LIBOR-3M.SWAP-1Y.MID', 0.0066056);
quotes.put('IR.USD-LIBOR-3M.SWAP-10Y.MID', 0.022465005);
quotes.put('IR.USD-LIBOR-3M.SWAP-20Y.MID', 0.027544995);
market = Market('EOD_14-NOV-2011', DateExtensions.date('14-Nov-2011'), quotes.entrySet);

Define a trade instance for a callable reverse floater based on instrument template located in the Repository.

tradeDescriptor = 'TRADE.IR.CALLABLEREVERSEFLOATER';
tradeParameters = java.util.HashMap;
tradeParameters.put('Trade ID','1001');
tradeParameters.put('Quote Type', 'MID');
tradeParameters.put('Currency', 'USD');
tradeParameters.put('Notional', 1000000.0);
tradeParameters.put('Effective Date', DateExtensions.date('1-Dec-2011'));
tradeParameters.put('Termination Date', DateExtensions.date('1-Dec-2021'));
tradeParameters.put('IR Index', 'LIBOR');
tradeParameters.put('IR Index Tenor', '3M');
tradeParameters.put('Structured Freq', '3M');
tradeParameters.put('Structured Side', 'Receive');
tradeParameters.put('Structured Coupon Floor', 0.0);
tradeParameters.put('Structured Coupon UpBd', 0.08);
tradeParameters.put('StructuredCoupon Multiplier', 1.4);
tradeParameters.put('Structured Coupon Cap', 0.05);
tradeParameters.put('Structured Basis', 'ACT/360');
tradeParameters.put('Funding Freq', '3M');
tradeParameters.put('Funding Side', 'Pay');
tradeParameters.put('Funding Spread', 0.003);
tradeParameters.put('Funding Basis', 'ACT/360');
tradeParameters.put('Call Start Date', DateExtensions.date('1-Dec-2013'));
tradeParameters.put('Call End Date', DateExtensions.date('1-Dec-2020'));
tradeParameters.put('Option Side', 'Short');
tradeParameters.put('Option Type', 'Right to Terminate');
tradeParameters.put('Call Frequency', '3M');
tradeParameters.put('Model', 'IR.USD-LIBOR-3M.MID.DET');
tradeParameters.put('Method', 'BackwardAnalytic');

Create the trade instance.

trade = RepositoryExtensions.createTradeInstance(n.Repository, tradeDescriptor, tradeParameters)

Price the trade.

results = CalculationContextExtensions.calculate(n.Context, trade, market, Request.getAll);

Parse the results for MATLAB® and display.

r = n.parseResults(results)
disp([r.Name r.Category r.Currency r.Data])
r = 

    Category: {13x1 cell}
    Currency: {13x1 cell}
        Name: {13x1 cell}
        Data: {13x1 cell}

    'Reporting Currency'           'Price'       ''       'USD'        
    'Structured Cashflow Log'      'Cashflow'    ''        {41x20 cell}
    'Structured Leg PV Accrued'    'Price'       'USD'    [          0]
    'PV'                           'Price'       'USD'    [ 6.4133e+04]
    'Structured Leg PV Clean'      'Price'       'USD'    [ 4.2637e+05]
    'Option PV'                    'Price'       'USD'    [-1.3220e+05]
    'Funding Cashflow Log'         'Cashflow'    ''        {41x20 cell}
    'Structured Leg PV'            'Price'       'USD'    [ 4.2637e+05]
    'Funding Leg PV'               'Price'       'USD'    [-2.3004e+05]
    'Funding Leg PV Accrued'       'Price'       'USD'    [          0]
    'Funding Leg PV Clean'         'Price'       'USD'    [-2.3004e+05]
    'Yield Risk Report'            ''            ''        { 4x30 cell}
    'Messages'                     ''            ''        { 4x1  cell}

See Also

| |

Related Examples

External Websites

Was this topic helpful?