В этом примере показано, как использовать Numerix® CROSSASSET API, чтобы оценить денежный вклад от MATLAB®. Торговые параметры читаются из Cashdeposit1.csv в Numerix Data Trades папка.
Инициализируйте среду Numerix.
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]Создайте рынок.
market = Market('EOD_16-APR-2012', DateExtensions.date('16-APR-2012'), []);
Считайте Cashdeposit1.csv файл от Numerix Trades папка.
[~,~,tradeInfo] = xlsread([n.TradesPath '\Cashdeposit1.csv'])tradeInfo =
'Template' 'String' 'TRADE.IR.CASHDEPOSIT'
'Trade ID' 'ID' 'CASHDEP1001'
'Quote Type' 'String' 'MID'
'Effective Date' 'Date' '4/1/2012'
'Maturity' 'Date' '4/1/2013'
'Notional' 'Double' [ 100]
'Currency' 'Currency' 'USD'
'Coupon Rate' 'Double' [ 0.0500]
'Yield' 'Double' [ 0.0440]
'IR Index' 'String' 'Libor'
'IR Index Tenor' 'Tenor' '3m'
Задайте торговый экземпляр от импортированного CASHDEP1001 инструмент.
tradeDescriptor = tradeInfo{1,3};
tradeParameters = java.util.HashMap;
numTradeInfoFields = size(tradeInfo,1);
for i = 2:numTradeInfoFields
switch tradeInfo{i,2}
case {'DATE','Date'}
tradeParameters.put(tradeInfo{i,1},DateExtensions.date(datestr(tradeInfo{i,3},'dd-mmm-yyyy')));
otherwise
tradeParameters.put(tradeInfo{i,1},tradeInfo{i,3});
end
end
Создайте торговый экземпляр.
trade = RepositoryExtensions.createTradeInstance(n.Repository, tradeDescriptor, tradeParameters);
Оцените торговлю.
results = CalculationContextExtensions.calculate(n.Context, trade, market, Request.getAll);
Проанализируйте результаты для MATLAB и отображения.
r = n.parseResults(results) disp([r.Name r.Category r.Currency r.Data])
r =
Category: {9x1 cell}
Currency: {9x1 cell}
Name: {9x1 cell}
Data: {9x1 cell}
'Modified Duration' 'Price' '' [ 0.9349]
'Accrued Interest' 'Price' 'USD' [ 0.2083]
'Reporting Currency' 'Price' '' 'USD'
'PV' 'Price' 'USD' [ 100.7607]
'Instrument' 'Price' '' [1x85 char]
'Clean Price' 'Price' 'USD' [ 100.5524]
'Convexity' 'Price' '' [ 1.7481]
'YTM' 'Price' '' []
'Messages' '' '' []numerix | numerixCrossAsset | parseResults