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', 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
numerix | parseResults | numerixCrossAsset
Topics
- Working with Advanced Numerix Trades
- Use Numerix to Price Cash Deposits
- Use Numerix for Interest-Rate Risk Assessment