|
From: Francois B. <ig...@gm...> - 2023-02-14 12:54:37
|
This is a terribly belated email, but thanks for the reply, Peter.
Luigi, sure, I'll do that.
thanks
Francois Botha
On Fri, 3 Feb 2023 at 15:41, Luigi Ballabio <lui...@gm...>
wrote:
> Hello Francois, may you open an issue on GitHub for this if you haven't
> already? Thanks!
>
> Luigi
>
>
> On Sun, Jul 31, 2022 at 7:19 PM Francois Botha <ig...@gm...> wrote:
>
>> Hi all,
>>
>> I'm doing some fixed rate bond forward calculations and I'm trying to
>> understand the forward value.
>>
>> In forward.cpp, the code is:
>> Real Forward::forwardValue() const {
>> calculate();
>> return (underlyingSpotValue_ - underlyingIncome_ )/
>> discountCurve_->discount(maturityDate_);
>> }
>>
>> and in bondforward.cpp, the fields are set as:
>> underlyingSpotValue_ = spotValue();
>> underlyingIncome_ = spotIncome(incomeDiscountCurve_);
>> and
>> Real BondForward::spotValue() const {
>> return bond_->dirtyPrice();
>> }
>>
>> So underlyingSpotValue_ is hence the bond dirty price (per 100 nominal)
>> and underlyingIncome_ is the value of the bond coupons, but not per 100
>> nominal, but rather per the actual nominal of the bond.
>>
>> This looks like an unintended discrepancy in notional amounts and would
>> explain why the forward price and NPV for the bond forwards aren't close to
>> what I expect.
>>
>> There are however unit tests (e.g. testFuturesPriceReplication()) that
>> explicitly test this.
>>
>> Looking forward to an expert opinion here.
>>
>> thanks
>> Francois Botha
>>
>> _______________________________________________
>> QuantLib-users mailing list
>> Qua...@li...
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>
|