Exercise¶
Types for option exercises
Two abstract types govern these structures:
abstract Exercise
abstract EarlyExercise <: Exercise
American Exercise¶
An American option can be exercised at any time between two predefined dates; the first date might be omitted, in which case the option can be exercised at any time before the expiry.
type AmericanExercise <: EarlyExercise
dates::Vector{Date}
end
-
AmericanExercise
(d1::Date, d2::Date)¶ Constructor for an American Exercise with earliest date and latest date for exercise
Bermudan Exercise¶
A Bermudan option can only be exercised at a set of fixed dates.
type BermudanExercise <: EarlyExercise
dates::Vector{Date}
end
European Exercise¶
A European option can only be exercised at one (expiry) date.
type EuropeanExercise <: Exercise
dates::Vector{Date}
end
-
EuropeanExercise
(d::Date) = EuropeanExercise([d])¶ Constructs a European Exercise with one expiration date
Rebated Exercise¶
In case of exercise the holder receives a rebate (if positive) or pays it (if negative) on the rebate settlement date.
type RebatedExercise <: Exercise
exercise::Exercise
rebate::Float64
rebateSettlementDays::Int
rebatePaymentCalendar::BusinessCalendar
rebatePaymentConvention::BusinessDayConvention
end
-
RebatedExercise
(exercise::Exercise, rebate::Float64 = 0.0, rebateSettlementDays::Int = 0, rebatePaymentCalendar::BusinessCalendar = NullCalendar(), rebatePaymentConvention::BusinessDayConvention = Following())¶ Default constructor for a RebatedExercise