This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Working with Simple Numerix Trades

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

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','14-Nov-2011'), quotes.entrySet);

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

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','1-Dec-2011'));
tradeParameters.put('Termination 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','1-Dec-2013'));
tradeParameters.put('Call End 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 Topics

External Websites