Login  Register

Re: Forwards

Posted by Ferdinando M. Ametrano-2 on Apr 25, 2002; 3:43am
URL: http://quantlib.414.s1.nabble.com/Forwards-tp2011p2016.html

At 10:22 PM 4/24/2002 +0200, Luigi wrote:
>>What was poorly documented before is that in the TermStructure interface
>>all rates are assumed to be annual (time measured in years) continuos
>>compounding.
>>This requirement is not the best choice, but to change it would be a lot
>>of work since it's a pervasive assumption.
>>This means that TermStructure::forward(Date d1, Date d2) will not return
>>a FRA quote, since FRA are usually quoted with simple compounding.
>That depends on what we decide (and on the name of the method. I wouldn't
>overload forward() to give different kind of forward rates)
I would prefer discrete forward rates to be equivalent to zero rates in the
sense that forwards are nothing else that zero rates as seen from a future
time, and zeros are forwards estimated 0.0 years from now.
Let's take a forward starting option (aka deferred strike) as example. To
value it one uses the usual Black-Scholes formula provided that the 'zero'
rate is replaced by the 'forward' rate. Now, if I'm supposed to feed our
Black-Scholes formula with a zero rate calculated by our TermStructure I
would like to be able to use a discrete forward rate as provided by our
TermStructure also in the case of forward options.

What about the following interface:
         //! discount factor at a given date
         DiscountFactor discount(const Date&, bool extrapolate = false) const;
         //! zero yield rate at a given date
         Rate zeroYield(const Date&, bool extrapolate = false) const;
         //! forward (zero) rate between two dates
         Rate forward(const Date&, const Date&, bool extrapolate = false)
const;
         //! instantaneous forward (zero) rate at a given date
         Rate instantaneousForward(const Date&, bool extrapolate = false)
const;

where of course zeroYield(myDate)==forward(settlementDate(), myDate) ?

ciao -- Nando