Hello,
I have a couple of questions / comments about the Monte Carlo framework. In the current framework the MCVanillaEngine only handles European options. Is the plan that it should be able to handle American options? If not I think that the code could be simplified by merging it with the MCEuropeanEngine. In the Longstaff-Schwartz Least Squares Monte Carlo algorithm the simulated paths are generated first, and then stored. After that the next step in the algorithm is to work BACKWARDS from the expiry time of the option to estimate the contiuation value of the option at each time step, and therefore find a sub-optimal stopping rule. I don't see that this is possible using the current MonteCarloModel. Therefore I have started on an AmericanMCEngine class. While playing with the PathGenerators and RandomNumbers I tried using new MonteCarlo::GaussianPathGenerator(bs, T, timeSteps, gen) which gives a complie error in pathgenerator.hpp at next_Path(timeGrid),1.0) The constructor using the TimeGrid works okay. I am not entirely up to speed with the code yet, but it seems that this cannot work as timeGrid has not been initialized, and is not in that constructor. That constructor does not seem to be used anywhere in the code. Looks like a cut and past job to me... Should I submit it as a bug to the bug list on sourceforge (it doesn't seem that there are many bugs!). Cheers, Neil --------------------------------------------------- Neil Firth Brasenose College Oxford OX1 4AJ United Kingdom Office: 01865 280616 [hidden email] http://www.maths.ox.ac.uk/~firth --------------------------------------------------- |
Hi Neil,
At 12:09 AM 7/16/03 +0100, Neil P Firth wrote: >I have a couple of questions / comments about the Monte Carlo framework. > >In the current framework the MCVanillaEngine only handles European >options. Is the plan that it should be able to handle American options? If >not I think that the code could be simplified by merging it with the >MCEuropeanEngine. Not Americans, but I think it could possibly handle Asian options (emphasis on "possibly".) I guess our best shot is to try and implement some kind of Asian, after which it will be (more) clear if they do have a common base class and what it is. >In the Longstaff-Schwartz Least Squares Monte Carlo algorithm the >simulated paths are generated first, and then stored. After that the next >step in the algorithm is to work BACKWARDS from the expiry time of the >option to estimate the contiuation value of the option at each time step, >and therefore find a sub-optimal stopping rule. > >I don't see that this is possible using the current MonteCarloModel. I've seen the algorithm, although not in detail. No, it is not possible to implement it with the current MonteCarloModel---it only evaluates the paths one at a time. >Therefore I have started on an AmericanMCEngine class. While playing with >the PathGenerators and RandomNumbers I tried using > >new MonteCarlo::GaussianPathGenerator(bs, T, timeSteps, gen) > >which gives a complie error in pathgenerator.hpp at > >next_Path(timeGrid),1.0) > >The constructor using the TimeGrid works okay. >I am not entirely up to speed with the code yet, but it seems that this >cannot work as timeGrid has not been initialized, and is not in that >constructor. That constructor does not seem to be used anywhere in the >code. Looks like a cut and past job to me... Should I submit it as a bug >to the bug list on sourceforge (it doesn't seem that there are many >bugs!). Ouch. A cut and paste job it is. I just committed a corrected version into CVS. Thanks, Luigi |
Free forum by Nabble | Edit this page |