sttsens
Instrument sensitivities and prices using standard trinomial tree
Syntax
Description
Examples
Load the data into the MATLAB® workspace.
load deriv.mat
STTTree
and STTInstSet
are the input arguments required to call the function sttprice
. Use the command instdisp
to examine the set of instruments contained in the variable STTInstSet
.
instdisp(STTInstSet)
Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 100 01-Jan-2009 01-Jan-2011 1 Call1 10 2 OptStock put 80 01-Jan-2009 01-Jan-2012 0 Put1 5 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 105 01-Jan-2009 01-Jan-2012 1 ui 115 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 95 01-Jan-2009 01-Jan-2012 1 put 5 01-Jan-2009 01-Jan-2011 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 90 01-Jan-2009 01-Jan-2012 0 Lookback1 7 6 Lookback call 95 01-Jan-2009 01-Jan-2013 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian call 100 01-Jan-2009 01-Jan-2012 0 arithmetic NaN NaN Asian1 4 8 Asian call 100 01-Jan-2009 01-Jan-2013 0 arithmetic NaN NaN Asian2 6
The instrument set contains eight instruments:
Two vanilla options (
Call1
,Put1
)One barrier option (
Barrier1
)One compound option (
Compound1
)Two lookback options (
Lookback1
,Lookback2
)Two Asian options (
Asian1
,Asian2
)
Use sttsens
to calculate the price and sensitivities for each instrument in the instrument set.
[Delta,Gamma,Vega,Price] = sttsens(STTTree, STTInstSet)
Delta = 8×1
0.5267
-0.0943
0.4726
-0.0624
0.2313
0.3266
0.5706
0.6646
Gamma = 8×1
105 ×
0.0000
0.0000
0.0000
0.0000
-1.8650
-1.9119
1.8650
1.9119
Vega = 8×1
52.8980
42.4369
25.9792
-9.5266
70.3758
92.9226
25.8122
37.8757
Price = 8×1
4.5025
3.0603
3.7977
1.7090
11.7296
12.9120
1.6905
2.6203
Create a RateSpec
.
StartDates = datetime(2015,1,1); EndDates = datetime(2020,1,1); Rates = 0.025; Basis = 1; RateSpec = intenvset('ValuationDate',StartDates,'StartDates',StartDates,... 'EndDates',EndDates,'Rates',Rates,'Compounding',-1,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.8825
Rates: 0.0250
EndTimes: 5
StartTimes: 0
EndDates: 737791
StartDates: 735965
ValuationDate: 735965
Basis: 1
EndMonthRule: 1
Create a StockSpec
.
AssetPrice = 80; Sigma = 0.12; StockSpec = stockspec(Sigma,AssetPrice)
StockSpec = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.1200
AssetPrice: 80
DividendType: []
DividendAmounts: 0
ExDividendDates: []
Create a STTTree
.
TimeSpec = stttimespec(StartDates, EndDates, 20); STTTree = stttree(StockSpec, RateSpec, TimeSpec)
STTTree = struct with fields:
FinObj: 'STStockTree'
StockSpec: [1×1 struct]
TimeSpec: [1×1 struct]
RateSpec: [1×1 struct]
tObs: [0 0.2500 0.5000 0.7500 1 1.2500 1.5000 1.7500 2 2.2500 2.5000 2.7500 3 3.2500 3.5000 3.7500 4 4.2500 4.5000 4.7500 5]
dObs: [735965 736056 736147 736238 736330 736421 736512 736604 736695 736786 736878 736969 737060 737151 737243 737334 737425 737517 737608 737699 737791]
STree: {1×21 cell}
Probs: {1×20 cell}
Define the convertible bond. The convertible bond can be called starting on Jan 1, 2016 with a strike price of 95.
CouponRate = 0.03; Settle = datetime(2015,1,1); Maturity = datetime(2018,4,1); Period = 1; CallStrike = 95; CallExDates = [datetime(2016,1,1) datetime(2018,4,1)]; ConvRatio = 1; Spread = 0.025;
Price the convertible bond using the standard trinomial tree model.
[Price,PriceTree,EqtTre,DbtTree] = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio,... 'Period',Period,'Spread',Spread,'CallExDates',CallExDates,'CallStrike',CallStrike,'AmericanCall', 1)
Price = 90.2511
PriceTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1×21 cell}
tObs: [0 0.2500 0.5000 0.7500 1 1.2500 1.5000 1.7500 2 2.2500 2.5000 2.7500 3 3.2500 3.5000 3.7500 4 4.2500 4.5000 4.7500 5]
dObs: [735965 736056 736147 736238 736330 736421 736512 736604 736695 736786 736878 736969 737060 737151 737243 737334 737425 737517 737608 737699 737791]
EqtTre = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1×21 cell}
tObs: [0 0.2500 0.5000 0.7500 1 1.2500 1.5000 1.7500 2 2.2500 2.5000 2.7500 3 3.2500 3.5000 3.7500 4 4.2500 4.5000 4.7500 5]
dObs: [735965 736056 736147 736238 736330 736421 736512 736604 736695 736786 736878 736969 737060 737151 737243 737334 737425 737517 737608 737699 737791]
DbtTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1×21 cell}
tObs: [0 0.2500 0.5000 0.7500 1 1.2500 1.5000 1.7500 2 2.2500 2.5000 2.7500 3 3.2500 3.5000 3.7500 4 4.2500 4.5000 4.7500 5]
dObs: [735965 736056 736147 736238 736330 736421 736512 736604 736695 736786 736878 736969 737060 737151 737243 737334 737425 737517 737608 737699 737791]
Compute the delta and gamma of the convertible bond.
InstSet= instcbond(CouponRate,Settle,Maturity,ConvRatio,'Spread',Spread,... 'CallExDates',CallExDates,'CallStrike',CallStrike,'AmericanCall',1); [Delta,Gamma] = sttsens(STTTree,InstSet)
Delta = 0.3945
Gamma = 0.0324
Input Arguments
Stock tree structure for a standard trinomial tree, specified by using
stttree
.
Data Types: struct
Variable containing a collection of NINST
instruments,
specified as a structure. Instruments are broken down by type and each type
can have different data fields.
Data Types: struct
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: [Delta,Gamma,Vega,Price] =
sttsens(STTTree,InstSet,'Options',deriv)
Derivatives pricing options, specified as the comma-separated pair
consisting of 'Options'
and a structure that is
created with derivset
.
Data Types: struct
Output Arguments
Rate of change of instrument prices with respect to changes in the stock
price, returned as a NINST
-by-1
vector
of deltas. For more information on the stock tree, see stttree
.
Rate of change of instrument deltas with respect to changes in the stock
price, returned as a NINST
-by-1
vector
of gammas.
Rate of change of instrument prices with respect to changes in the
volatility of the stock price, returned as a
NINST
-by-1
vector of vegas. For
more information on the stock tree, see stttree
.
Expected prices for each instrument at time 0
, returned
as a NINST
-by-1
vector. The prices are
computed by backward dynamic programming on the standard trinomial (STT)
stock tree. If an instrument cannot be priced, a NaN
is
returned in that entry.
Version History
Introduced in R2015b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)