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:
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. |
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 |
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 |
In reply to this post by Berardi Luca
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
|
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 |
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 |
Free forum by Nabble | Edit this page |