%% Price Deposit Instrument Using ratecurve and Discount Pricer
% This example shows the workflow to price a Deposit instrument when using a ratecurve and a Discount pricing method.
%% Create Deposit Instrument Object
% Use fininstrument to create a Deposit instrument object.

DepositObj = fininstrument("Deposit",'Maturity',datetime(2019,3,15),'Rate',0.0195,'Period',2,'Basis',1,'Principal',100,'Name',"deposit_instrument")

%
%% Create ratecurve Object
% Create a ratecurve object using ratecurve.

Settle = datetime(2018,9,15);
Type = 'zero';
ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)

%% Create Discount Pricer Object
% Use finpricer to create a Discount pricer object and use the ratecurve object for the 'DiscountCurve' name-value pair argument.

outPricer = finpricer("Discount", 'DiscountCurve',myRC)

%% Price Deposit Instrument
% Use price to compute the price and sensitivities for the Deposit instrument.

[Price, outPR] = price(outPricer, DepositObj,["all"])
outPR.Results

% Copyright 2019 The MathWorks, Inc.