Main Content

instcompound

Construct compound option

Description

example

InstSet = instcompound(UOptSpec,UStrike,USettle,UExerciseDates,UAmericanOpt,COptSpec,CStrike,CSettle,CExerciseDates,CAmericanOpt) creates a new instrument set containing Compound option instruments.

example

InstSet = instcompound(InstSet,UOptSpec,UStrike,USettle,UExerciseDates,UAmericanOpt,COptSpec,CStrike,CSettle,CExerciseDates,CAmericanOpt) adds Compound option instruments to an existing instrument set.

example

[FieldList,ClassList,TypeString] = instcompound lists field meta-data for the Compound option instrument.

Examples

collapse all

Define a compound option instrument with the following data:

UOptSpec = 'Call';
UStrike = 130;
USettle = '01-Jan-2012';
UExerciseDates = '01-Jan-2015';
UAmericanOpt = 0;
COptSpec = 'Put';
CStrike = 5;
CSettle = '01-Jan-2012';
CExerciseDates = '01-Jan-2014';
CAmericanOpt = 0;

InstSet = instcompound(UOptSpec, UStrike, USettle,UExerciseDates, ...
UAmericanOpt, COptSpec, CStrike, CSettle,CExerciseDates, CAmericanOpt)
InstSet = struct with fields:
        FinObj: 'Instruments'
    IndexTable: [1x1 struct]
          Type: {'Compound'}
     FieldName: {{10x1 cell}}
    FieldClass: {{10x1 cell}}
     FieldData: {{10x1 cell}}

InstSet = instcompound(UOptSpec, UStrike, USettle,UExerciseDates, ...
UAmericanOpt, COptSpec, CStrike, CSettle,CExerciseDates)
InstSet = struct with fields:
        FinObj: 'Instruments'
    IndexTable: [1x1 struct]
          Type: {'Compound'}
     FieldName: {{10x1 cell}}
    FieldClass: {{10x1 cell}}
     FieldData: {{10x1 cell}}

Display the instrument set.

instdisp(InstSet)
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt
1     Compound Call     130     01-Jan-2012    01-Jan-2015    0            Put      5       01-Jan-2012    01-Jan-2014    0           
 

Input Arguments

collapse all

Instrument variable, specified only when adding Compound option instruments to an existing instrument set. For more information on the InstSet variable, see instget.

Data Types: struct

Definition of underlying option, specified as 'call' or 'put' using a character vector.

Data Types: char

Underlying option strike price value, specified with a nonnegative integer using a 1-by-1 vector.

Data Types: double

Underlying option settlement date or trade date, specified as a 1-by-1 vector using a serial date number or character vector.

Data Types: double | char

Underlying option exercise date, specified as a serial date number or date character vector:

  • For a European option, use a1-by-1 vector of the underlying exercise date. For a European option, there is only one ExerciseDates on the option expiry date.

  • For an American option, use a 1-by-2 vector of the underlying exercise date boundaries. The option can be exercised on any tree date. If only one non-NaN date is listed, or if ExerciseDates is 1-by-1, the option can be exercised between ValuationDate of the stock tree and the single listed ExerciseDates.

Data Types: double | char

Underlying option type, specified as NINST-by-1 positive integer scalar flags with values:

  • 0 — European

  • 1 — American

If UAmericanOpt is a NaN or is unspecified, the option is a European option.

Data Types: double

Definition of compound option, specified as 'call' or 'put' using a character vector or a cell array of character vectors with values 'call' or 'put'.

Data Types: char | cell

Compound option strike price values for a European and American option, specified with a nonnegative integer using a NINST-by-1 matrix. Each row is the schedule for one option.

Data Types: double

Compound option settlement date or trade date, specified as a 1-by-1 vector using a serial date number or date character vector.

Data Types: double | char

Compound option exercise dates, specified as serial date numbers or date character vectors:

  • For a European option, use aNINST-by-1 matrix of the compound exercise dates. Each row is the schedule for one option. For a European option, there is only one ExerciseDates on the option expiry date.

  • For an American option, use a NINST-by-2 vector of the compound exercise date boundaries. For each instrument, the option can be exercised on any tree date between or including the pair of dates on that row. If only one non-NaN date is listed, or if ExerciseDates is NINST-by-1, the option can be exercised between ValuationDate of the stock tree and the single listed ExerciseDates.

Data Types: double | char

(Optional) Compound option type, specified as NINST-by-1 positive integer scalar flags with values:

  • 0 — European

  • 1 — American

If CAmericanOpt is a NaN or is unspecified, the option is a European option.

Data Types: double

Output Arguments

collapse all

Variable containing a collection of instruments, returned as a structure. Instruments are broken down by type and each type can have different data fields. Each stored data field has a row vector or string for each instrument. For more information on the InstSet variable, see instget.

Name of each data field for a Compound option instrument, returned as an NFIELDS-by-1 cell array of character vectors.

Data class for each field, returned as an NFIELDS-by-1 cell array of character vectors. The class determines how arguments are parsed. Valid character vectors are 'dble', 'date', and 'char'.

Type of instrument, returned as a character vector. For a Compound option instrument, TypeString = 'Compound'.

More About

collapse all

Compound Option

A compound option is basically an option on an option; it gives the holder the right to buy or sell another option.

With a compound option, a vanilla stock option serves as the underlying instrument. Compound options thus have two strike prices and two exercise dates. For more information, see Compound Option.

Introduced before R2006a