Cannot bootstrap a yieldcurve

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Cannot bootstrap a yieldcurve

Leon Sit
Hi All:

I am using the following set of rates to bootstrap a yieldcurve

       double[] rates = {
0.0022438 ,
0.0025469 ,
0.0025688 ,
0.0026156 ,
0.0027969 ,
0.0030375 ,
0.0036906 ,
0.0044063 ,
0.0051125 ,
0.0057 ,
0.0062838 ,
0.0068188 ,
0.0074125 ,
0.0080344 ,
0.00471 ,
0.007027 ,
0.00991 ,
0.01303 ,
0.016065 ,
0.018773 ,
0.021 ,
0.02282 ,
0.0243 ,
0.025525 ,
0.0266 ,
0.027458 ,
0.02835 ,
0.02889 ,
0.02939 ,
0.02988 ,
0.0302 ,
0.0305 ,
0.03075 ,
0.03096 ,
0.031655 ,
0.031923 ,
0.03222 ,
0.031975};

       string[] labels = {"ON",
                     "1w",
                     "2w",
                     "1m",
                     "2m",
                     "3m",
                     "4m",
                     "5m",
                     "6m",
                     "7m",
                     "8m",
                     "9m",
                     "10m",
                     "11m",
                     "1y",
                     "2y",
                     "3y",
                     "4y",
                     "5y",
                     "6y",
                     "7y",
                     "8y",
                     "9y",
                     "10y",
                     "11y",
                     "12y",
                     "13y",
                     "14y",
                     "15y",
                     "16y",
                     "17y",
                     "18y",
                     "19y",
                     "20y",
                     "25y",
                     "30y",
                     "40y",
                     "50y"};

everything is fine until it iterates to the first swap quote. Does
anybody know what I might have missed?

I am using the following yield curve class

 new PiecewiseYieldCurve<Discount, LogLinear>(
               settlementDate, depositFutureSwapInstruments,
               depositDayCounter, 10e-5));

Thanks

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Luigi Ballabio
On Tue, 2010-10-19 at 09:32 -0500, Leon Sit wrote:
> I am using the following set of rates to bootstrap a yieldcurve [...] Does
> anybody know what I might have missed?

Can you show the rest of the code?

Luigi


--

Hofstadter's Law:
It always takes longer than you expect, even when you take
Hofstadter's Law into account.



------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Simon Ibbotson-2
In reply to this post by Leon Sit
I suspect that you're generating negative forward rates at the point
where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
enabled this as an option:- userconfig.hpp : uncomment out #define
QL_NEGATIVE_RATES.

You've not provided enough code to see whether your curve has properly
defined the cash/swap transition.

The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
followed by a 7% 2Y swap.

Simon


-----Original Message-----
From: Leon Sit [mailto:[hidden email]]
Sent: 19 October 2010 15:33
To: [hidden email]
Subject: [Quantlib-users] Cannot bootstrap a yieldcurve

Hi All:

I am using the following set of rates to bootstrap a yieldcurve

       double[] rates = {
0.0022438 ,
0.0025469 ,
0.0025688 ,
0.0026156 ,
0.0027969 ,
0.0030375 ,
0.0036906 ,
0.0044063 ,
0.0051125 ,
0.0057 ,
0.0062838 ,
0.0068188 ,
0.0074125 ,
0.0080344 ,
0.00471 ,
0.007027 ,
0.00991 ,
0.01303 ,
0.016065 ,
0.018773 ,
0.021 ,
0.02282 ,
0.0243 ,
0.025525 ,
0.0266 ,
0.027458 ,
0.02835 ,
0.02889 ,
0.02939 ,
0.02988 ,
0.0302 ,
0.0305 ,
0.03075 ,
0.03096 ,
0.031655 ,
0.031923 ,
0.03222 ,
0.031975};

       string[] labels = {"ON",
                     "1w",
                     "2w",
                     "1m",
                     "2m",
                     "3m",
                     "4m",
                     "5m",
                     "6m",
                     "7m",
                     "8m",
                     "9m",
                     "10m",
                     "11m",
                     "1y",
                     "2y",
                     "3y",
                     "4y",
                     "5y",
                     "6y",
                     "7y",
                     "8y",
                     "9y",
                     "10y",
                     "11y",
                     "12y",
                     "13y",
                     "14y",
                     "15y",
                     "16y",
                     "17y",
                     "18y",
                     "19y",
                     "20y",
                     "25y",
                     "30y",
                     "40y",
                     "50y"};

everything is fine until it iterates to the first swap quote. Does
anybody know what I might have missed?

I am using the following yield curve class

 new PiecewiseYieldCurve<Discount, LogLinear>(
               settlementDate, depositFutureSwapInstruments,
               depositDayCounter, 10e-5));

Thanks

------------------------------------------------------------------------
------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that
run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users



This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.

The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from

The Financial Services Authority (FSA)
25 The North Colonnade,
Canary Wharf,
London
E14 5HS
United Kingdom

Registered as a Limited Company in England and Wales No.1920623.
Registered Office as above

Switchboard: 020 7066 1000
Web Site: http://www.fsa.gov.uk
*****************************************************************


------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Leon Sit
In reply to this post by Luigi Ballabio
I am using Quantlib 1.0

The actual code is mangled with other code so it is hard to show. The
function in question is

int yield_curve_setup(YieldCurve* yieldcurve, const unsigned& quote_size,
                      const long& settlementDate_int, const string*
maturitiesLabel,
                      const double* quotes, const RateTypeEnum_C* rateTypes) {
    try {

        yieldcurve->rateTypes = new RateTypeEnum_C[quote_size];
        std::copy(rateTypes, rateTypes + quote_size, yieldcurve->rateTypes);

        //for now assume that we have the quote with the same format as quantlib
        yieldcurve->calendar = TARGET();
        DayCounter depositDayCounter = Actual360();

        Date settlementDate(settlementDate_int);
        int fixingDays = 0;
        boost::shared_ptr<RateHelper> rate;

        std::vector<boost::shared_ptr<RateHelper> >
depositeFutureSwapInstruments;
        Date imm = IMM::nextDate(settlementDate, true);
        boost::shared_ptr<IborIndex> swFloatingLegIndex(new Euribor6M);
        boost::shared_ptr<std::vector<boost::shared_ptr<RateHelper> >
>  depositFutureSwapInstruments(new
std::vector<boost::shared_ptr<RateHelper> >);
        for( unsigned i = 0; i < quote_size; ++i) {
            TimeUnit timeunit;
            int length;
            parseLabel(maturitiesLabel[i], length, timeunit);
            if(rateTypes[i] == DepositQuote) {
                boost::shared_ptr<Quote> depositRate(new
SimpleQuote(quotes[i]));
                rate.reset( new DepositRateHelper(
                                Handle<Quote>(depositRate),
                                length* timeunit, fixingDays,
                                yieldcurve->calendar, ModifiedFollowing,
                                true, depositDayCounter));
            } else if(rateTypes[i] == SwapQuote) {
                Frequency swFixedLegFrequency = Annual;
                BusinessDayConvention swFixedLegConvention = Unadjusted;
                DayCounter swFixedLegDayCounter = Thirty360(Thirty360::USA);
                boost::shared_ptr<Quote> swapRate(new SimpleQuote(quotes[i]));
                rate.reset( new SwapRateHelper(
                                Handle<Quote>(swapRate), length*timeunit,
                                yieldcurve->calendar, swFixedLegFrequency,
                                swFixedLegConvention, swFixedLegDayCounter,
                                swFloatingLegIndex));
            } else if(rateTypes[i] == FutureQuote) {
                Integer futMonths = 3;
                boost::shared_ptr<Quote> futurePrice(new
SimpleQuote(quotes[i]));
                rate.reset(new FuturesRateHelper(
                               Handle<Quote>(futurePrice),
                               imm,
                               futMonths, yieldcurve->calendar,
ModifiedFollowing,
                               true, depositDayCounter));
                imm = IMM::nextDate(imm+1);
            }
            depositFutureSwapInstruments->push_back(rate);
        }

        boost::shared_ptr<YieldTermStructure> depoFutureSwapStructure(
            new PiecewiseYieldCurve<Discount, LogLinear>(
                settlementDate, *depositFutureSwapInstruments,
                depositDayCounter, 10e-5));

        yieldcurve->discountingTermStructure.linkTo(depoFutureSwapStructure);

        return 1;
    } catch(std::exception& e) {
        std::cerr << e.what() << std::endl;
        return 0;
    } catch (...) { // have to catch all the pokemon exception
        std::cerr << "Unknown Yield Curve Exception" << std::endl;
        return 0;
    }
};

with YieldCurve defined as

typedef struct
{
//  double* quotes;
  RateTypeEnum_C* rateTypes;
//  boost::shared_ptr<std::vector<boost::shared_ptr<RateHelper> > >
depositFutureSwapInstruments;
  Calendar calendar;
  RelinkableHandle<YieldTermStructure> discountingTermStructure;
}YieldCurve;

When the data above passed to this function, everything is fine and
runs without a problem. However then I try to call maxDate() from this
curve, I get a bootstrap exception like stated

1st iteration: failed at 15th instrument, maturity October 21st, 2011,
reference date August 15th, 2010: root not bracketed:
f[2.22045e-016,0.992176] -> [-4.501710e+015,-2.753185e-003]




On Tue, Oct 19, 2010 at 9:38 AM, Luigi Ballabio
<[hidden email]> wrote:

> On Tue, 2010-10-19 at 09:32 -0500, Leon Sit wrote:
>> I am using the following set of rates to bootstrap a yieldcurve [...] Does
>> anybody know what I might have missed?
>
> Can you show the rest of the code?
>
> Luigi
>
>
> --
>
> Hofstadter's Law:
> It always takes longer than you expect, even when you take
> Hofstadter's Law into account.
>
>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Simon Ibbotson-2
In reply to this post by Leon Sit
Sorry, all those figures should be divided by 10... e.g. 0.8% rather
than 8%.

The same principle applies.

-----Original Message-----
From: Simon Ibbotson
Sent: 19 October 2010 15:50
To: 'Leon Sit'; [hidden email]
Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve

I suspect that you're generating negative forward rates at the point
where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
enabled this as an option:- userconfig.hpp : uncomment out #define
QL_NEGATIVE_RATES.

You've not provided enough code to see whether your curve has properly
defined the cash/swap transition.

The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
followed by a 7% 2Y swap.

Simon


-----Original Message-----
From: Leon Sit [mailto:[hidden email]]
Sent: 19 October 2010 15:33
To: [hidden email]
Subject: [Quantlib-users] Cannot bootstrap a yieldcurve

Hi All:

I am using the following set of rates to bootstrap a yieldcurve

       double[] rates = {
0.0022438 ,
0.0025469 ,
0.0025688 ,
0.0026156 ,
0.0027969 ,
0.0030375 ,
0.0036906 ,
0.0044063 ,
0.0051125 ,
0.0057 ,
0.0062838 ,
0.0068188 ,
0.0074125 ,
0.0080344 ,
0.00471 ,
0.007027 ,
0.00991 ,
0.01303 ,
0.016065 ,
0.018773 ,
0.021 ,
0.02282 ,
0.0243 ,
0.025525 ,
0.0266 ,
0.027458 ,
0.02835 ,
0.02889 ,
0.02939 ,
0.02988 ,
0.0302 ,
0.0305 ,
0.03075 ,
0.03096 ,
0.031655 ,
0.031923 ,
0.03222 ,
0.031975};

       string[] labels = {"ON",
                     "1w",
                     "2w",
                     "1m",
                     "2m",
                     "3m",
                     "4m",
                     "5m",
                     "6m",
                     "7m",
                     "8m",
                     "9m",
                     "10m",
                     "11m",
                     "1y",
                     "2y",
                     "3y",
                     "4y",
                     "5y",
                     "6y",
                     "7y",
                     "8y",
                     "9y",
                     "10y",
                     "11y",
                     "12y",
                     "13y",
                     "14y",
                     "15y",
                     "16y",
                     "17y",
                     "18y",
                     "19y",
                     "20y",
                     "25y",
                     "30y",
                     "40y",
                     "50y"};

everything is fine until it iterates to the first swap quote. Does
anybody know what I might have missed?

I am using the following yield curve class

 new PiecewiseYieldCurve<Discount, LogLinear>(
               settlementDate, depositFutureSwapInstruments,
               depositDayCounter, 10e-5));

Thanks

------------------------------------------------------------------------
------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that
run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users



This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.

The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from

The Financial Services Authority (FSA)
25 The North Colonnade,
Canary Wharf,
London
E14 5HS
United Kingdom

Registered as a Limited Company in England and Wales No.1920623.
Registered Office as above

Switchboard: 020 7066 1000
Web Site: http://www.fsa.gov.uk
*****************************************************************


------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Leon Sit
I noticed that issue too. However these are a set of real quote from
market so I was hoping that I did not use quantlib right instead of
data issue. What is the consequence of allowing negative forward rate
for other parts of quantlib if I am only working with swap, futures,
and equity derivatives?

Thanks.


On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
<[hidden email]> wrote:

> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
> than 8%.
>
> The same principle applies.
>
> -----Original Message-----
> From: Simon Ibbotson
> Sent: 19 October 2010 15:50
> To: 'Leon Sit'; [hidden email]
> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I suspect that you're generating negative forward rates at the point
> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
> enabled this as an option:- userconfig.hpp : uncomment out #define
> QL_NEGATIVE_RATES.
>
> You've not provided enough code to see whether your curve has properly
> defined the cash/swap transition.
>
> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
> followed by a 7% 2Y swap.
>
> Simon
>
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 15:33
> To: [hidden email]
> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> Hi All:
>
> I am using the following set of rates to bootstrap a yieldcurve
>
>       double[] rates = {
> 0.0022438 ,
> 0.0025469 ,
> 0.0025688 ,
> 0.0026156 ,
> 0.0027969 ,
> 0.0030375 ,
> 0.0036906 ,
> 0.0044063 ,
> 0.0051125 ,
> 0.0057 ,
> 0.0062838 ,
> 0.0068188 ,
> 0.0074125 ,
> 0.0080344 ,
> 0.00471 ,
> 0.007027 ,
> 0.00991 ,
> 0.01303 ,
> 0.016065 ,
> 0.018773 ,
> 0.021 ,
> 0.02282 ,
> 0.0243 ,
> 0.025525 ,
> 0.0266 ,
> 0.027458 ,
> 0.02835 ,
> 0.02889 ,
> 0.02939 ,
> 0.02988 ,
> 0.0302 ,
> 0.0305 ,
> 0.03075 ,
> 0.03096 ,
> 0.031655 ,
> 0.031923 ,
> 0.03222 ,
> 0.031975};
>
>       string[] labels = {"ON",
>                     "1w",
>                     "2w",
>                     "1m",
>                     "2m",
>                     "3m",
>                     "4m",
>                     "5m",
>                     "6m",
>                     "7m",
>                     "8m",
>                     "9m",
>                     "10m",
>                     "11m",
>                     "1y",
>                     "2y",
>                     "3y",
>                     "4y",
>                     "5y",
>                     "6y",
>                     "7y",
>                     "8y",
>                     "9y",
>                     "10y",
>                     "11y",
>                     "12y",
>                     "13y",
>                     "14y",
>                     "15y",
>                     "16y",
>                     "17y",
>                     "18y",
>                     "19y",
>                     "20y",
>                     "25y",
>                     "30y",
>                     "40y",
>                     "50y"};
>
> everything is fine until it iterates to the first swap quote. Does
> anybody know what I might have missed?
>
> I am using the following yield curve class
>
>  new PiecewiseYieldCurve<Discount, LogLinear>(
>               settlementDate, depositFutureSwapInstruments,
>               depositDayCounter, 10e-5));
>
> Thanks
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
>
>
> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>
> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>
> The Financial Services Authority (FSA)
> 25 The North Colonnade,
> Canary Wharf,
> London
> E14 5HS
> United Kingdom
>
> Registered as a Limited Company in England and Wales No.1920623.
> Registered Office as above
>
> Switchboard: 020 7066 1000
> Web Site: http://www.fsa.gov.uk
> *****************************************************************
>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Simon Ibbotson-2
See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.

-----Original Message-----
From: Leon Sit [mailto:[hidden email]]
Sent: 19 October 2010 16:02
To: Simon Ibbotson
Cc: [hidden email]
Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve

I noticed that issue too. However these are a set of real quote from
market so I was hoping that I did not use quantlib right instead of
data issue. What is the consequence of allowing negative forward rate
for other parts of quantlib if I am only working with swap, futures,
and equity derivatives?

Thanks.


On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
<[hidden email]> wrote:

> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
> than 8%.
>
> The same principle applies.
>
> -----Original Message-----
> From: Simon Ibbotson
> Sent: 19 October 2010 15:50
> To: 'Leon Sit'; [hidden email]
> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I suspect that you're generating negative forward rates at the point
> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
> enabled this as an option:- userconfig.hpp : uncomment out #define
> QL_NEGATIVE_RATES.
>
> You've not provided enough code to see whether your curve has properly
> defined the cash/swap transition.
>
> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
> followed by a 7% 2Y swap.
>
> Simon
>
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 15:33
> To: [hidden email]
> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> Hi All:
>
> I am using the following set of rates to bootstrap a yieldcurve
>
>       double[] rates = {
> 0.0022438 ,
> 0.0025469 ,
> 0.0025688 ,
> 0.0026156 ,
> 0.0027969 ,
> 0.0030375 ,
> 0.0036906 ,
> 0.0044063 ,
> 0.0051125 ,
> 0.0057 ,
> 0.0062838 ,
> 0.0068188 ,
> 0.0074125 ,
> 0.0080344 ,
> 0.00471 ,
> 0.007027 ,
> 0.00991 ,
> 0.01303 ,
> 0.016065 ,
> 0.018773 ,
> 0.021 ,
> 0.02282 ,
> 0.0243 ,
> 0.025525 ,
> 0.0266 ,
> 0.027458 ,
> 0.02835 ,
> 0.02889 ,
> 0.02939 ,
> 0.02988 ,
> 0.0302 ,
> 0.0305 ,
> 0.03075 ,
> 0.03096 ,
> 0.031655 ,
> 0.031923 ,
> 0.03222 ,
> 0.031975};
>
>       string[] labels = {"ON",
>                     "1w",
>                     "2w",
>                     "1m",
>                     "2m",
>                     "3m",
>                     "4m",
>                     "5m",
>                     "6m",
>                     "7m",
>                     "8m",
>                     "9m",
>                     "10m",
>                     "11m",
>                     "1y",
>                     "2y",
>                     "3y",
>                     "4y",
>                     "5y",
>                     "6y",
>                     "7y",
>                     "8y",
>                     "9y",
>                     "10y",
>                     "11y",
>                     "12y",
>                     "13y",
>                     "14y",
>                     "15y",
>                     "16y",
>                     "17y",
>                     "18y",
>                     "19y",
>                     "20y",
>                     "25y",
>                     "30y",
>                     "40y",
>                     "50y"};
>
> everything is fine until it iterates to the first swap quote. Does
> anybody know what I might have missed?
>
> I am using the following yield curve class
>
>  new PiecewiseYieldCurve<Discount, LogLinear>(
>               settlementDate, depositFutureSwapInstruments,
>               depositDayCounter, 10e-5));
>
> Thanks
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
>
>
> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>
> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>
> The Financial Services Authority (FSA)
> 25 The North Colonnade,
> Canary Wharf,
> London
> E14 5HS
> United Kingdom
>
> Registered as a Limited Company in England and Wales No.1920623.
> Registered Office as above
>
> Switchboard: 020 7066 1000
> Web Site: http://www.fsa.gov.uk
> *****************************************************************
>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Leon Sit
I will give that a try later. My boss says negative forward is not
reasonable for our team :)

Thanks a lot for the issue.

Leon



On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
<[hidden email]> wrote:

> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 16:02
> To: Simon Ibbotson
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I noticed that issue too. However these are a set of real quote from
> market so I was hoping that I did not use quantlib right instead of
> data issue. What is the consequence of allowing negative forward rate
> for other parts of quantlib if I am only working with swap, futures,
> and equity derivatives?
>
> Thanks.
>
>
> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
> <[hidden email]> wrote:
>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
>> than 8%.
>>
>> The same principle applies.
>>
>> -----Original Message-----
>> From: Simon Ibbotson
>> Sent: 19 October 2010 15:50
>> To: 'Leon Sit'; [hidden email]
>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> I suspect that you're generating negative forward rates at the point
>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
>> enabled this as an option:- userconfig.hpp : uncomment out #define
>> QL_NEGATIVE_RATES.
>>
>> You've not provided enough code to see whether your curve has properly
>> defined the cash/swap transition.
>>
>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
>> followed by a 7% 2Y swap.
>>
>> Simon
>>
>>
>> -----Original Message-----
>> From: Leon Sit [mailto:[hidden email]]
>> Sent: 19 October 2010 15:33
>> To: [hidden email]
>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> Hi All:
>>
>> I am using the following set of rates to bootstrap a yieldcurve
>>
>>       double[] rates = {
>> 0.0022438 ,
>> 0.0025469 ,
>> 0.0025688 ,
>> 0.0026156 ,
>> 0.0027969 ,
>> 0.0030375 ,
>> 0.0036906 ,
>> 0.0044063 ,
>> 0.0051125 ,
>> 0.0057 ,
>> 0.0062838 ,
>> 0.0068188 ,
>> 0.0074125 ,
>> 0.0080344 ,
>> 0.00471 ,
>> 0.007027 ,
>> 0.00991 ,
>> 0.01303 ,
>> 0.016065 ,
>> 0.018773 ,
>> 0.021 ,
>> 0.02282 ,
>> 0.0243 ,
>> 0.025525 ,
>> 0.0266 ,
>> 0.027458 ,
>> 0.02835 ,
>> 0.02889 ,
>> 0.02939 ,
>> 0.02988 ,
>> 0.0302 ,
>> 0.0305 ,
>> 0.03075 ,
>> 0.03096 ,
>> 0.031655 ,
>> 0.031923 ,
>> 0.03222 ,
>> 0.031975};
>>
>>       string[] labels = {"ON",
>>                     "1w",
>>                     "2w",
>>                     "1m",
>>                     "2m",
>>                     "3m",
>>                     "4m",
>>                     "5m",
>>                     "6m",
>>                     "7m",
>>                     "8m",
>>                     "9m",
>>                     "10m",
>>                     "11m",
>>                     "1y",
>>                     "2y",
>>                     "3y",
>>                     "4y",
>>                     "5y",
>>                     "6y",
>>                     "7y",
>>                     "8y",
>>                     "9y",
>>                     "10y",
>>                     "11y",
>>                     "12y",
>>                     "13y",
>>                     "14y",
>>                     "15y",
>>                     "16y",
>>                     "17y",
>>                     "18y",
>>                     "19y",
>>                     "20y",
>>                     "25y",
>>                     "30y",
>>                     "40y",
>>                     "50y"};
>>
>> everything is fine until it iterates to the first swap quote. Does
>> anybody know what I might have missed?
>>
>> I am using the following yield curve class
>>
>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>>               settlementDate, depositFutureSwapInstruments,
>>               depositDayCounter, 10e-5));
>>
>> Thanks
>>
>> ------------------------------------------------------------------------
>> ------
>> Download new Adobe(R) Flash(R) Builder(TM) 4
>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>> Flex(R) Builder(TM)) enable the development of rich applications that
>> run
>> across multiple browsers and platforms. Download your free trials today!
>> http://p.sf.net/sfu/adobe-dev2dev
>> _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>>
>>
>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>>
>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>>
>> The Financial Services Authority (FSA)
>> 25 The North Colonnade,
>> Canary Wharf,
>> London
>> E14 5HS
>> United Kingdom
>>
>> Registered as a Limited Company in England and Wales No.1920623.
>> Registered Office as above
>>
>> Switchboard: 020 7066 1000
>> Web Site: http://www.fsa.gov.uk
>> *****************************************************************
>>
>>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Simon Ibbotson-2
For reference, just because these quotes were seen in the market does not mean that they are liquid or even valid quotes!
Many banks only give out a live quote once a day (for Libor) and then update the other non-traded rates on an ad-hoc basis.

1Y swaps are not very liquid (in many currencies) as most banks hedge their positions with futures at the short end.


-----Original Message-----
From: Leon Sit [mailto:[hidden email]]
Sent: 19 October 2010 16:14
To: Simon Ibbotson
Cc: [hidden email]
Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve

I will give that a try later. My boss says negative forward is not
reasonable for our team :)

Thanks a lot for the issue.

Leon



On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
<[hidden email]> wrote:

> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 16:02
> To: Simon Ibbotson
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I noticed that issue too. However these are a set of real quote from
> market so I was hoping that I did not use quantlib right instead of
> data issue. What is the consequence of allowing negative forward rate
> for other parts of quantlib if I am only working with swap, futures,
> and equity derivatives?
>
> Thanks.
>
>
> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
> <[hidden email]> wrote:
>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
>> than 8%.
>>
>> The same principle applies.
>>
>> -----Original Message-----
>> From: Simon Ibbotson
>> Sent: 19 October 2010 15:50
>> To: 'Leon Sit'; [hidden email]
>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> I suspect that you're generating negative forward rates at the point
>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
>> enabled this as an option:- userconfig.hpp : uncomment out #define
>> QL_NEGATIVE_RATES.
>>
>> You've not provided enough code to see whether your curve has properly
>> defined the cash/swap transition.
>>
>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
>> followed by a 7% 2Y swap.
>>
>> Simon
>>
>>
>> -----Original Message-----
>> From: Leon Sit [mailto:[hidden email]]
>> Sent: 19 October 2010 15:33
>> To: [hidden email]
>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> Hi All:
>>
>> I am using the following set of rates to bootstrap a yieldcurve
>>
>>       double[] rates = {
>> 0.0022438 ,
>> 0.0025469 ,
>> 0.0025688 ,
>> 0.0026156 ,
>> 0.0027969 ,
>> 0.0030375 ,
>> 0.0036906 ,
>> 0.0044063 ,
>> 0.0051125 ,
>> 0.0057 ,
>> 0.0062838 ,
>> 0.0068188 ,
>> 0.0074125 ,
>> 0.0080344 ,
>> 0.00471 ,
>> 0.007027 ,
>> 0.00991 ,
>> 0.01303 ,
>> 0.016065 ,
>> 0.018773 ,
>> 0.021 ,
>> 0.02282 ,
>> 0.0243 ,
>> 0.025525 ,
>> 0.0266 ,
>> 0.027458 ,
>> 0.02835 ,
>> 0.02889 ,
>> 0.02939 ,
>> 0.02988 ,
>> 0.0302 ,
>> 0.0305 ,
>> 0.03075 ,
>> 0.03096 ,
>> 0.031655 ,
>> 0.031923 ,
>> 0.03222 ,
>> 0.031975};
>>
>>       string[] labels = {"ON",
>>                     "1w",
>>                     "2w",
>>                     "1m",
>>                     "2m",
>>                     "3m",
>>                     "4m",
>>                     "5m",
>>                     "6m",
>>                     "7m",
>>                     "8m",
>>                     "9m",
>>                     "10m",
>>                     "11m",
>>                     "1y",
>>                     "2y",
>>                     "3y",
>>                     "4y",
>>                     "5y",
>>                     "6y",
>>                     "7y",
>>                     "8y",
>>                     "9y",
>>                     "10y",
>>                     "11y",
>>                     "12y",
>>                     "13y",
>>                     "14y",
>>                     "15y",
>>                     "16y",
>>                     "17y",
>>                     "18y",
>>                     "19y",
>>                     "20y",
>>                     "25y",
>>                     "30y",
>>                     "40y",
>>                     "50y"};
>>
>> everything is fine until it iterates to the first swap quote. Does
>> anybody know what I might have missed?
>>
>> I am using the following yield curve class
>>
>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>>               settlementDate, depositFutureSwapInstruments,
>>               depositDayCounter, 10e-5));
>>
>> Thanks
>>
>> ------------------------------------------------------------------------
>> ------
>> Download new Adobe(R) Flash(R) Builder(TM) 4
>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>> Flex(R) Builder(TM)) enable the development of rich applications that
>> run
>> across multiple browsers and platforms. Download your free trials today!
>> http://p.sf.net/sfu/adobe-dev2dev
>> _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>>
>>
>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>>
>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>>
>> The Financial Services Authority (FSA)
>> 25 The North Colonnade,
>> Canary Wharf,
>> London
>> E14 5HS
>> United Kingdom
>>
>> Registered as a Limited Company in England and Wales No.1920623.
>> Registered Office as above
>>
>> Switchboard: 020 7066 1000
>> Web Site: http://www.fsa.gov.uk
>> *****************************************************************
>>
>>
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Ferdinando M. Ametrano-3
1Y swap is based on 3M euribor, so it's comparable with 3 months rate

no way it's going to be in line with a 11M rate with the current
market conditions.

people keep bootstrapping one single curve with inhomogeneous rates,
but it's not possible anymore.

Attend the QuantLib forum for more details on this issue (or wait for
the slides)

ciao -- Nando


On Tue, Oct 19, 2010 at 5:18 PM, Simon Ibbotson
<[hidden email]> wrote:

> For reference, just because these quotes were seen in the market does not mean that they are liquid or even valid quotes!
> Many banks only give out a live quote once a day (for Libor) and then update the other non-traded rates on an ad-hoc basis.
>
> 1Y swaps are not very liquid (in many currencies) as most banks hedge their positions with futures at the short end.
>
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 16:14
> To: Simon Ibbotson
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I will give that a try later. My boss says negative forward is not
> reasonable for our team :)
>
> Thanks a lot for the issue.
>
> Leon
>
>
>
> On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
> <[hidden email]> wrote:
>> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
>>
>> -----Original Message-----
>> From: Leon Sit [mailto:[hidden email]]
>> Sent: 19 October 2010 16:02
>> To: Simon Ibbotson
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> I noticed that issue too. However these are a set of real quote from
>> market so I was hoping that I did not use quantlib right instead of
>> data issue. What is the consequence of allowing negative forward rate
>> for other parts of quantlib if I am only working with swap, futures,
>> and equity derivatives?
>>
>> Thanks.
>>
>>
>> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
>> <[hidden email]> wrote:
>>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
>>> than 8%.
>>>
>>> The same principle applies.
>>>
>>> -----Original Message-----
>>> From: Simon Ibbotson
>>> Sent: 19 October 2010 15:50
>>> To: 'Leon Sit'; [hidden email]
>>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>
>>> I suspect that you're generating negative forward rates at the point
>>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
>>> enabled this as an option:- userconfig.hpp : uncomment out #define
>>> QL_NEGATIVE_RATES.
>>>
>>> You've not provided enough code to see whether your curve has properly
>>> defined the cash/swap transition.
>>>
>>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
>>> followed by a 7% 2Y swap.
>>>
>>> Simon
>>>
>>>
>>> -----Original Message-----
>>> From: Leon Sit [mailto:[hidden email]]
>>> Sent: 19 October 2010 15:33
>>> To: [hidden email]
>>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>
>>> Hi All:
>>>
>>> I am using the following set of rates to bootstrap a yieldcurve
>>>
>>>       double[] rates = {
>>> 0.0022438 ,
>>> 0.0025469 ,
>>> 0.0025688 ,
>>> 0.0026156 ,
>>> 0.0027969 ,
>>> 0.0030375 ,
>>> 0.0036906 ,
>>> 0.0044063 ,
>>> 0.0051125 ,
>>> 0.0057 ,
>>> 0.0062838 ,
>>> 0.0068188 ,
>>> 0.0074125 ,
>>> 0.0080344 ,
>>> 0.00471 ,
>>> 0.007027 ,
>>> 0.00991 ,
>>> 0.01303 ,
>>> 0.016065 ,
>>> 0.018773 ,
>>> 0.021 ,
>>> 0.02282 ,
>>> 0.0243 ,
>>> 0.025525 ,
>>> 0.0266 ,
>>> 0.027458 ,
>>> 0.02835 ,
>>> 0.02889 ,
>>> 0.02939 ,
>>> 0.02988 ,
>>> 0.0302 ,
>>> 0.0305 ,
>>> 0.03075 ,
>>> 0.03096 ,
>>> 0.031655 ,
>>> 0.031923 ,
>>> 0.03222 ,
>>> 0.031975};
>>>
>>>       string[] labels = {"ON",
>>>                     "1w",
>>>                     "2w",
>>>                     "1m",
>>>                     "2m",
>>>                     "3m",
>>>                     "4m",
>>>                     "5m",
>>>                     "6m",
>>>                     "7m",
>>>                     "8m",
>>>                     "9m",
>>>                     "10m",
>>>                     "11m",
>>>                     "1y",
>>>                     "2y",
>>>                     "3y",
>>>                     "4y",
>>>                     "5y",
>>>                     "6y",
>>>                     "7y",
>>>                     "8y",
>>>                     "9y",
>>>                     "10y",
>>>                     "11y",
>>>                     "12y",
>>>                     "13y",
>>>                     "14y",
>>>                     "15y",
>>>                     "16y",
>>>                     "17y",
>>>                     "18y",
>>>                     "19y",
>>>                     "20y",
>>>                     "25y",
>>>                     "30y",
>>>                     "40y",
>>>                     "50y"};
>>>
>>> everything is fine until it iterates to the first swap quote. Does
>>> anybody know what I might have missed?
>>>
>>> I am using the following yield curve class
>>>
>>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>>>               settlementDate, depositFutureSwapInstruments,
>>>               depositDayCounter, 10e-5));
>>>
>>> Thanks
>>>
>>> ------------------------------------------------------------------------
>>> ------
>>> Download new Adobe(R) Flash(R) Builder(TM) 4
>>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>>> Flex(R) Builder(TM)) enable the development of rich applications that
>>> run
>>> across multiple browsers and platforms. Download your free trials today!
>>> http://p.sf.net/sfu/adobe-dev2dev
>>> _______________________________________________
>>> QuantLib-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>
>>>
>>>
>>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>>>
>>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
>>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>>>
>>> The Financial Services Authority (FSA)
>>> 25 The North Colonnade,
>>> Canary Wharf,
>>> London
>>> E14 5HS
>>> United Kingdom
>>>
>>> Registered as a Limited Company in England and Wales No.1920623.
>>> Registered Office as above
>>>
>>> Switchboard: 020 7066 1000
>>> Web Site: http://www.fsa.gov.uk
>>> *****************************************************************
>>>
>>>
>>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Simon Ibbotson-2
Hi Nando,

Nowhere does the OP state that the curve is for EUR, so it could have a 6M or even a 12M floating rate (not to mention 90D, 12W or 4W markets). However, it is likely (given the values) that it does include a 3M basis.

Cheers,
Simon


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Ferdinando Ametrano
Sent: 25 October 2010 11:56
To: Simon Ibbotson
Cc: Leon Sit; [hidden email]
Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve

1Y swap is based on 3M euribor, so it's comparable with 3 months rate

no way it's going to be in line with a 11M rate with the current
market conditions.

people keep bootstrapping one single curve with inhomogeneous rates,
but it's not possible anymore.

Attend the QuantLib forum for more details on this issue (or wait for
the slides)

ciao -- Nando


On Tue, Oct 19, 2010 at 5:18 PM, Simon Ibbotson
<[hidden email]> wrote:

> For reference, just because these quotes were seen in the market does not mean that they are liquid or even valid quotes!
> Many banks only give out a live quote once a day (for Libor) and then update the other non-traded rates on an ad-hoc basis.
>
> 1Y swaps are not very liquid (in many currencies) as most banks hedge their positions with futures at the short end.
>
>
> -----Original Message-----
> From: Leon Sit [mailto:[hidden email]]
> Sent: 19 October 2010 16:14
> To: Simon Ibbotson
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> I will give that a try later. My boss says negative forward is not
> reasonable for our team :)
>
> Thanks a lot for the issue.
>
> Leon
>
>
>
> On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
> <[hidden email]> wrote:
>> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
>>
>> -----Original Message-----
>> From: Leon Sit [mailto:[hidden email]]
>> Sent: 19 October 2010 16:02
>> To: Simon Ibbotson
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> I noticed that issue too. However these are a set of real quote from
>> market so I was hoping that I did not use quantlib right instead of
>> data issue. What is the consequence of allowing negative forward rate
>> for other parts of quantlib if I am only working with swap, futures,
>> and equity derivatives?
>>
>> Thanks.
>>
>>
>> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
>> <[hidden email]> wrote:
>>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
>>> than 8%.
>>>
>>> The same principle applies.
>>>
>>> -----Original Message-----
>>> From: Simon Ibbotson
>>> Sent: 19 October 2010 15:50
>>> To: 'Leon Sit'; [hidden email]
>>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>
>>> I suspect that you're generating negative forward rates at the point
>>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
>>> enabled this as an option:- userconfig.hpp : uncomment out #define
>>> QL_NEGATIVE_RATES.
>>>
>>> You've not provided enough code to see whether your curve has properly
>>> defined the cash/swap transition.
>>>
>>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
>>> followed by a 7% 2Y swap.
>>>
>>> Simon
>>>
>>>
>>> -----Original Message-----
>>> From: Leon Sit [mailto:[hidden email]]
>>> Sent: 19 October 2010 15:33
>>> To: [hidden email]
>>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>
>>> Hi All:
>>>
>>> I am using the following set of rates to bootstrap a yieldcurve
>>>
>>>       double[] rates = {
>>> 0.0022438 ,
>>> 0.0025469 ,
>>> 0.0025688 ,
>>> 0.0026156 ,
>>> 0.0027969 ,
>>> 0.0030375 ,
>>> 0.0036906 ,
>>> 0.0044063 ,
>>> 0.0051125 ,
>>> 0.0057 ,
>>> 0.0062838 ,
>>> 0.0068188 ,
>>> 0.0074125 ,
>>> 0.0080344 ,
>>> 0.00471 ,
>>> 0.007027 ,
>>> 0.00991 ,
>>> 0.01303 ,
>>> 0.016065 ,
>>> 0.018773 ,
>>> 0.021 ,
>>> 0.02282 ,
>>> 0.0243 ,
>>> 0.025525 ,
>>> 0.0266 ,
>>> 0.027458 ,
>>> 0.02835 ,
>>> 0.02889 ,
>>> 0.02939 ,
>>> 0.02988 ,
>>> 0.0302 ,
>>> 0.0305 ,
>>> 0.03075 ,
>>> 0.03096 ,
>>> 0.031655 ,
>>> 0.031923 ,
>>> 0.03222 ,
>>> 0.031975};
>>>
>>>       string[] labels = {"ON",
>>>                     "1w",
>>>                     "2w",
>>>                     "1m",
>>>                     "2m",
>>>                     "3m",
>>>                     "4m",
>>>                     "5m",
>>>                     "6m",
>>>                     "7m",
>>>                     "8m",
>>>                     "9m",
>>>                     "10m",
>>>                     "11m",
>>>                     "1y",
>>>                     "2y",
>>>                     "3y",
>>>                     "4y",
>>>                     "5y",
>>>                     "6y",
>>>                     "7y",
>>>                     "8y",
>>>                     "9y",
>>>                     "10y",
>>>                     "11y",
>>>                     "12y",
>>>                     "13y",
>>>                     "14y",
>>>                     "15y",
>>>                     "16y",
>>>                     "17y",
>>>                     "18y",
>>>                     "19y",
>>>                     "20y",
>>>                     "25y",
>>>                     "30y",
>>>                     "40y",
>>>                     "50y"};
>>>
>>> everything is fine until it iterates to the first swap quote. Does
>>> anybody know what I might have missed?
>>>
>>> I am using the following yield curve class
>>>
>>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>>>               settlementDate, depositFutureSwapInstruments,
>>>               depositDayCounter, 10e-5));
>>>
>>> Thanks
>>>
>>> ------------------------------------------------------------------------
>>> ------
>>> Download new Adobe(R) Flash(R) Builder(TM) 4
>>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>>> Flex(R) Builder(TM)) enable the development of rich applications that
>>> run
>>> across multiple browsers and platforms. Download your free trials today!
>>> http://p.sf.net/sfu/adobe-dev2dev
>>> _______________________________________________
>>> QuantLib-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>
>>>
>>>
>>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>>>
>>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
>>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>>>
>>> The Financial Services Authority (FSA)
>>> 25 The North Colonnade,
>>> Canary Wharf,
>>> London
>>> E14 5HS
>>> United Kingdom
>>>
>>> Registered as a Limited Company in England and Wales No.1920623.
>>> Registered Office as above
>>>
>>> Switchboard: 020 7066 1000
>>> Web Site: http://www.fsa.gov.uk
>>> *****************************************************************
>>>
>>>
>>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Ferdinando M. Ametrano-3
Hi Simon

you're right, anyway whatever major currency is considered (at least
EUR, USD, GBP) a curve built using "ON",  "1w",  "2w",  "1m",  "2m",
"3m",  "4m", "5m", "6m", "7m", "8m", "9m", "10m", "11m", "1y", "2y",
etc is very much old school inhomogeneous approach

Unless it's used for estimating some funding cost (and in this case
the xY swap should be spreaded) there is no way you can bootstrap such
a curve in the current market conditions without negative rates

ciao -- Nando

On Mon, Oct 25, 2010 at 1:01 PM, Simon Ibbotson
<[hidden email]> wrote:

>
> Hi Nando,
>
> Nowhere does the OP state that the curve is for EUR, so it could have a 6M or even a 12M floating rate (not to mention 90D, 12W or 4W markets). However, it is likely (given the values) that it does include a 3M basis.
>
> Cheers,
> Simon
>
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Ferdinando Ametrano
> Sent: 25 October 2010 11:56
> To: Simon Ibbotson
> Cc: Leon Sit; [hidden email]
> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>
> 1Y swap is based on 3M euribor, so it's comparable with 3 months rate
>
> no way it's going to be in line with a 11M rate with the current
> market conditions.
>
> people keep bootstrapping one single curve with inhomogeneous rates,
> but it's not possible anymore.
>
> Attend the QuantLib forum for more details on this issue (or wait for
> the slides)
>
> ciao -- Nando
>
>
> On Tue, Oct 19, 2010 at 5:18 PM, Simon Ibbotson
> <[hidden email]> wrote:
> > For reference, just because these quotes were seen in the market does not mean that they are liquid or even valid quotes!
> > Many banks only give out a live quote once a day (for Libor) and then update the other non-traded rates on an ad-hoc basis.
> >
> > 1Y swaps are not very liquid (in many currencies) as most banks hedge their positions with futures at the short end.
> >
> >
> > -----Original Message-----
> > From: Leon Sit [mailto:[hidden email]]
> > Sent: 19 October 2010 16:14
> > To: Simon Ibbotson
> > Cc: [hidden email]
> > Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
> >
> > I will give that a try later. My boss says negative forward is not
> > reasonable for our team :)
> >
> > Thanks a lot for the issue.
> >
> > Leon
> >
> >
> >
> > On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
> > <[hidden email]> wrote:
> >> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
> >>
> >> -----Original Message-----
> >> From: Leon Sit [mailto:[hidden email]]
> >> Sent: 19 October 2010 16:02
> >> To: Simon Ibbotson
> >> Cc: [hidden email]
> >> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
> >>
> >> I noticed that issue too. However these are a set of real quote from
> >> market so I was hoping that I did not use quantlib right instead of
> >> data issue. What is the consequence of allowing negative forward rate
> >> for other parts of quantlib if I am only working with swap, futures,
> >> and equity derivatives?
> >>
> >> Thanks.
> >>
> >>
> >> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
> >> <[hidden email]> wrote:
> >>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
> >>> than 8%.
> >>>
> >>> The same principle applies.
> >>>
> >>> -----Original Message-----
> >>> From: Simon Ibbotson
> >>> Sent: 19 October 2010 15:50
> >>> To: 'Leon Sit'; [hidden email]
> >>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
> >>>
> >>> I suspect that you're generating negative forward rates at the point
> >>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
> >>> enabled this as an option:- userconfig.hpp : uncomment out #define
> >>> QL_NEGATIVE_RATES.
> >>>
> >>> You've not provided enough code to see whether your curve has properly
> >>> defined the cash/swap transition.
> >>>
> >>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
> >>> followed by a 7% 2Y swap.
> >>>
> >>> Simon
> >>>
> >>>
> >>> -----Original Message-----
> >>> From: Leon Sit [mailto:[hidden email]]
> >>> Sent: 19 October 2010 15:33
> >>> To: [hidden email]
> >>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
> >>>
> >>> Hi All:
> >>>
> >>> I am using the following set of rates to bootstrap a yieldcurve
> >>>
> >>>       double[] rates = {
> >>> 0.0022438 ,
> >>> 0.0025469 ,
> >>> 0.0025688 ,
> >>> 0.0026156 ,
> >>> 0.0027969 ,
> >>> 0.0030375 ,
> >>> 0.0036906 ,
> >>> 0.0044063 ,
> >>> 0.0051125 ,
> >>> 0.0057 ,
> >>> 0.0062838 ,
> >>> 0.0068188 ,
> >>> 0.0074125 ,
> >>> 0.0080344 ,
> >>> 0.00471 ,
> >>> 0.007027 ,
> >>> 0.00991 ,
> >>> 0.01303 ,
> >>> 0.016065 ,
> >>> 0.018773 ,
> >>> 0.021 ,
> >>> 0.02282 ,
> >>> 0.0243 ,
> >>> 0.025525 ,
> >>> 0.0266 ,
> >>> 0.027458 ,
> >>> 0.02835 ,
> >>> 0.02889 ,
> >>> 0.02939 ,
> >>> 0.02988 ,
> >>> 0.0302 ,
> >>> 0.0305 ,
> >>> 0.03075 ,
> >>> 0.03096 ,
> >>> 0.031655 ,
> >>> 0.031923 ,
> >>> 0.03222 ,
> >>> 0.031975};
> >>>
> >>>       string[] labels = {"ON",
> >>>                     "1w",
> >>>                     "2w",
> >>>                     "1m",
> >>>                     "2m",
> >>>                     "3m",
> >>>                     "4m",
> >>>                     "5m",
> >>>                     "6m",
> >>>                     "7m",
> >>>                     "8m",
> >>>                     "9m",
> >>>                     "10m",
> >>>                     "11m",
> >>>                     "1y",
> >>>                     "2y",
> >>>                     "3y",
> >>>                     "4y",
> >>>                     "5y",
> >>>                     "6y",
> >>>                     "7y",
> >>>                     "8y",
> >>>                     "9y",
> >>>                     "10y",
> >>>                     "11y",
> >>>                     "12y",
> >>>                     "13y",
> >>>                     "14y",
> >>>                     "15y",
> >>>                     "16y",
> >>>                     "17y",
> >>>                     "18y",
> >>>                     "19y",
> >>>                     "20y",
> >>>                     "25y",
> >>>                     "30y",
> >>>                     "40y",
> >>>                     "50y"};
> >>>
> >>> everything is fine until it iterates to the first swap quote. Does
> >>> anybody know what I might have missed?
> >>>
> >>> I am using the following yield curve class
> >>>
> >>>  new PiecewiseYieldCurve<Discount, LogLinear>(
> >>>               settlementDate, depositFutureSwapInstruments,
> >>>               depositDayCounter, 10e-5));
> >>>
> >>> Thanks
> >>>
> >>> ------------------------------------------------------------------------
> >>> ------
> >>> Download new Adobe(R) Flash(R) Builder(TM) 4
> >>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> >>> Flex(R) Builder(TM)) enable the development of rich applications that
> >>> run
> >>> across multiple browsers and platforms. Download your free trials today!
> >>> http://p.sf.net/sfu/adobe-dev2dev
> >>> _______________________________________________
> >>> QuantLib-users mailing list
> >>> [hidden email]
> >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
> >>>
> >>>
> >>>
> >>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
> >>>
> >>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
> >>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
> >>>
> >>> The Financial Services Authority (FSA)
> >>> 25 The North Colonnade,
> >>> Canary Wharf,
> >>> London
> >>> E14 5HS
> >>> United Kingdom
> >>>
> >>> Registered as a Limited Company in England and Wales No.1920623.
> >>> Registered Office as above
> >>>
> >>> Switchboard: 020 7066 1000
> >>> Web Site: http://www.fsa.gov.uk
> >>> *****************************************************************
> >>>
> >>>
> >>
> >
> > ------------------------------------------------------------------------------
> > Download new Adobe(R) Flash(R) Builder(TM) 4
> > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> > Flex(R) Builder(TM)) enable the development of rich applications that run
> > across multiple browsers and platforms. Download your free trials today!
> > http://p.sf.net/sfu/adobe-dev2dev
> > _______________________________________________
> > QuantLib-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-users
> >

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

Leon Sit
HI Ferdinando,

What are the new school ways to bootstrap yield curve? Any paper
suggestion is strongly appreciated.

Thanks






On Mon, Oct 25, 2010 at 10:47 AM, Ferdinando Ametrano
<[hidden email]> wrote:

> Hi Simon
>
> you're right, anyway whatever major currency is considered (at least
> EUR, USD, GBP) a curve built using "ON",  "1w",  "2w",  "1m",  "2m",
> "3m",  "4m", "5m", "6m", "7m", "8m", "9m", "10m", "11m", "1y", "2y",
> etc is very much old school inhomogeneous approach
>
> Unless it's used for estimating some funding cost (and in this case
> the xY swap should be spreaded) there is no way you can bootstrap such
> a curve in the current market conditions without negative rates
>
> ciao -- Nando
>
> On Mon, Oct 25, 2010 at 1:01 PM, Simon Ibbotson
> <[hidden email]> wrote:
>>
>> Hi Nando,
>>
>> Nowhere does the OP state that the curve is for EUR, so it could have a 6M or even a 12M floating rate (not to mention 90D, 12W or 4W markets). However, it is likely (given the values) that it does include a 3M basis.
>>
>> Cheers,
>> Simon
>>
>>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]] On Behalf Of Ferdinando Ametrano
>> Sent: 25 October 2010 11:56
>> To: Simon Ibbotson
>> Cc: Leon Sit; [hidden email]
>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>
>> 1Y swap is based on 3M euribor, so it's comparable with 3 months rate
>>
>> no way it's going to be in line with a 11M rate with the current
>> market conditions.
>>
>> people keep bootstrapping one single curve with inhomogeneous rates,
>> but it's not possible anymore.
>>
>> Attend the QuantLib forum for more details on this issue (or wait for
>> the slides)
>>
>> ciao -- Nando
>>
>>
>> On Tue, Oct 19, 2010 at 5:18 PM, Simon Ibbotson
>> <[hidden email]> wrote:
>> > For reference, just because these quotes were seen in the market does not mean that they are liquid or even valid quotes!
>> > Many banks only give out a live quote once a day (for Libor) and then update the other non-traded rates on an ad-hoc basis.
>> >
>> > 1Y swaps are not very liquid (in many currencies) as most banks hedge their positions with futures at the short end.
>> >
>> >
>> > -----Original Message-----
>> > From: Leon Sit [mailto:[hidden email]]
>> > Sent: 19 October 2010 16:14
>> > To: Simon Ibbotson
>> > Cc: [hidden email]
>> > Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>> >
>> > I will give that a try later. My boss says negative forward is not
>> > reasonable for our team :)
>> >
>> > Thanks a lot for the issue.
>> >
>> > Leon
>> >
>> >
>> >
>> > On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
>> > <[hidden email]> wrote:
>> >> See if it works first - then worry about the rest of the library. It shouldn't matter much, the #define is specific for rates in yieldcurves.
>> >>
>> >> -----Original Message-----
>> >> From: Leon Sit [mailto:[hidden email]]
>> >> Sent: 19 October 2010 16:02
>> >> To: Simon Ibbotson
>> >> Cc: [hidden email]
>> >> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>> >>
>> >> I noticed that issue too. However these are a set of real quote from
>> >> market so I was hoping that I did not use quantlib right instead of
>> >> data issue. What is the consequence of allowing negative forward rate
>> >> for other parts of quantlib if I am only working with swap, futures,
>> >> and equity derivatives?
>> >>
>> >> Thanks.
>> >>
>> >>
>> >> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
>> >> <[hidden email]> wrote:
>> >>> Sorry, all those figures should be divided by 10... e.g. 0.8% rather
>> >>> than 8%.
>> >>>
>> >>> The same principle applies.
>> >>>
>> >>> -----Original Message-----
>> >>> From: Simon Ibbotson
>> >>> Sent: 19 October 2010 15:50
>> >>> To: 'Leon Sit'; [hidden email]
>> >>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>> >>>
>> >>> I suspect that you're generating negative forward rates at the point
>> >>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and have not
>> >>> enabled this as an option:- userconfig.hpp : uncomment out #define
>> >>> QL_NEGATIVE_RATES.
>> >>>
>> >>> You've not provided enough code to see whether your curve has properly
>> >>> defined the cash/swap transition.
>> >>>
>> >>> The curve does look rather unrealistic: 8% 11M cash then 4.71% 1Y swap,
>> >>> followed by a 7% 2Y swap.
>> >>>
>> >>> Simon
>> >>>
>> >>>
>> >>> -----Original Message-----
>> >>> From: Leon Sit [mailto:[hidden email]]
>> >>> Sent: 19 October 2010 15:33
>> >>> To: [hidden email]
>> >>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>> >>>
>> >>> Hi All:
>> >>>
>> >>> I am using the following set of rates to bootstrap a yieldcurve
>> >>>
>> >>>       double[] rates = {
>> >>> 0.0022438 ,
>> >>> 0.0025469 ,
>> >>> 0.0025688 ,
>> >>> 0.0026156 ,
>> >>> 0.0027969 ,
>> >>> 0.0030375 ,
>> >>> 0.0036906 ,
>> >>> 0.0044063 ,
>> >>> 0.0051125 ,
>> >>> 0.0057 ,
>> >>> 0.0062838 ,
>> >>> 0.0068188 ,
>> >>> 0.0074125 ,
>> >>> 0.0080344 ,
>> >>> 0.00471 ,
>> >>> 0.007027 ,
>> >>> 0.00991 ,
>> >>> 0.01303 ,
>> >>> 0.016065 ,
>> >>> 0.018773 ,
>> >>> 0.021 ,
>> >>> 0.02282 ,
>> >>> 0.0243 ,
>> >>> 0.025525 ,
>> >>> 0.0266 ,
>> >>> 0.027458 ,
>> >>> 0.02835 ,
>> >>> 0.02889 ,
>> >>> 0.02939 ,
>> >>> 0.02988 ,
>> >>> 0.0302 ,
>> >>> 0.0305 ,
>> >>> 0.03075 ,
>> >>> 0.03096 ,
>> >>> 0.031655 ,
>> >>> 0.031923 ,
>> >>> 0.03222 ,
>> >>> 0.031975};
>> >>>
>> >>>       string[] labels = {"ON",
>> >>>                     "1w",
>> >>>                     "2w",
>> >>>                     "1m",
>> >>>                     "2m",
>> >>>                     "3m",
>> >>>                     "4m",
>> >>>                     "5m",
>> >>>                     "6m",
>> >>>                     "7m",
>> >>>                     "8m",
>> >>>                     "9m",
>> >>>                     "10m",
>> >>>                     "11m",
>> >>>                     "1y",
>> >>>                     "2y",
>> >>>                     "3y",
>> >>>                     "4y",
>> >>>                     "5y",
>> >>>                     "6y",
>> >>>                     "7y",
>> >>>                     "8y",
>> >>>                     "9y",
>> >>>                     "10y",
>> >>>                     "11y",
>> >>>                     "12y",
>> >>>                     "13y",
>> >>>                     "14y",
>> >>>                     "15y",
>> >>>                     "16y",
>> >>>                     "17y",
>> >>>                     "18y",
>> >>>                     "19y",
>> >>>                     "20y",
>> >>>                     "25y",
>> >>>                     "30y",
>> >>>                     "40y",
>> >>>                     "50y"};
>> >>>
>> >>> everything is fine until it iterates to the first swap quote. Does
>> >>> anybody know what I might have missed?
>> >>>
>> >>> I am using the following yield curve class
>> >>>
>> >>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>> >>>               settlementDate, depositFutureSwapInstruments,
>> >>>               depositDayCounter, 10e-5));
>> >>>
>> >>> Thanks
>> >>>
>> >>> ------------------------------------------------------------------------
>> >>> ------
>> >>> Download new Adobe(R) Flash(R) Builder(TM) 4
>> >>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>> >>> Flex(R) Builder(TM)) enable the development of rich applications that
>> >>> run
>> >>> across multiple browsers and platforms. Download your free trials today!
>> >>> http://p.sf.net/sfu/adobe-dev2dev
>> >>> _______________________________________________
>> >>> QuantLib-users mailing list
>> >>> [hidden email]
>> >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>> >>>
>> >>>
>> >>>
>> >>> This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify [hidden email] immediately and delete the email from your computer.
>> >>>
>> >>> The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.
>> >>> This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from
>> >>>
>> >>> The Financial Services Authority (FSA)
>> >>> 25 The North Colonnade,
>> >>> Canary Wharf,
>> >>> London
>> >>> E14 5HS
>> >>> United Kingdom
>> >>>
>> >>> Registered as a Limited Company in England and Wales No.1920623.
>> >>> Registered Office as above
>> >>>
>> >>> Switchboard: 020 7066 1000
>> >>> Web Site: http://www.fsa.gov.uk
>> >>> *****************************************************************
>> >>>
>> >>>
>> >>
>> >
>> > ------------------------------------------------------------------------------
>> > Download new Adobe(R) Flash(R) Builder(TM) 4
>> > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>> > Flex(R) Builder(TM)) enable the development of rich applications that run
>> > across multiple browsers and platforms. Download your free trials today!
>> > http://p.sf.net/sfu/adobe-dev2dev
>> > _______________________________________________
>> > QuantLib-users mailing list
>> > [hidden email]
>> > https://lists.sourceforge.net/lists/listinfo/quantlib-users
>> >
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot bootstrap a yieldcurve

DHar
Hi Simon,

Heres a paper by Nando (Fernando M. Ametrano), and Marco Bianchetti.

http://www.bianchetti.org/Finance/BootstrappingTheIlliquidity-v1.0.pdf

Plus a more recent document by Andrea Pallavicini and Marco Tarenghi

http://www.scribd.com/doc/33566467/Interest-Rates-Models-With-Multiple-Yield-Curves

Cheers
David


On 26 Oct 2010, at 22:08, Leon Sit wrote:

> HI Ferdinando,
>
> What are the new school ways to bootstrap yield curve? Any paper
> suggestion is strongly appreciated.
>
> Thanks
>
>
>
>
>
>
> On Mon, Oct 25, 2010 at 10:47 AM, Ferdinando Ametrano
> <[hidden email]> wrote:
>> Hi Simon
>>
>> you're right, anyway whatever major currency is considered (at least
>> EUR, USD, GBP) a curve built using "ON",  "1w",  "2w",  "1m",  "2m",
>> "3m",  "4m", "5m", "6m", "7m", "8m", "9m", "10m", "11m", "1y", "2y",
>> etc is very much old school inhomogeneous approach
>>
>> Unless it's used for estimating some funding cost (and in this case
>> the xY swap should be spreaded) there is no way you can bootstrap  
>> such
>> a curve in the current market conditions without negative rates
>>
>> ciao -- Nando
>>
>> On Mon, Oct 25, 2010 at 1:01 PM, Simon Ibbotson
>> <[hidden email]> wrote:
>>>
>>> Hi Nando,
>>>
>>> Nowhere does the OP state that the curve is for EUR, so it could  
>>> have a 6M or even a 12M floating rate (not to mention 90D, 12W or  
>>> 4W markets). However, it is likely (given the values) that it does  
>>> include a 3M basis.
>>>
>>> Cheers,
>>> Simon
>>>
>>>
>>> -----Original Message-----
>>> From: [hidden email] [mailto:[hidden email]
>>> ] On Behalf Of Ferdinando Ametrano
>>> Sent: 25 October 2010 11:56
>>> To: Simon Ibbotson
>>> Cc: Leon Sit; [hidden email]
>>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>
>>> 1Y swap is based on 3M euribor, so it's comparable with 3 months  
>>> rate
>>>
>>> no way it's going to be in line with a 11M rate with the current
>>> market conditions.
>>>
>>> people keep bootstrapping one single curve with inhomogeneous rates,
>>> but it's not possible anymore.
>>>
>>> Attend the QuantLib forum for more details on this issue (or wait  
>>> for
>>> the slides)
>>>
>>> ciao -- Nando
>>>
>>>
>>> On Tue, Oct 19, 2010 at 5:18 PM, Simon Ibbotson
>>> <[hidden email]> wrote:
>>>> For reference, just because these quotes were seen in the market  
>>>> does not mean that they are liquid or even valid quotes!
>>>> Many banks only give out a live quote once a day (for Libor) and  
>>>> then update the other non-traded rates on an ad-hoc basis.
>>>>
>>>> 1Y swaps are not very liquid (in many currencies) as most banks  
>>>> hedge their positions with futures at the short end.
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Leon Sit [mailto:[hidden email]]
>>>> Sent: 19 October 2010 16:14
>>>> To: Simon Ibbotson
>>>> Cc: [hidden email]
>>>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>>
>>>> I will give that a try later. My boss says negative forward is not
>>>> reasonable for our team :)
>>>>
>>>> Thanks a lot for the issue.
>>>>
>>>> Leon
>>>>
>>>>
>>>>
>>>> On Tue, Oct 19, 2010 at 10:05 AM, Simon Ibbotson
>>>> <[hidden email]> wrote:
>>>>> See if it works first - then worry about the rest of the  
>>>>> library. It shouldn't matter much, the #define is specific for  
>>>>> rates in yieldcurves.
>>>>>
>>>>> -----Original Message-----
>>>>> From: Leon Sit [mailto:[hidden email]]
>>>>> Sent: 19 October 2010 16:02
>>>>> To: Simon Ibbotson
>>>>> Cc: [hidden email]
>>>>> Subject: Re: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>>>
>>>>> I noticed that issue too. However these are a set of real quote  
>>>>> from
>>>>> market so I was hoping that I did not use quantlib right instead  
>>>>> of
>>>>> data issue. What is the consequence of allowing negative forward  
>>>>> rate
>>>>> for other parts of quantlib if I am only working with swap,  
>>>>> futures,
>>>>> and equity derivatives?
>>>>>
>>>>> Thanks.
>>>>>
>>>>>
>>>>> On Tue, Oct 19, 2010 at 9:50 AM, Simon Ibbotson
>>>>> <[hidden email]> wrote:
>>>>>> Sorry, all those figures should be divided by 10... e.g. 0.8%  
>>>>>> rather
>>>>>> than 8%.
>>>>>>
>>>>>> The same principle applies.
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Simon Ibbotson
>>>>>> Sent: 19 October 2010 15:50
>>>>>> To: 'Leon Sit'; [hidden email]
>>>>>> Subject: RE: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>>>>
>>>>>> I suspect that you're generating negative forward rates at the  
>>>>>> point
>>>>>> where the rate drops from 8% (11M cash) to 4.7% (1Y swap) and  
>>>>>> have not
>>>>>> enabled this as an option:- userconfig.hpp : uncomment out  
>>>>>> #define
>>>>>> QL_NEGATIVE_RATES.
>>>>>>
>>>>>> You've not provided enough code to see whether your curve has  
>>>>>> properly
>>>>>> defined the cash/swap transition.
>>>>>>
>>>>>> The curve does look rather unrealistic: 8% 11M cash then 4.71%  
>>>>>> 1Y swap,
>>>>>> followed by a 7% 2Y swap.
>>>>>>
>>>>>> Simon
>>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Leon Sit [mailto:[hidden email]]
>>>>>> Sent: 19 October 2010 15:33
>>>>>> To: [hidden email]
>>>>>> Subject: [Quantlib-users] Cannot bootstrap a yieldcurve
>>>>>>
>>>>>> Hi All:
>>>>>>
>>>>>> I am using the following set of rates to bootstrap a yieldcurve
>>>>>>
>>>>>>       double[] rates = {
>>>>>> 0.0022438 ,
>>>>>> 0.0025469 ,
>>>>>> 0.0025688 ,
>>>>>> 0.0026156 ,
>>>>>> 0.0027969 ,
>>>>>> 0.0030375 ,
>>>>>> 0.0036906 ,
>>>>>> 0.0044063 ,
>>>>>> 0.0051125 ,
>>>>>> 0.0057 ,
>>>>>> 0.0062838 ,
>>>>>> 0.0068188 ,
>>>>>> 0.0074125 ,
>>>>>> 0.0080344 ,
>>>>>> 0.00471 ,
>>>>>> 0.007027 ,
>>>>>> 0.00991 ,
>>>>>> 0.01303 ,
>>>>>> 0.016065 ,
>>>>>> 0.018773 ,
>>>>>> 0.021 ,
>>>>>> 0.02282 ,
>>>>>> 0.0243 ,
>>>>>> 0.025525 ,
>>>>>> 0.0266 ,
>>>>>> 0.027458 ,
>>>>>> 0.02835 ,
>>>>>> 0.02889 ,
>>>>>> 0.02939 ,
>>>>>> 0.02988 ,
>>>>>> 0.0302 ,
>>>>>> 0.0305 ,
>>>>>> 0.03075 ,
>>>>>> 0.03096 ,
>>>>>> 0.031655 ,
>>>>>> 0.031923 ,
>>>>>> 0.03222 ,
>>>>>> 0.031975};
>>>>>>
>>>>>>       string[] labels = {"ON",
>>>>>>                     "1w",
>>>>>>                     "2w",
>>>>>>                     "1m",
>>>>>>                     "2m",
>>>>>>                     "3m",
>>>>>>                     "4m",
>>>>>>                     "5m",
>>>>>>                     "6m",
>>>>>>                     "7m",
>>>>>>                     "8m",
>>>>>>                     "9m",
>>>>>>                     "10m",
>>>>>>                     "11m",
>>>>>>                     "1y",
>>>>>>                     "2y",
>>>>>>                     "3y",
>>>>>>                     "4y",
>>>>>>                     "5y",
>>>>>>                     "6y",
>>>>>>                     "7y",
>>>>>>                     "8y",
>>>>>>                     "9y",
>>>>>>                     "10y",
>>>>>>                     "11y",
>>>>>>                     "12y",
>>>>>>                     "13y",
>>>>>>                     "14y",
>>>>>>                     "15y",
>>>>>>                     "16y",
>>>>>>                     "17y",
>>>>>>                     "18y",
>>>>>>                     "19y",
>>>>>>                     "20y",
>>>>>>                     "25y",
>>>>>>                     "30y",
>>>>>>                     "40y",
>>>>>>                     "50y"};
>>>>>>
>>>>>> everything is fine until it iterates to the first swap quote.  
>>>>>> Does
>>>>>> anybody know what I might have missed?
>>>>>>
>>>>>> I am using the following yield curve class
>>>>>>
>>>>>>  new PiecewiseYieldCurve<Discount, LogLinear>(
>>>>>>               settlementDate, depositFutureSwapInstruments,
>>>>>>               depositDayCounter, 10e-5));
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> ------------------------------------------------------------------------
>>>>>> ------
>>>>>> Download new Adobe(R) Flash(R) Builder(TM) 4
>>>>>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>>>>>> Flex(R) Builder(TM)) enable the development of rich  
>>>>>> applications that
>>>>>> run
>>>>>> across multiple browsers and platforms. Download your free  
>>>>>> trials today!
>>>>>> http://p.sf.net/sfu/adobe-dev2dev
>>>>>> _______________________________________________
>>>>>> QuantLib-users mailing list
>>>>>> [hidden email]
>>>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>>>>
>>>>>>
>>>>>>
>>>>>> This communication and any attachments contains information  
>>>>>> which is confidential and may be subject to legal privilege. It  
>>>>>> is for intended recipients only. If you are not the intended  
>>>>>> recipient you must not copy, distribute, publish, rely on or  
>>>>>> otherwise use it without our consent. Some of our  
>>>>>> communications may contain confidential information which it  
>>>>>> could be a criminal offence for you to disclose or use without  
>>>>>> authority. If you have received this email in error please  
>>>>>> notify [hidden email] immediately and delete the email  
>>>>>> from your computer.
>>>>>>
>>>>>> The FSA reserves the right to monitor all email communications  
>>>>>> for compliance with legal, regulatory and professional standards.
>>>>>> This email is not intended to nor should it be taken to create  
>>>>>> any legal relations or contractual relationships. This email  
>>>>>> has originated from
>>>>>>
>>>>>> The Financial Services Authority (FSA)
>>>>>> 25 The North Colonnade,
>>>>>> Canary Wharf,
>>>>>> London
>>>>>> E14 5HS
>>>>>> United Kingdom
>>>>>>
>>>>>> Registered as a Limited Company in England and Wales No.1920623.
>>>>>> Registered Office as above
>>>>>>
>>>>>> Switchboard: 020 7066 1000
>>>>>> Web Site: http://www.fsa.gov.uk
>>>>>> *****************************************************************
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Download new Adobe(R) Flash(R) Builder(TM) 4
>>>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>>>> Flex(R) Builder(TM)) enable the development of rich applications  
>>>> that run
>>>> across multiple browsers and platforms. Download your free trials  
>>>> today!
>>>> http://p.sf.net/sfu/adobe-dev2dev
>>>> _______________________________________________
>>>> QuantLib-users mailing list
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>>
>>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America  
> contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and  
> Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in  
> marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi  
> Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users