/ / Quantlib USDLibor, como ele sabe qual é a data de fixação correta? - c ++, data, redefinição, quantlib

Quantlib USDLibor, como sabe qual é a data correta de conserto? - c ++, data, redefinir, quantlib

Ao precificar títulos de taxa flutuante, é precisotrabalhe com instâncias da classe USDLibor e adicione novas correções com uma data (equivalente à última data de redefinição menos dois dias úteis). No entanto, às vezes, reclama no tempo de execução, informando ao usuário que a correção para uma data especificada não está disponível (o que significa que a correção foi feita em uma data errada).

Como as instâncias do USDLibor sabem qual édata correta? Eu pergunto isso, porque talvez eu possa resolver esse problema recuperando a data correta diretamente, já que o USDLibor resolve o problema de descobrir a data correta.

Respostas:

0 para resposta № 1

A data de fixação é de dois dias úteis antes da data de redefinição, como você disse (a implementação da lógica está no FloatingRateCoupon::fixingDate() método, se você quiser verificá-lo).

No entanto, você pode estar usando os dias úteis incorretos. O USD LIBOR é fixado em Londres, portanto, os feriados são determinados de acordo com o calendário do Reino Unido, não o calendário dos EUA.

De qualquer forma, depois de criar o vínculo, vocêpode solicitar aos próprios fluxos de caixa suas datas de fixação com algo assim (que eu não testei, por isso pode nem ser compilado, mas você deve ter a idéia):

using namespace QuantLib;

Leg cashflows = bond.cashflows();
std::vector<Date> fixingDates;
for (Size i=0; i<cashflows.size(); ++i) {
boost::shared_ptr<FloatingRateCoupon> coupon =
boost::dynamic_pointer_cast<FloatingRateCoupon>(cashflows[i]);
if (coupon)
fixingDates.append(coupon->fixingDate());
}

após o qual o fixingDates O vetor conterá (sem surpresa) as datas de fixação.