public ResetStrikeOption(Date startDate, Date maturityDate, OptionExercise exercise, OptionType optionType, ResetStrikeType resetStrikeType, double strike, InstrumentType underlyingInstrumentType, ICalendar calendar, IDayCount dayCount, CurrencyCode payoffCcy, CurrencyCode settlementCcy, Date[] exerciseDates, Date[] observationDates, Date strikefixingDate, double notional = 1, DayGap settlementGap = null, Date optionPremiumPaymentDate = null, double optionPremium = 0) : base(startDate: startDate, maturityDate: maturityDate, exercise: exercise, optionType: optionType, strike: new double[] { strike }, underlyingInstrumentType: underlyingInstrumentType, calendar: calendar, dayCount: dayCount, settlementCcy: settlementCcy, payoffCcy: payoffCcy, exerciseDates: exerciseDates, observationDates: observationDates, notional: notional, settlementGap: settlementGap, optionPremiumPaymentDate: optionPremiumPaymentDate, optionPremium: optionPremium) { ResetStrikeType = resetStrikeType; StrikeFixingDate = strikefixingDate; }
public ResetStrikeOptionCalculator( OptionType optionType, ResetStrikeType resetstrikeType, InstrumentType underlyingProductType, double strike, double spotPrice, double exerciseInYears, double strikefixingInYears, double sigma, double riskFreeRate, double dividendRate, double notional) { _optionType = optionType; _resetstrikeType = resetstrikeType; _X = strike; _S = spotPrice; _T = exerciseInYears; _t = strikefixingInYears; _sigma = sigma; _r = riskFreeRate; _dividendRate = dividendRate; if (FuturesProducts.Contains(underlyingProductType)) { _b = 0.0; } else { _b = riskFreeRate - dividendRate; } _notional = notional; }