Login  Register

Re: Negative price with Forward Rates

Posted by Peter Caspers-4 on Jan 28, 2014; 12:21pm
URL: http://quantlib.414.s1.nabble.com/Negative-price-with-Forward-Rates-tp14868p14907.html

Luigi, just out of curiosity, in ForwardRateStructure there seems to
be a general purpose implementation to get the zero yield by
integration over the forwards. Wouldn't the situation here be a use
case for exactly this (i.e. catch the exception and invoke the base
class method instead) ?
best, Peter

On 28 January 2014 12:37, Luigi Ballabio <[hidden email]> wrote:

> Yes. the curve is trying to integrate the forwards to get the
> discounts, but the LogLinear interpolator doesn't provide a formula
> for that. You'll have to choose another interpolation.
>
> Luigi
>
> On Mon, Jan 27, 2014 at 5:50 AM, varun yadav <[hidden email]> wrote:
>> Hi Luigi,
>>
>> I passed evaluation date as the first date in liborDates. Also added
>> corresponding rate in liborRates. But now it gives exception -
>> "LogInterpolation primitive not implemented"
>>
>> Below are new values -
>>
>> liborDates -
>>
>> January 24th, 2014
>> July 24th, 2014
>> January 24th, 2015
>> January 24th, 2016
>> January 24th, 2017
>> January 24th, 2018
>> January 24th, 2019
>> January 24th, 2020
>> January 24th, 2021
>> January 24th, 2022
>> January 24th, 2023
>> January 24th, 2024
>> January 24th, 2029
>>
>> liborRates -
>>
>> 8.4
>> 8.4955
>> 8.36907
>> 8.38416
>> 8.47267
>> 8.62786
>> 8.69832
>> 8.71107
>> 8.85289
>> 8.99607
>> 8.80085
>> 8.7099
>> 9.00594
>>
>> Is exception coming due to InterpolatedForwardCurve<LogLinear> ...?
>>
>> Thanks in advance!
>>
>>
>> On Thursday, January 23, 2014 5:02 PM, Luigi Ballabio
>> <[hidden email]> wrote:
>> You should pass the evaluation date as the first date in liborDates.
>> You'll need a corresponding extra element in liborRates; just
>> replicate the first you have for constant rates from today to the
>> first actual Libor date.
>>
>> Luigi
>>
>> On Mon, Jan 20, 2014 at 8:12 AM, v17 <[hidden email]> wrote:
>>> Hi Everyone,
>>>
>>> I have following piece of code which gives Exception "negative time (-0.5)
>>> given"
>>>
>>> vector <Real> &forwardRates;
>>> const int size = liborRates.size();
>>> vector<Date> liborDates(liborTenors.size());
>>> for (int i = 0; i < size; i++)
>>> {
>>>        curDate = ycDef.cal.advance(ycDef.evalDate, liborTenors[i]);
>>>        liborDates[i] = curDate;
>>> }
>>> yieldCurve = shared_ptr<YieldTermStructure>(new
>>> InterpolatedForwardCurve<LogLinear>(liborDates, liborRates, ycDef.dc,
>>> ycDef.cal));
>>> yieldCurve->enableExtrapolation();
>>>
>>> size = liborTenors.size();
>>> forwardRates.clear();
>>> forwardRates.resize(size);
>>> try
>>> {
>>> forwardRates[i] = yieldCurve->forwardRate(ycDef.evalDate, ycDef.evalDate +
>>> liborTenors[i] , ycDef.dc, Compounded, Annual);
>>> }
>>> catch(QuantLib::Error& e)
>>> {
>>> cout << e.what() << endl;
>>> throw;
>>> }
>>>
>>> liborDates has below values -
>>>
>>> July 20th, 2014
>>> January 20th, 2015
>>> January 20th, 2016
>>> January 20th, 2017
>>> January 20th, 2018
>>> January 20th, 2019
>>> January 20th, 2020
>>> January 20th, 2021
>>> January 20th, 2022
>>> January 20th, 2023
>>> January 20th, 2024
>>> January 20th, 2029
>>>
>>> while liborRates is
>>> 8.53854
>>> 8.40083
>>> 8.39311
>>> 8.44955
>>> 8.56089
>>> 8.65359
>>> 8.68869
>>> 8.80096
>>> 8.9133
>>> 8.74109
>>> 8.66277
>>> 8.98536
>>>
>>> eval date is January 20th, 2014
>>>
>>> What is causing negative time exception?
>>>
>>> Thanks,
>>> Varun
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://quantlib.10058.n7.nabble.com/Negative-price-with-Forward-Rates-tp14868.html
>>> Sent from the quantlib-dev mailing list archive at Nabble.com.
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For
>>> Critical Workloads, Development Environments & Everything In Between.
>>> Get a Quote or Start a Free Trial Today.
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> QuantLib-dev mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>>
>>
>>
>>
>> --
>> <https://implementingquantlib.blogspot.com>
>> <https://twitter.com/lballabio
>>>
>>
>>
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>
> ------------------------------------------------------------------------------
> WatchGuard Dimension instantly turns raw network data into actionable
> security intelligence. It gives you real-time visual feedback on key
> security issues and trends.  Skip the complicated setup - simply import
> a virtual appliance and go from zero to informed in seconds.
> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
> _______________________________________________
> QuantLib-dev mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev

------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev