Fwd: FW: SABR regression

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

Fwd: FW: SABR regression

Ferdinando M. Ametrano-3
Hi Peter

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

While trying to calibrate problematic smiles as:

strike1.00%1.13%1.25%1.38%1.50%
vol123.20%20.25%31.21%39.02%50.45%
vol216.67%20.20%27.85%32.79%37.27%

1.2.1 was able to offer these (non-optimal but decent) solutions:

max errorrms errorend criteriaalphabetanurho
1.79%0.94% StationaryPoint0.58%25.00%346.03%34.19%
0.65%0.43% StationaryPoint0.62%25.00%193.97%63.66%


the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

thank you for your help

regards
F

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev

SABR-regression.xlsx (16K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks
Peter

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:
Hi Peter

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

While trying to calibrate problematic smiles as:

strike1.00%1.13%1.25%1.38%1.50%
vol123.20%20.25%31.21%39.02%50.45%
vol216.67%20.20%27.85%32.79%37.27%

1.2.1 was able to offer these (non-optimal but decent) solutions:

max errorrms errorend criteriaalphabetanurho
1.79%0.94% StationaryPoint0.58%25.00%346.03%34.19%
0.65%0.43% StationaryPoint0.62%25.00%193.97%63.66%


the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

thank you for your help

regards
F


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev

sabrinterpolation.hpp (13K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

Best regards
Peter

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:
Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks
Peter

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:
Hi Peter

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

While trying to calibrate problematic smiles as:

strike1.00%1.13%1.25%1.38%1.50%
vol123.20%20.25%31.21%39.02%50.45%
vol216.67%20.20%27.85%32.79%37.27%

1.2.1 was able to offer these (non-optimal but decent) solutions:

max errorrms errorend criteriaalphabetanurho
1.79%0.94% StationaryPoint0.58%25.00%346.03%34.19%
0.65%0.43% StationaryPoint0.62%25.00%193.97%63.66%


the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

thank you for your help

regards
F



------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

MAZZOCCHI PAOLO

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Ferdinando M. Ametrano-3

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Ferdinando M. Ametrano-3

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.



------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Ferdinando M. Ametrano-3
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
oops. For me the test suite in the current master both with and without #170 runs fine. Only the new regression case included in 170 fails without the patch. Let me know what error pops up on your side.
Peter



On 18 November 2014 21:57, Ferdinando M. Ametrano <[hidden email]> wrote:
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.





------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Luigi Ballabio
It only fails on VC++9.  NoArbSabrTest::testAbsorptionMatrix fails to verify the hash value of the absorption matrix.

On Wed, Nov 19, 2014 at 6:43 AM, Peter Caspers <[hidden email]> wrote:
oops. For me the test suite in the current master both with and without #170 runs fine. Only the new regression case included in 170 fails without the patch. Let me know what error pops up on your side.
Peter



On 18 November 2014 21:57, Ferdinando M. Ametrano <[hidden email]> wrote:
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.





------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev




--

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
std::size_t could be the problem (noarbsabr.cpp L329), is that 32 Bit under VC9 ? Should we use usigned long instead, is that always 64 Bit ?

On 19 November 2014 09:43, Luigi Ballabio <[hidden email]> wrote:
It only fails on VC++9.  NoArbSabrTest::testAbsorptionMatrix fails to verify the hash value of the absorption matrix.

On Wed, Nov 19, 2014 at 6:43 AM, Peter Caspers <[hidden email]> wrote:
oops. For me the test suite in the current master both with and without #170 runs fine. Only the new regression case included in 170 fails without the patch. Let me know what error pops up on your side.
Peter



On 18 November 2014 21:57, Ferdinando M. Ametrano <[hidden email]> wrote:
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.





------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev




--


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Fwd: FW: SABR regression

Peter Caspers-4
deleting the body, which grew over 50kb ...
---------- Forwarded message ----------
From: Peter Caspers <[hidden email]>
Date: 19 November 2014 10:36
Subject: Re: [Quantlib-dev] FW: SABR regression
To: Luigi Ballabio <[hidden email]>
Cc: "Ferdinando M. Ametrano" <[hidden email]>, "[hidden email]" <[hidden email]>, maddalena zanzi <[hidden email]>, QuantLib Mailing Lists <[hidden email]>


ah sorry, I am so bad at this. I guess it is only important, that std::size_t and long have the same size (actually both seem to be 4 bytes under VC10 whilst 8 under gcc, maybe this is in addtion dependent on whether -m64 is used ?). Replacing std::size_t by long in L329 should do the trick, I think ? I don't have VC9, so I can not try ...
Peter

 

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Luigi Ballabio
In reply to this post by Peter Caspers-4
No, I think long is 32 bits too.

How about simply checking the hash against two different values depending on the size of std::size_t?


On Wed, Nov 19, 2014 at 10:25 AM, Peter Caspers <[hidden email]> wrote:
std::size_t could be the problem (noarbsabr.cpp L329), is that 32 Bit under VC9 ? Should we use usigned long instead, is that always 64 Bit ?

On 19 November 2014 09:43, Luigi Ballabio <[hidden email]> wrote:
It only fails on VC++9.  NoArbSabrTest::testAbsorptionMatrix fails to verify the hash value of the absorption matrix.

On Wed, Nov 19, 2014 at 6:43 AM, Peter Caspers <[hidden email]> wrote:
oops. For me the test suite in the current master both with and without #170 runs fine. Only the new regression case included in 170 fails without the patch. Let me know what error pops up on your side.
Peter



On 18 November 2014 21:57, Ferdinando M. Ametrano <[hidden email]> wrote:
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.





------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev




--




--

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Luigi Ballabio
It looks like we crossed answers :)

I'll check what happens using long instead of size_t.

Luigi


On Wed, Nov 19, 2014 at 10:42 AM, Luigi Ballabio <[hidden email]> wrote:
No, I think long is 32 bits too.

How about simply checking the hash against two different values depending on the size of std::size_t?


On Wed, Nov 19, 2014 at 10:25 AM, Peter Caspers <[hidden email]> wrote:
std::size_t could be the problem (noarbsabr.cpp L329), is that 32 Bit under VC9 ? Should we use usigned long instead, is that always 64 Bit ?

On 19 November 2014 09:43, Luigi Ballabio <[hidden email]> wrote:
It only fails on VC++9.  NoArbSabrTest::testAbsorptionMatrix fails to verify the hash value of the absorption matrix.

On Wed, Nov 19, 2014 at 6:43 AM, Peter Caspers <[hidden email]> wrote:
oops. For me the test suite in the current master both with and without #170 runs fine. Only the new regression case included in 170 fails without the patch. Let me know what error pops up on your side.
Peter



On 18 November 2014 21:57, Ferdinando M. Ametrano <[hidden email]> wrote:
wow, this was fast!
btw by "sabr test" I meant one test in the QuantlIb test suite

On Tue, Nov 18, 2014 at 9:47 PM, Peter Caspers <[hidden email]> wrote:
Alright, I added a test case for the regression you found and one for the direct/inverse functions (a deterministic one, yes). I'll have a look at your data and see if we can extract more interesting test cases from that.

And please send the new case when you are back.

Peter

On 18 November 2014 20:31, Ferdinando M. Ametrano <[hidden email]> wrote:

Yes Peter, I can provide a caplet snapshot for a test.

As for a direct/inverse test: yes please, but avoid random numbers as that would make tests unpredictable.

Please also note that one sabr test is currently failing: I don't know if because of yesterday's patch or it has been failing for a while. thurdays, back at my desk,  I can provide more details, but you might want to check it up on your setup in the meantime

On Nov 18, 2014 9:33 AM, "Peter Caspers" <[hidden email]> wrote:
yes, please send an example (otherwise I could already take the one from the excel you sent earlier ? or was that made up ?). In addtion I think I should add a technical test like
 
for random input x
- y = direct(x) generates admissable values
- direct( inverse( y ) ) = y
 
for sabr, noarbsabr, zabr and svi. What do you think ?
 
Peter
 

On 17 November 2014 20:07, Ferdinando M. Ametrano <[hidden email]> wrote:

Thank you Peter for the timely fix.

One takeaway is to create a unit test to check for possible future regressions.
Do you have a relevant dataset from some paper to suggest? If not, I could provide a snapshot of current euro caplets.

On Nov 17, 2014 7:40 PM, "MAZZOCCHI PAOLO" <[hidden email]> wrote:

Hi Peter,

I tested your modifications and they work properly. The results are in line with the ones obtained using QL 1.2.

Anyway, the details (forward and time to expiry) are written in the excel file attached in the previous email.

 

time

fwd

0.1342

1.1075%

0.3833

1.1025%

 

Thank you very much for your help.

 

Paolo

 

Paolo Mazzocchi

Deloitte Consulting Srl

consulente di

FINANCIAL ENGINEERING - Banca IMI

Tel: 02-72615029  Int: 35029

[hidden email]

 

From: Peter Caspers [mailto:[hidden email]]
Sent: Monday, November 17, 2014 7:00 PM
To: Ferdinando M. Ametrano
Cc: [hidden email]; QuantLib Mailing Lists; maddalena zanzi
Subject: Re: [Quantlib-dev] FW: SABR regression

 

Hi Ferdinando,

I pushed a fix here (effectively it should yield the same results as the file attached earlier)

https://github.com/lballabio/quantlib/pull/170

As far as I remember the reason for the change in the transformation function (for 1.3 or 1.4 ?) were nan / inf values occuring from time to time in the calibration. This is why I replaced the parabolas by truncated parabolas with linear wings (such that the result is C^1).

If you feel that your test case is still working better in 1.2, could you please send some more details (forward, time to expiry), I'd be happy to discuss again then.

 

Best regards
Peter

 

On 17 November 2014 13:25, Peter Caspers <[hidden email]> wrote:

Hi Ferdinando,

one problem is the transformation function direct(...) which is buggy for alpha and nu. Can you try the attached version instead and see if it works better ?

I'd like to have a closer look and try on more cases before I send a PR though.

Thanks

Peter

 

On 17 November 2014 12:06, Ferdinando M. Ametrano <[hidden email]> wrote:

Hi Peter

 

SABR implementation on the current trunk has a regression compared with QuantLib 1.2.1

 

While trying to calibrate problematic smiles as:

 

strike

1.00%

1.13%

1.25%

1.38%

1.50%

vol1

23.20%

20.25%

31.21%

39.02%

50.45%

vol2

16.67%

20.20%

27.85%

32.79%

37.27%

 

1.2.1 was able to offer these (non-optimal but decent) solutions:

 

max error

rms error

end criteria

alpha

beta

nu

rho

1.79%

0.94%

 StationaryPoint

0.58%

25.00%

346.03%

34.19%

0.65%

0.43% 

StationaryPoint

0.62%

25.00%

193.97%

63.66%

 

 

the current trunk instead fails for the second smile with error "qlSABRInterpolationAlpha - nu must be non negative: -124.897 not allowed".

 

If one tries to just use the four leftmost volatilities to simplify the problem, both calibrations fail with the same error. This leads me to believe the problem is about the solver looking for a solution in the negative nu region. If this is the case it could be solved having a positive constraint for nu. Do you agree? Could you please look into it?

 

Please find attached a spreadsheet reproducing the error. We might even want to add a non regression test to the test suite.

 

thank you for your help

 

regards

F

 

 



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.





------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev




--




--



--

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Luigi Ballabio
Nope, the first arg to boost::hash_combine must be a size_t.
At this point I'd go for choosing the expected result based on the size of size_t. What do you think?


On Wed, Nov 19, 2014 at 10:44 AM, Luigi Ballabio <[hidden email]> wrote:
It looks like we crossed answers :)

I'll check what happens using long instead of size_t.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Peter Caspers-4
fine for me. Would we need something like

QL_REQUIRE(seed == (sizeof(seed) == 4 ? 12345 : 6789), "...")

then ? Are 4 and 8 bytes then only possible values on the myriads of
platforms that are supported ?

On 19 November 2014 17:13, Luigi Ballabio <[hidden email]> wrote:

> Nope, the first arg to boost::hash_combine must be a size_t.
> At this point I'd go for choosing the expected result based on the size of
> size_t. What do you think?
>
>
> On Wed, Nov 19, 2014 at 10:44 AM, Luigi Ballabio <[hidden email]>
> wrote:
>>
>> It looks like we crossed answers :)
>>
>> I'll check what happens using long instead of size_t.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: FW: SABR regression

Luigi Ballabio
Something like it. I'm about to commit it.  I don't think there's other values besides 4 and 8.

Luigi 

On Wed, Nov 19, 2014 at 5:34 PM, Peter Caspers <[hidden email]> wrote:
fine for me. Would we need something like

QL_REQUIRE(seed == (sizeof(seed) == 4 ? 12345 : 6789), "...")

then ? Are 4 and 8 bytes then only possible values on the myriads of
platforms that are supported ?

On 19 November 2014 17:13, Luigi Ballabio <[hidden email]> wrote:
> Nope, the first arg to boost::hash_combine must be a size_t.
> At this point I'd go for choosing the expected result based on the size of
> size_t. What do you think?
>
>
> On Wed, Nov 19, 2014 at 10:44 AM, Luigi Ballabio <[hidden email]>
> wrote:
>>
>> It looks like we crossed answers :)
>>
>> I'll check what happens using long instead of size_t.



--

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev