Hi there,
does anyone know of a way to incorporate a vol smile for caps or swaptions? Just to be able to use the full structure of a vol cube. As far as I can see only flat smiles are implemented so far. Rgds Frank -- GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS. Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
For what concerns swaptions, smile structures are present: In the "termstructures/volatilities/swaptionvol" folder you can find "SwaptionVolCube1" and "SwaptionVolCube2" classes. The first one also calibrates SABR model to market quotes, the secon one just interpolates (linearly) on swaption expiries, tenors and also strikes. Regards, Marco
Hi there, does anyone know of a way to incorporate a vol smile for caps or swaptions? Just to be able to use the full structure of a vol cube. As far as I can see only flat smiles are implemented so far. Rgds Frank -- GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS. Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------------ Il presente messaggio di posta elettronica e i suoi allegati sono destinati esclusivamente e personalmente al/ai destinatario/i e possono contenere informazioni di carattere riservato. Qualora non fosse il destinatario del presente messaggio la preghiamo di avvertirci immediatamente tramite posta elettronica o telefonicamente e di cancellare il presente messaggio e i suoi allegati dalla sua casella di posta elettronica e dai suoi sistemi. E’vietato copiare, utilizzare, comunicare e divulgare il presente messaggio senza autorizzazione. Questo messaggio non costituisce una sollecitazione all'investimento o un'offerta di acquisto o di vendita di strumenti finanziari o una conferma formale di un’operazione. Gruppo Banca Leonardo è impegnata solo dalle dichiarazioni dei propri legali rappresentanti. Poiché le trasmissioni elettroniche non garantiscono la sicurezza e la correttezza dei dati, non assumiamo alcuna responsabilità in merito alla completezza e accuratezza delle informazioni contenute nel presente messaggio. L'indirizzo di posta elettronica dal quale viene inviato il presente messaggio non é un indirizzo privato del mittente. Si avverte che le risposte a questo messaggio potrebbero essere conosciute nell'organizzazione del mittente, nei limiti e con le procedure di legge. ------------------------------------------------------------ This e-mail and its attachment(s) are intended solely for the personal and confidential use of the addressee(s). If you are not the intended recipient of this message please notify us immediately by reply e-mail or by telephone and then delete this message and any file attached from your inbox and systems. Any unauthorized copy, use, disclosure, dissemination of this message is strictly prohibited. This communication should not be regarded as a solicitation or as an offer to sell or to buy any financial product, an official confirmation of any transaction, or as an official statement of Gruppo Banca Leonardo. E-mail transmissions cannot be guaranteed to be secure or error-free. Therefore, no representation is made that this information is complete or accurate and it should not be relied upon as such. The e-mail address from which this message is being sent is not private to the sender. Please note that responses to this message could be known in the sender's organization, in compliance with the mandatory limits and procedures. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
On Tue, 2007-10-30 at 14:37 +0100, [hidden email] wrote: > For what concerns swaptions, smile structures are present: > In the "termstructures/volatilities/swaptionvol" folder you can find > "SwaptionVolCube1" and "SwaptionVolCube2" classes. > The first one also calibrates SABR model to market quotes, the secon > one just interpolates (linearly) on swaption expiries, tenors and also > strikes. They're still undergoing revision, though. Ferdinando, may you elaborate a bit more on this? Luigi -- Discontent is the first necessity of progress. -- Thomas A. Edison ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Yes I have seen that they'll probably change in the future but I'm using them at the moment and they seem to work appropriately. The only thing I've noticed is that it is not very efficient in the construction of the market cubic surface to be fitted by SABR: it takes more time in building it than in calibrating it. In particular there is a triple "for loop" which is higly inefficient; I would suggest to change (in "swaptionvolcube1.cpp") for (Size i=0; i<nStrikes_; i++) for (Size j=0; j<nOptionTenors_; j++) for(Size k=0; k<nSwapTenors_; k++) { atmForward = atmStrike(optionDates_[j], swapTenors_[k]); vol = volSpreads_[j*nSwapTenors_+k][i]->value() + atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); marketVolCube_.setElement(i, j, k, vol); } with for(Size j=0; j<nOptionTenors_; j++) { for(Size k=0; k<nSwapTenors_; k++) { atmForward = atmStrike(optionDates_[j], swapTenors_[k]); for(Size i=0; i<nStrikes_; i++) { vol = volSpreads_[j*nSwapTenors_+k][i]->value() + atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); marketVolCube_.setElement(i, j, k, vol); } } } That is, instead of re-computing the atm forward swap rate for each point (expiry-swap tenor-strike) we just can compute it for couples (expiry-swap tenor). It is considerably faster! Marco
On Tue, 2007-10-30 at 14:37 +0100, [hidden email] wrote: > For what concerns swaptions, smile structures are present: > In the "termstructures/volatilities/swaptionvol" folder you can find > "SwaptionVolCube1" and "SwaptionVolCube2" classes. > The first one also calibrates SABR model to market quotes, the secon > one just interpolates (linearly) on swaption expiries, tenors and also > strikes. They're still undergoing revision, though. Ferdinando, may you elaborate a bit more on this? Luigi -- Discontent is the first necessity of progress. -- Thomas A. Edison ------------------------------------------------------------ Il presente messaggio di posta elettronica e i suoi allegati sono destinati esclusivamente e personalmente al/ai destinatario/i e possono contenere informazioni di carattere riservato. Qualora non fosse il destinatario del presente messaggio la preghiamo di avvertirci immediatamente tramite posta elettronica o telefonicamente e di cancellare il presente messaggio e i suoi allegati dalla sua casella di posta elettronica e dai suoi sistemi. E’vietato copiare, utilizzare, comunicare e divulgare il presente messaggio senza autorizzazione. Questo messaggio non costituisce una sollecitazione all'investimento o un'offerta di acquisto o di vendita di strumenti finanziari o una conferma formale di un’operazione. Gruppo Banca Leonardo è impegnata solo dalle dichiarazioni dei propri legali rappresentanti. Poiché le trasmissioni elettroniche non garantiscono la sicurezza e la correttezza dei dati, non assumiamo alcuna responsabilità in merito alla completezza e accuratezza delle informazioni contenute nel presente messaggio. L'indirizzo di posta elettronica dal quale viene inviato il presente messaggio non é un indirizzo privato del mittente. Si avverte che le risposte a questo messaggio potrebbero essere conosciute nell'organizzazione del mittente, nei limiti e con le procedure di legge. ------------------------------------------------------------ This e-mail and its attachment(s) are intended solely for the personal and confidential use of the addressee(s). If you are not the intended recipient of this message please notify us immediately by reply e-mail or by telephone and then delete this message and any file attached from your inbox and systems. Any unauthorized copy, use, disclosure, dissemination of this message is strictly prohibited. This communication should not be regarded as a solicitation or as an offer to sell or to buy any financial product, an official confirmation of any transaction, or as an official statement of Gruppo Banca Leonardo. E-mail transmissions cannot be guaranteed to be secure or error-free. Therefore, no representation is made that this information is complete or accurate and it should not be relied upon as such. The e-mail address from which this message is being sent is not private to the sender. Please note that responses to this message could be known in the sender's organization, in compliance with the mandatory limits and procedures. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Just to suggest/ask something:
1. Wouldn't it be easier and more straightforward/fundamental to look at a cap vol cube instead of a swaption vol cube? At least I don't have access to ICAP or Tullett-Prebon pages. 2. From the IR rookie's perspective: Are BBIDs like 'EUCF405 Curncy' a reliable source for input data in case of caps? (sorry for asking such a question but I'm more familiar with equity) Rgds Frank -------- Original-Nachricht -------- > Datum: Tue, 30 Oct 2007 14:50:34 +0100 > Von: [hidden email] > An: Luigi Ballabio <[hidden email]> > CC: "Frank Hövermann" <[hidden email]>, [hidden email], [hidden email] > Betreff: Re: [Quantlib-users] Cap or Swaption vol smiles > Yes I have seen that they'll probably change in the future but I'm using > them at the moment and they seem to work appropriately. > The only thing I've noticed is that it is not very efficient in the > construction of the market cubic surface to be fitted by SABR: it takes > more time in building it than in calibrating it. In particular there is a > triple "for loop" which is higly inefficient; I would suggest to change > (in "swaptionvolcube1.cpp") > > > for (Size i=0; i<nStrikes_; i++) > for (Size j=0; j<nOptionTenors_; j++) > for (Size k=0; k<nSwapTenors_; k++) { > atmForward = atmStrike(optionDates_[j], swapTenors_[k]); > vol = volSpreads_[j*nSwapTenors_+k][i]->value() + > atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); > marketVolCube_.setElement(i, j, k, vol); > } > > with > > for (Size j=0; j<nOptionTenors_; j++) { > for (Size k=0; k<nSwapTenors_; k++) { > atmForward = atmStrike(optionDates_[j], swapTenors_[k]); > for (Size i=0; i<nStrikes_; i++) { > vol = volSpreads_[j*nSwapTenors_+k][i]->value() + > atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); > marketVolCube_.setElement(i, j, k, vol); > } > } > } > > That is, instead of re-computing the atm forward swap rate for each point > (expiry-swap tenor-strike) we just can compute it for couples (expiry-swap > tenor). It is considerably faster! > > Marco > > > > > Luigi Ballabio <[hidden email]> > 30/10/2007 14.40 > > To > [hidden email] > cc > Frank Hövermann <[hidden email]>, > [hidden email], > [hidden email] > Subject > Re: [Quantlib-users] Cap or Swaption vol smiles > > > > > > > > On Tue, 2007-10-30 at 14:37 +0100, [hidden email] > wrote: > > For what concerns swaptions, smile structures are present: > > In the "termstructures/volatilities/swaptionvol" folder you can find > > "SwaptionVolCube1" and "SwaptionVolCube2" classes. > > The first one also calibrates SABR model to market quotes, the secon > > one just interpolates (linearly) on swaption expiries, tenors and also > > strikes. > > They're still undergoing revision, though. Ferdinando, may you elaborate > a bit more on this? > > Luigi -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
1. Swaptions and Caps are different instruments which are priced using different models. It is not so strightforward moving to swaption volatilities to Libor volatilities and vice-versa (among the many problems I just mention the need of a correlation structure among single Libor rates). So, tipically, conceptually different volas are quoted for the two family of instruments. Imagine also you want to price CMS's without Monte Carlo: then you would need the underlying swap rate volatility smile. 2. I use those quotes for Caps but you have to be careful because it happens that sometimes wrong quotes are contributed by Bloomberg (for example very illiquid instruments) Regards, Marco
Just to suggest/ask something: 1. Wouldn't it be easier and more straightforward/fundamental to look at a cap vol cube instead of a swaption vol cube? At least I don't have access to ICAP or Tullett-Prebon pages. 2. From the IR rookie's perspective: Are BBIDs like 'EUCF405 Curncy' a reliable source for input data in case of caps? (sorry for asking such a question but I'm more familiar with equity) Rgds Frank -------- Original-Nachricht -------- > Datum: Tue, 30 Oct 2007 14:50:34 +0100 > Von: [hidden email] > An: Luigi Ballabio <[hidden email]> > CC: "Frank Hövermann" <[hidden email]>, [hidden email], [hidden email] > Betreff: Re: [Quantlib-users] Cap or Swaption vol smiles > Yes I have seen that they'll probably change in the future but I'm using > them at the moment and they seem to work appropriately. > The only thing I've noticed is that it is not very efficient in the > construction of the market cubic surface to be fitted by SABR: it takes > more time in building it than in calibrating it. In particular there is a > triple "for loop" which is higly inefficient; I would suggest to change > (in "swaptionvolcube1.cpp") > > > for (Size i=0; i<nStrikes_; i++) > for (Size j=0; j<nOptionTenors_; j++) > for (Size k=0; k<nSwapTenors_; k++) { > atmForward = atmStrike(optionDates_[j], swapTenors_[k]); > vol = volSpreads_[j*nSwapTenors_+k][i]->value() + > atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); > marketVolCube_.setElement(i, j, k, vol); > } > > with > > for (Size j=0; j<nOptionTenors_; j++) { > for (Size k=0; k<nSwapTenors_; k++) { > atmForward = atmStrike(optionDates_[j], swapTenors_[k]); > for (Size i=0; i<nStrikes_; i++) { > vol = volSpreads_[j*nSwapTenors_+k][i]->value() + > atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); > marketVolCube_.setElement(i, j, k, vol); > } > } > } > > That is, instead of re-computing the atm forward swap rate for each point > (expiry-swap tenor-strike) we just can compute it for couples (expiry-swap > tenor). It is considerably faster! > > Marco > > > > > Luigi Ballabio <[hidden email]> > 30/10/2007 14.40 > > To > [hidden email] > cc > Frank Hövermann <[hidden email]>, > [hidden email], > [hidden email] > Subject > Re: [Quantlib-users] Cap or Swaption vol smiles > > > > > > > > On Tue, 2007-10-30 at 14:37 +0100, [hidden email] > wrote: > > For what concerns swaptions, smile structures are present: > > In the "termstructures/volatilities/swaptionvol" folder you can find > > "SwaptionVolCube1" and "SwaptionVolCube2" classes. > > The first one also calibrates SABR model to market quotes, the secon > > one just interpolates (linearly) on swaption expiries, tenors and also > > strikes. > > They're still undergoing revision, though. Ferdinando, may you elaborate > a bit more on this? > > Luigi -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------------ Il presente messaggio di posta elettronica e i suoi allegati sono destinati esclusivamente e personalmente al/ai destinatario/i e possono contenere informazioni di carattere riservato. Qualora non fosse il destinatario del presente messaggio la preghiamo di avvertirci immediatamente tramite posta elettronica o telefonicamente e di cancellare il presente messaggio e i suoi allegati dalla sua casella di posta elettronica e dai suoi sistemi. E’vietato copiare, utilizzare, comunicare e divulgare il presente messaggio senza autorizzazione. Questo messaggio non costituisce una sollecitazione all'investimento o un'offerta di acquisto o di vendita di strumenti finanziari o una conferma formale di un’operazione. Gruppo Banca Leonardo è impegnata solo dalle dichiarazioni dei propri legali rappresentanti. Poiché le trasmissioni elettroniche non garantiscono la sicurezza e la correttezza dei dati, non assumiamo alcuna responsabilità in merito alla completezza e accuratezza delle informazioni contenute nel presente messaggio. L'indirizzo di posta elettronica dal quale viene inviato il presente messaggio non é un indirizzo privato del mittente. Si avverte che le risposte a questo messaggio potrebbero essere conosciute nell'organizzazione del mittente, nei limiti e con le procedure di legge. ------------------------------------------------------------ This e-mail and its attachment(s) are intended solely for the personal and confidential use of the addressee(s). If you are not the intended recipient of this message please notify us immediately by reply e-mail or by telephone and then delete this message and any file attached from your inbox and systems. Any unauthorized copy, use, disclosure, dissemination of this message is strictly prohibited. This communication should not be regarded as a solicitation or as an offer to sell or to buy any financial product, an official confirmation of any transaction, or as an official statement of Gruppo Banca Leonardo. E-mail transmissions cannot be guaranteed to be secure or error-free. Therefore, no representation is made that this information is complete or accurate and it should not be relied upon as such. The e-mail address from which this message is being sent is not private to the sender. Please note that responses to this message could be known in the sender's organization, in compliance with the mandatory limits and procedures. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Luigi Ballabio
On Oct 30, 2007 2:40 PM, Luigi Ballabio <[hidden email]> wrote:
> > For what concerns swaptions, smile structures are present: > > In the "termstructures/volatilities/swaptionvol" folder you can find > > "SwaptionVolCube1" and "SwaptionVolCube2" classes. > > They're still undergoing revision, though. Ferdinando, may you elaborate > a bit more on this? We've been using SwaptionVol1 for months now in the EUR market, so the class is stable, even if we are aware that is not very efficient. I wouldn't say the class is undergoing revision, as we don't plan to change it. Instead we are considering a new alternative cleaner and more general design which should exploit what we have learned in the last months trying to bootstrap caplet volatilities. Notably: 1) the SwaptionCube is not really a term structure, but a collection of Swaption volatility surfaces: each of these surfaces is a term structure 2) provided that we model both kind of quoted smiles (sticky and floating strike) the new design would easily account for both caplet and swaption. The main idea is that each index (Euribor3M, EuriborSwap10Y, etc) has its own vol surface, and the cube is just the collection of different surfaces together ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
On Tue, 2007-10-30 at 16:20 +0100, Ferdinando Ametrano wrote: > We've been using SwaptionVol1 for months now in the EUR market, so the > class is stable, even if we are aware that is not very efficient. How about SwaptionVolCube2? Should it disappear? Luigi -- Brady's First Law of Problem Solving: When confronted by a difficult problem, you can solve it more easily by reducing it to the question, "How would the Lone Ranger have handled this?" ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
On Oct 30, 2007 4:31 PM, Luigi Ballabio <[hidden email]> wrote:
> How about SwaptionVolCube2? Should it disappear? it's only less relevant, so we have not been using it that much. It should disappear the day we replace SwaptionVolCube1 too. ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by marco.tarenghi
On Oct 30, 2007 2:50 PM, <[hidden email]> wrote:
> I would suggest to change (in "swaptionvolcube1.cpp") > [...] I've just committed your proposed change, moving also the calculation of the atm vol out of the inner loop: Rate atmForward; Volatility atmVol, vol; for (Size j=0; j<nOptionTenors_; ++j) { for (Size k=0; k<nSwapTenors_; ++k) { atmForward = atmStrike(optionDates_[j], swapTenors_[k]); atmVol = atmVol_->volatility(optionDates_[j], swapTenors_[k], atmForward); for (Size i=0; i<nStrikes_; ++i) { vol = atmVol + volSpreads_[j*nSwapTenors_+k][i]->value(); marketVolCube_.setElement(i, j, k, vol); } } } see http://quantlib.svn.sourceforge.net/viewvc/quantlib?view=rev&revision=13255 thank you ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |