Main Content

setPutExercisePolicy

Set put exercise policy for OptionEmbeddedFixedBond or OptionEmbeddedFloatBond instrument

Description

Examples

collapse all

This example shows how to use setPutExercisePolicy to maintain consistency between the exercise schedule and exercise style when using a OptionEmbeddedFixedBond instrument object.

Create OptionEmbeddedFixedBond Instrument Object

Use fininstrument to create an OptionEmbeddedFixedBond instrument object with different exercise styles.

Maturity = datetime(2024,1,1);
Strike = [100;100];
ExerciseDates = [datetime(2020,1,1); datetime(2024,1,1)];
Period = 1;
PutSchedule =  timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); 

PuttableBond = fininstrument("OptionEmbeddedFixedBond",'Maturity',Maturity,...
                              'CouponRate',0.025,'Period',Period, ...
                              'PutSchedule',PutSchedule)
PuttableBond = 
  OptionEmbeddedFixedBond with properties:

                  CouponRate: 0.0250
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 01-Jan-2024
                   CallDates: [0x1 datetime]
                    PutDates: [2x1 datetime]
                CallSchedule: [0x0 timetable]
                 PutSchedule: [2x1 timetable]
           CallExerciseStyle: [0x0 string]
            PutExerciseStyle: "american"
                        Name: ""

Set Exercise Style to Bermudan

Use setPutExercisePolicy to define PutExerciseStyle as Bermudan.

PuttableBond = setPutExercisePolicy(PuttableBond, PutSchedule, "Bermudan") 
PuttableBond = 
  OptionEmbeddedFixedBond with properties:

                  CouponRate: 0.0250
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 01-Jan-2024
                   CallDates: [0x1 datetime]
                    PutDates: [2x1 datetime]
                CallSchedule: [0x0 timetable]
                 PutSchedule: [2x1 timetable]
           CallExerciseStyle: [0x0 string]
            PutExerciseStyle: "bermudan"
                        Name: ""

Use setPutExercisePolicy to modify PutSchedule and continue using a Bermudan exercise style.

Strike = [100; 101;102;103];
ExerciseDates = [datetime(2018,1,1);datetime(2020,1,1);datetime(2022,1,1);datetime(2024,1,1)];

PutSchedule =  timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); 

PuttableBond = setPutExercisePolicy(PuttableBond, PutSchedule)   
PuttableBond = 
  OptionEmbeddedFixedBond with properties:

                  CouponRate: 0.0250
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 01-Jan-2024
                   CallDates: [0x1 datetime]
                    PutDates: [4x1 datetime]
                CallSchedule: [0x0 timetable]
                 PutSchedule: [4x1 timetable]
           CallExerciseStyle: [0x0 string]
            PutExerciseStyle: "bermudan"
                        Name: ""

Input Arguments

collapse all

Instrument object, specified using a previously created OptionEmbeddedFixedBond or OptionEmbeddedFloatBond instrument object.

Data Types: object

Put exercise schedule, specified as a timetable. The timetable must contain both the exerciseDate value and Strike information.

Data Types: timetable

Put option exercise style, specified as a scalar string or character vector.

Data Types: string | char

Output Arguments

collapse all

Updated instrument, returned as an object.

Introduced in R2020b