Path valuation issue

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

Path valuation issue

Berardi Luca
Path valuation issue

Hi there,

I would be interested in using the MonteCarlo framework to valuate path-dependent options. I assume to have a payoff which evaluates to -let's say- 3 fixing dates for expiry 1 year, but I'd like to integrate the stochastic differential equation (SDE, for short) for the underlying using a denser temporal grid, e.g. using 1000 temporal steps.

Hence I generate the path of interest (as a collection of times and drift-diffusion couples)  "integrating" the corresponding DiffusionProcess over the 1000 elements TimeGrid. Then I pass this generated Path as argument of the operator() function in my Pricer class.

As far as I can understand, however, the current Path implementation in QuantLib does not make any difference between fixing dates (i.e. "mandatory times") and times in the Path only used to integrate the SDE. So if I need to evaluate the payoff over my 3 fixing dates I have to "re-integrate" the underlying SDE also in my Pricer::operator( ) function (to get the underlying values corresponding to the 3 fixing dates of interest). This seems to me a bit computationally inefficient.

What I kindly ask is then:
1) am I getting a correct interpretation of the problem?
2) if so, are there any available solutions?
3) and, is this an issue already considered by QuantLib developers?

Thanks in advance.

Luca Berardi




DISCLAIMER: Privileged/Confidential Information may be contained in this message and in any of its attachments (the "message"). If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply e-mail. The contents of this message shall be understood as neither given nor endorsed by Banca Profilo S.p.A., nor Profilo SGR S.p.A., nor Profilo Asset Management SGR S.p.A., nor Profilo Academy S.p.A.. Banca Profilo S.p.A., Profilo SGR S.p.A., Profilo Asset Management SGR S.p.A., Profilo Academy S.p.A. do not accept liability for corruption, interception or amendment, if any, or the consequences thereof.

Il presente messaggio e/o i suoi allegati (di seguito il "messaggio") possono contenere informazioni privilegiate e/o confidenziali. Se non siete i destinatari indicati nel messaggio (o persona incaricata di inoltrare il messaggio al/i destinatario/i), non potete copiare o inoltrare il messaggio ad altri e siete invitati a distruggerlo dandone informazione al mittente a mezzo e-mail. Il contenuto del presente messaggio non deve essere considerato come trasmesso o autorizzato nè da Banca Profilo S.p.A., nè da Profilo SGR S.p.A., nè da Profilo Asset Management SGR S.p.A., nè da Profilo Academy S.p.A.. Nè Banca Profilo S.p.A., nè Profilo SGR S.p.A., nè Profilo Asset Management SGR S.p.A., nè Profilo Academy S.p.A. si assumono alcuna responsabilità per eventuali intercettazioni, modifiche o danneggiamenti del presente messaggio e-mail e per le eventuali conseguenze.


Reply | Threaded
Open this post in threaded view
|

Re: Path valuation issue

Luigi Ballabio-2
Ciao Luca,

On 2004.04.13 11:10, Berardi Luca wrote:

> I would be interested in using the MonteCarlo framework to valuate
> path-dependent options. I assume to have a payoff which evaluates to
> -let's say- 3 fixing dates for expiry 1 year, but I'd like to  
> integrate the stochastic differential equation (SDE, for short) for  
> the underlying using a denser temporal grid, e.g. using 1000 temporal  
> steps. Hence I generate the path of interest (as a collection of  
> times and drift-diffusion couples)  "integrating" the corresponding
> DiffusionProcess over the 1000 elements TimeGrid. Then I pass this  
> generated Path as argument of the operator() function in my Pricer  
> class.
>
> As far as I can understand, however, the current Path implementation
> in QuantLib does not make any difference between fixing dates (i.e.
> "mandatory times") and times in the Path only used to integrate the  
> SDE. So if I need to evaluate the payoff over my 3 fixing dates I  
> have to "re-integrate" the underlying SDE also in my Pricer::operator
> ( ) function (to get the underlying values corresponding to the 3  
> fixing dates of interest).
> This seems to me a bit computationally inefficient.

Yes, I see that the current Path implementation is not fully  
satisfactory---to put it mildly :) This also applies to your earlier  
question about modeling the log value of the underlying.

The reasons for the current implementation are:
a) partly historical; back when most pricers took a constant volatility  
value, storing the drift and diffusion parts made it easier to  
calculate antithetic paths, but this no longer applies now that the  
volatility can change over the path.
b) partly due to us not listening to Knuth when he said that early  
optimization is the root of all evils. For the simple pricers we  
started with, it might have been more efficient to add log variations  
and just perform exponentiation when the price value is needed. But as  
you show, this might actually degrade performance for more complex  
pricers.

So, yes, it might make more sense to store in the path the simulated  
values of the modeled quantity instead of its variations (or log  
variations.)

Thoughts, anyone?

Later,
        Luigi


Reply | Threaded
Open this post in threaded view
|

Re: Path valuation issue

Neil P Firth
Hi,

> Yes, I see that the current Path implementation is not fully
> satisfactory---to put it mildly :) This also applies to your earlier
> question about modeling the log value of the underlying.
>
To me it is most intuitive to model the actual (risk-neutral) value of the
asset being simulated. Then, as you suggest the path would contain the
values along the path, which would be nice ;) However, if we are not
storing the drifts and variations, then we need to be able to store the
antithetic path as well. This would give a pair of Paths, or pair of
MultiPaths.

Another complication is the fact that there are DiffusionProcess and
StochasticProcess classes. I'm not clear why there are two classes, or
what the plan is for refactoring. Luigi?

Neil


Reply | Threaded
Open this post in threaded view
|

RE: Path valuation issue

cuchulainn
In reply to this post by Berardi Luca
Path valuation issue
Hi
I am working on path-dependent options from the viewpoint of PDE/FDM. This offers a number of advantages such as:
 
    Performance (much faster than MC)
    Well-developed theory (people have being using FDM for 200 years)
    Easy to program in C++
 
If I can be of help to the Quantlib you know where to find me.
 
regards
 
Daniel Duffy
 
I include some links to white papers and new book
 
-----Original Message-----
From: [hidden email] [mailto:[hidden email]]On Behalf Of Berardi Luca
Sent: 13 April 2004 11:11
To: Quantlib-Users (E-mail)
Subject: [Quantlib-users] Path valuation issue


Hi there,

I would be interested in using the MonteCarlo framework to valuate path-dependent options. I assume to have a payoff which evaluates to -let's say- 3 fixing dates for expiry 1 year, but I'd like to integrate the stochastic differential equation (SDE, for short) for the underlying using a denser temporal grid, e.g. using 1000 temporal steps.

Hence I generate the path of interest (as a collection of times and drift-diffusion couples)  "integrating" the corresponding DiffusionProcess over the 1000 elements TimeGrid. Then I pass this generated Path as argument of the operator() function in my Pricer class.

As far as I can understand, however, the current Path implementation in QuantLib does not make any difference between fixing dates (i.e. "mandatory times") and times in the Path only used to integrate the SDE. So if I need to evaluate the payoff over my 3 fixing dates I have to "re-integrate" the underlying SDE also in my Pricer::operator( ) function (to get the underlying values corresponding to the 3 fixing dates of interest). This seems to me a bit computationally inefficient.

What I kindly ask is then:
1) am I getting a correct interpretation of the problem?
2) if so, are there any available solutions?
3) and, is this an issue already considered by QuantLib developers?

Thanks in advance.

Luca Berardi




DISCLAIMER: Privileged/Confidential Information may be contained in this message and in any of its attachments (the "message"). If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply e-mail. The contents of this message shall be understood as neither given nor endorsed by Banca Profilo S.p.A., nor Profilo SGR S.p.A., nor Profilo Asset Management SGR S.p.A., nor Profilo Academy S.p.A.. Banca Profilo S.p.A., Profilo SGR S.p.A., Profilo Asset Management SGR S.p.A., Profilo Academy S.p.A. do not accept liability for corruption, interception or amendment, if any, or the consequences thereof.

Il presente messaggio e/o i suoi allegati (di seguito il "messaggio") possono contenere informazioni privilegiate e/o confidenziali. Se non siete i destinatari indicati nel messaggio (o persona incaricata di inoltrare il messaggio al/i destinatario/i), non potete copiare o inoltrare il messaggio ad altri e siete invitati a distruggerlo dandone informazione al mittente a mezzo e-mail. Il contenuto del presente messaggio non deve essere considerato come trasmesso o autorizzato nè da Banca Profilo S.p.A., nè da Profilo SGR S.p.A., nè da Profilo Asset Management SGR S.p.A., nè da Profilo Academy S.p.A.. Nè Banca Profilo S.p.A., nè Profilo SGR S.p.A., nè Profilo Asset Management SGR S.p.A., nè Profilo Academy S.p.A. si assumono alcuna responsabilità per eventuali intercettazioni, modifiche o danneggiamenti del presente messaggio e-mail e per le eventuali conseguenze.


Reply | Threaded
Open this post in threaded view
|

RE: Path valuation issue

Ferdinando Ametrano-3
Hi Daniel

>I am working on path-dependent options from the viewpoint of PDE/FDM. This
>offers a number of advantages such as:
>
>     Performance (much faster than MC)
>     Well-developed theory (people have being using FDM for 200 years)
>     Easy to program in C++
>
>If I can be of help to the Quantlib you know where to find me.

I was already looking forward to your book "Designing and implementing
financial instruments in C++" and I'm pleased QuantLib is under your radar.
Does the book include a CDROM with C++ code? If this is the case under
which license you release the code?

I've taken a look at your "<http://www.datasim.nl/downloads/single.zip>C++
Singleton Pattern implementation using smart pointers" but unfortunately
the code has just the copyright with no license agreement.
I hope you would adopt a BSD-like license as P. Jackel did and M. Joshi
will do: this is required for the adoption of the code in QuantLib.

Anyway I would be pleased to have you reviewing and helping the QuantLib
PDE/FDM framework.

ciao -- Nando



Reply | Threaded
Open this post in threaded view
|

Re: Path valuation issue

Luigi Ballabio-2
On 2004.04.13 19:20, Ferdinando Ametrano wrote:
> I was already looking forward to your book "Designing and  
> implementing financial instruments in C++" and I'm pleased QuantLib  
> is under your radar.

Rats. I was hoping it was ON your radar :)

> Anyway I would be pleased to have you reviewing and helping the  
> QuantLib PDE/FDM framework.

Absolutely. The current FDM code is a kind of legacy from a time when  
we were younger and more naif (not that we're not young and naif now,  
but we were even more so :) and will have to be refactored in the  
future to match more recent parts of the library. We'll try and put the  
discussion on the mailing list.

Later,
        Luigi