dbltouchsensbybls
Calculate prices and sensitivities for double onetouch and double notouch binary options using BlackScholes option pricing model
Syntax
Description
specifies options using one or more namevalue pair arguments in addition to the
input arguments in the previous syntax.PriceSens
= dbltouchsensbybls(___,Name,Value
)
Examples
Calculate the Price and Sensitivities for a Double NoTouch Option
Compute the price and sensitivities for a double notouch option using the following data:
AssetPrice = 105; Rate = 0.1; Volatility = 0.2; Settle = '01Jan2018'; Maturity = '01Jul2018';
Define the RateSpec
using intenvset
.
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, 'EndDates', ... Maturity, 'Rates', Rate, 'Compounding', 1);
Define the StockSpec
using stockspec
.
DividendType = "Continuous";
DividendYield = Rate  0.03;
StockSpec = stockspec(Volatility, AssetPrice, DividendType, DividendYield);
Define the sensitivities.
OutSpec = {'price', 'delta', 'gamma'};
Calculate the price and sensitivities for a double notouch binary option.
BarrierSpec = "DNT"; Barrier = [120 80]; Payoff = 10; [Price, Delta, Gamma] = dbltouchsensbybls(RateSpec, StockSpec, Settle, Maturity, BarrierSpec, Barrier, Payoff,'OutSpec',OutSpec)
Price = 5.6368
Delta = 0.2536
Gamma = 0.0275
Input Arguments
StockSpec
— Stock specification for underlying asset
structure
Stock specification for the underlying asset, specified by the
StockSpec
obtained from stockspec
.
stockspec
handles several
types of underlying assets. For example, for physical commodities, the price
is StockSpec.Asset
, the volatility is
StockSpec.Sigma
, and the convenience yield is
StockSpec.DividendAmounts
.
Data Types: struct
Settle
— Settlement or trade date
serial date number  date character vector  datetime object
Settlement or trade date for the double touch option, specified as an
NINST
by1
matrix using serial
date numbers, date character vectors, or datetime objects.
Data Types: double
 char
 datetime
Maturity
— Maturity date
serial date number  date character vector
Maturity date for the double touch option, specified as an
NINST
by1
vector of serial date
numbers or date character vectors.
Data Types: double
 char
 cell
BarrierSpec
— Double barrier option type
cell array of character vectors with values of 'DOT'
or 'DNT'
 string array with values of "DOT"
or
"DNT"
Double barrier option type, specified as an
NINST
by1
cell array of character
vectors or string array with the following values:
'DOT'
— Double onetouch. The double onetouch option defines twoBarrier
levels. A double onetouch option provides aPayoff
if the underlying asset ever touches either the upper or lowerBarrier
levels.'DNT'
— Double notouch. The double notouch option defines twoBarrier
levels. A double notouch option provides aPayoff
if the underlying asset ever never touches either the upper or lowerBarrier
levels.
Data Types: char
 cell
 string
Barrier
— Double barrier value
numeric
Double barrier value, specified as an
NINST
by2
matrix of numeric
values, where the first column is Upper Barrier(1)(UB) and the second column
is Lower Barrier(2)(LB). Barrier(1) must be greater than Barrier(2).
Data Types: double
Payoff
— Payoff value
numeric
Payoff value, specified as an
NINST
by1
matrix of numeric
values, where each element is a 1
by2
vector in which the first column is Barrier(1)(UB) and the second column is
Barrier(2)(LB). Barrier(1) must be greater than Barrier(2).
Note
The payoff value is calculated for the point in time that the
Barrier
value is reached. The payoff is
either cash or nothing. If you specify a double notouch option
using BarrierSpec
, the payoff is at the
Maturity
of the option.
Data Types: double
NameValue Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Namevalue 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: PriceSens =
dbltouchsensbybls(RateSpec,StockSpec,OptSpec,Strike,Settle,Maturity,BarrierSpec,Barrier,'OutSpec','Delta')
OutSpec
— Define outputs
{'Price'}
(default)  character vector with values 'Price'
,
'Delta'
, 'Gamma'
,
'Vega'
, 'Lambda'
,
'Rho'
, 'Theta'
, and
'All'
 cell array of character vectors with values
'Price'
, 'Delta'
,
'Gamma'
, 'Vega'
,
'Lambda'
, 'Rho'
,
'Theta'
, and 'All'
 string array with values "Price"
,
"Delta"
, "Gamma"
,
"Vega"
, "Lambda"
,
"Rho"
, "Theta"
, and
"All"
Define outputs, specified as the commaseparated pair consisting of
'OutSpec'
and an NOUT

by1
or a
1
byNOUT
cell array of
character vectors with possible values of 'Price'
,
'Delta'
, 'Gamma'
,
'Vega'
, 'Lambda'
,
'Rho'
, 'Theta'
, and
'All'
.
OutSpec = {'All'}
specifies that the output is
Delta
, Gamma
,
Vega
, Lambda
,
Rho
, Theta
, and
Price
, in that order. This is the same as
specifying OutSpec
to include each
sensitivity.
Example: OutSpec =
{'delta','gamma','vega','lambda','rho','theta','price'}
Data Types: char
 cell
Output Arguments
PriceSens
— Expected prices or sensitivities for double onetouch options
matrix
Expected prices at time 0 or sensitivities (defined using
OutSpec
) for double onetouch options, returned as
an NINST
by1
matrix.
More About
Double OneTouch and Double NoTouch Options
Double onetouch options and double notouch options work the same way as onetouch options, except that there are two barriers.
A double onetouch or double notouch option provides a payoff if the underlying
spot either ever or never touches either the upper or lower
Barrier
levels. If neither barrier level is breached prior
to expiration, the option expires worthless and the trader loses all the premium
paid to the broker for setting up the trade. For example, if the current USD/EUR
rate is 1.15, and the trader believes that this rate will change significantly over
the next 15 days, the trader can use a double onetouch option with barriers at 1.10
and 1.20. The trader can profit if the rate moves beyond either of the two
barriers.
References
[1] Haug, E. The Complete Guide to Option Pricing Formulas. McGrawHill Education, 2007.
[2] Wystup, U. FX Options and Structured Products. Wiley Finance, 2007.
Version History
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 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)