Main Content

setCallExercisePolicy

Set call exercise policy for OptionEmbeddedFixedBond or OptionEmbeddedFloatBond instrument

Description

example

UpdatedInstrumentObject = setCallExercisePolicy(InstrumentObject,exerciseSchedule,exerciseStyle) sets the call exercise policy for a OptionEmbeddedFixedBond or OptionEmbeddedFloatBond instrument.

Examples

collapse all

This example shows how to use setCallExercisePolicy 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;
CallSchedule =  timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); 

CallableBond = fininstrument("OptionEmbeddedFixedBond",'Maturity',Maturity,...
                              'CouponRate',0.025,'Period',Period, ...
                              'CallSchedule',CallSchedule)
CallableBond = 
  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: [2x1 datetime]
                    PutDates: [0x1 datetime]
                CallSchedule: [2x1 timetable]
                 PutSchedule: [0x0 timetable]
           CallExerciseStyle: "american"
            PutExerciseStyle: [0x0 string]
                        Name: ""

Set the Exercise Style to Bermudan

Use setCallExercisePolicy to define the CallExerciseStyle as Bermudan.

CallableBond = setCallExercisePolicy(CallableBond, CallSchedule, "Bermudan") 
CallableBond = 
  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: [2x1 datetime]
                    PutDates: [0x1 datetime]
                CallSchedule: [2x1 timetable]
                 PutSchedule: [0x0 timetable]
           CallExerciseStyle: "bermudan"
            PutExerciseStyle: [0x0 string]
                        Name: ""

Use setCallExercisePolicy to modify CallSchedule 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)];

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

CallableBond = setCallExercisePolicy(CallableBond, CallSchedule)   
CallableBond = 
  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: [4x1 datetime]
                    PutDates: [0x1 datetime]
                CallSchedule: [4x1 timetable]
                 PutSchedule: [0x0 timetable]
           CallExerciseStyle: "bermudan"
            PutExerciseStyle: [0x0 string]
                        Name: ""

Input Arguments

collapse all

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

Data Types: object

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

Data Types: timetable

Call 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