Это, наверное, очень глупый вопрос, но не уверен, что делать. У меня есть функция, которая возвращает все даты ex div и divyield, соответствующие этому evalDate
доexpiration
дата варианта.Bootstrap ZeroCurve только с одной датой выхода и одной суммой
Handle<YieldTermStructure> dividendTermStructure(bootstrapDividendCurveDB("INTC", today, expiration, underlyingPrice));
boost::shared_ptr<ZeroCurve>
bootstrapDividendCurveDB()
{
....
return boost::shared_ptr<ZeroCurve>(new ZeroCurve(ddy.exDivDates, ddy.dividendYields, ActualActual(), calendar));
}
Это затем переходит в руки
//instantiate BSM process
Handle<Quote> underlyingH(boost::shared_ptr<Quote>(new SimpleQuote(underlyingPrice)));
boost::shared_ptr<BlackScholesMertonProcess> bsmProcess(new BlackScholesMertonProcess(underlyingH,
dividendTermStructure, yieldTermStructure, volatilityTermStructure));
Однако, если есть только один дивиденд между evalDate
и expiration
, и, следовательно, ddy.exDivDates
, ddy.dividendYields
каждый содержит только одну запись, я получаю сообщение об ошибке:
unknown location(0): fatal error: in "testAmericanOptionPricingWithDividends": QuantLib::Error: not enough input dates given
FD_Div_IRAmerican.cpp(524): last checkpoint: "testAmericanOptionPricingWithDividends" entry.
Способ, которым я получил этот раздел кода, решает это, принимая предыдущий разрыв й доход, даже несмотря на то, что evalDate (сегодня) прошёл эту дату ex-div. Таким образом, существует как минимум два значения, из которых достаточно точек для построения ZeroCurve
.
Это не кажется правильным. Что делать в этом случае для коротких опционов, которые могут иметь только один дивиденд между истечением срока действия и «сегодня»?
Спасибо. Это работает. Я немного смущен вашей «запиской». Вы говорите, что то, что я возвращаю, не должно быть датой ex-div, но датой оценки (сегодня)? Наверное, я не уверен, почему предостережение оправданно? – Ivan
Я имею в виду, что кривая начинается с первой даты в векторе 'ddy.exDivDates' и будет вызывать исключение, если его спросят о ставке до этой даты. –
Gotcha. Благодарю. – Ivan