How to calibrate a Market Model

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

How to calibrate a Market Model

Ioannis Rigopoulos

In QuantLib there exist several classes deriving from the MarketModel class.

One of them is the FlatVol, which I have used successfully to price a european swaption.

But the FlatVol constructor looks as follows:


        FlatVol(  const std::vector<Volatility>& volatilities,    const boost::shared_ptr<PiecewiseConstantCorrelation>& corr,   .... )

 

which means that I need to know the volatilities and corr inputs.

My problem is how to get these inputs by relying only on market data consisting of caplet and swaption vols.

Does some sort of calibrator class exist that is capable of producing these inputs (or the whole FlatVol object preferably), after being fed with the market data?

If this is not yet implemented with respect to FlatVol, does such an implementation at least exist for some other class deriving from MarketModel?

 

I have seen the three classes CTSMMCapletCalibration, CTSMMCapletOriginalCalibration and CTSMMCapletAlphaFormCalibration, which almost do the job, but they have the shortcoming that their constructors take a vector of PiecewiseConstantVariance rather than a vector of numbers for the required input of swaption volatilities. Unfortunately the market does not supply us with a PiecewiseConstantVarianceobject, so I don't know how to proceed!

Many thanks in advance

Yannis




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Fwd: How to calibrate a Market Model

Ioannis Rigopoulos

Hi,

as I have not received any response to my question below yet, I repost it here because the issue is very important. I am looking for a calibration solution with regard to market models. If none exists, could somebody please confirm this is the case and whether any plans exist to introduce one? Unfortunately without calibration, the whole market model implementation - as it stands - has only academic meaning.

cheers

Yannis



-------- Forwarded Message --------
Subject: [Quantlib-users] How to calibrate a Market Model
Date: Sat, 4 Feb 2017 17:52:57 +0100
From: Ioannis Rigopoulos [hidden email]
To: [hidden email]


In QuantLib there exist several classes deriving from the MarketModel class.

One of them is the FlatVol, which I have used successfully to price a european swaption.

But the FlatVol constructor looks as follows:


        FlatVol(  const std::vector<Volatility>& volatilities,    const boost::shared_ptr<PiecewiseConstantCorrelation>& corr,   .... )

 

which means that I need to know the volatilities and corr inputs.

My problem is how to get these inputs by relying only on market data consisting of caplet and swaption vols.

Does some sort of calibrator class exist that is capable of producing these inputs (or the whole FlatVol object preferably), after being fed with the market data?

If this is not yet implemented with respect to FlatVol, does such an implementation at least exist for some other class deriving from MarketModel?

 

I have seen the three classes CTSMMCapletCalibration, CTSMMCapletOriginalCalibration and CTSMMCapletAlphaFormCalibration, which almost do the job, but they have the shortcoming that their constructors take a vector of PiecewiseConstantVariance rather than a vector of numbers for the required input of swaption volatilities. Unfortunately the market does not supply us with a PiecewiseConstantVarianceobject, so I don't know how to proceed!

Many thanks in advance

Yannis




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com





Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

Attached Message Part (282 bytes) Download Attachment
Attached Message Part (246 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: How to calibrate a Market Model

Luigi Ballabio
It's been a long time since I looked at the market model, but the approach to calibration described in <https://papers.ssrn.com/sol3/papers2.cfm?abstract_id=1092665> is included in the implementation, and it looks like there's an example of its use in the file `test-suite/marketmodel_smmcaplethomocalibration.cpp`.  There's another couple of test files with a similar name that might use the methods you named in your original post.

Let me know if that helps.  Otherwise, I'll try reaching out to some of the implementors...

Luigi


On Thu, Feb 16, 2017 at 10:52 AM Ioannis Rigopoulos <[hidden email]> wrote:

Hi,

as I have not received any response to my question below yet, I repost it here because the issue is very important. I am looking for a calibration solution with regard to market models. If none exists, could somebody please confirm this is the case and whether any plans exist to introduce one? Unfortunately without calibration, the whole market model implementation - as it stands - has only academic meaning.

cheers

Yannis



-------- Forwarded Message --------
Subject: [Quantlib-users] How to calibrate a Market Model
Date: Sat, 4 Feb 2017 17:52:57 +0100
From: Ioannis Rigopoulos [hidden email]
To: [hidden email]


In QuantLib there exist several classes deriving from the MarketModel class.

One of them is the FlatVol, which I have used successfully to price a european swaption.

But the FlatVol constructor looks as follows:


        FlatVol(  const std::vector<Volatility>& volatilities,    const boost::shared_ptr<PiecewiseConstantCorrelation>& corr,   .... )

 

which means that I need to know the volatilities and corr inputs.

My problem is how to get these inputs by relying only on market data consisting of caplet and swaption vols.

Does some sort of calibrator class exist that is capable of producing these inputs (or the whole FlatVol object preferably), after being fed with the market data?

If this is not yet implemented with respect to FlatVol, does such an implementation at least exist for some other class deriving from MarketModel?

 

I have seen the three classes CTSMMCapletCalibration, CTSMMCapletOriginalCalibration and CTSMMCapletAlphaFormCalibration, which almost do the job, but they have the shortcoming that their constructors take a vector of PiecewiseConstantVariance rather than a vector of numbers for the required input of swaption volatilities. Unfortunately the market does not supply us with a PiecewiseConstantVarianceobject, so I don't know how to proceed!

Many thanks in advance

Yannis




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com





Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: How to calibrate a Market Model

Ioannis Rigopoulos

Many thanks Luigi for your quick reply!

I will look at what you have pointed in the next few days and I will let you know as soon as I have concrete results.

Yannis


On 17.02.2017 15:42, Luigi Ballabio wrote:
It's been a long time since I looked at the market model, but the approach to calibration described in <https://papers.ssrn.com/sol3/papers2.cfm?abstract_id=1092665> is included in the implementation, and it looks like there's an example of its use in the file `test-suite/marketmodel_smmcaplethomocalibration.cpp`.  There's another couple of test files with a similar name that might use the methods you named in your original post.

Let me know if that helps.  Otherwise, I'll try reaching out to some of the implementors...

Luigi


On Thu, Feb 16, 2017 at 10:52 AM Ioannis Rigopoulos <[hidden email]> wrote:

Hi,

as I have not received any response to my question below yet, I repost it here because the issue is very important. I am looking for a calibration solution with regard to market models. If none exists, could somebody please confirm this is the case and whether any plans exist to introduce one? Unfortunately without calibration, the whole market model implementation - as it stands - has only academic meaning.

cheers

Yannis



-------- Forwarded Message --------
Subject: [Quantlib-users] How to calibrate a Market Model
Date: Sat, 4 Feb 2017 17:52:57 +0100
From: Ioannis Rigopoulos [hidden email]
To: [hidden email]


In QuantLib there exist several classes deriving from the MarketModel class.

One of them is the FlatVol, which I have used successfully to price a european swaption.

But the FlatVol constructor looks as follows:


        FlatVol(  const std::vector<Volatility>& volatilities,    const boost::shared_ptr<PiecewiseConstantCorrelation>& corr,   .... )

 

which means that I need to know the volatilities and corr inputs.

My problem is how to get these inputs by relying only on market data consisting of caplet and swaption vols.

Does some sort of calibrator class exist that is capable of producing these inputs (or the whole FlatVol object preferably), after being fed with the market data?

If this is not yet implemented with respect to FlatVol, does such an implementation at least exist for some other class deriving from MarketModel?

 

I have seen the three classes CTSMMCapletCalibration, CTSMMCapletOriginalCalibration and CTSMMCapletAlphaFormCalibration, which almost do the job, but they have the shortcoming that their constructors take a vector of PiecewiseConstantVariance rather than a vector of numbers for the required input of swaption volatilities. Unfortunately the market does not supply us with a PiecewiseConstantVarianceobject, so I don't know how to proceed!

Many thanks in advance

Yannis




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com





Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users