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.
PeterOn 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 likefor random input x- y = direct(x) generates admissable values- direct( inverse( y ) ) = yfor sabr, noarbsabr, zabr and svi. What do you think ?PeterOn 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
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/170As 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.
ThanksPeter
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.
Free forum by Nabble | Disable Popup Ads | Edit this page |