Dear all,
I’m trying to use QuantLib for the valuation of DividendVanillaOption. (I’m a new and impressed user) I’ve made a little test to check the consistency of the results: I’ve assumed that the underlying pays discrete dividends equal to 0, and compare with an underlying who doesn’t pay any dividend. In the European exercise case, all it’s OK. However, in the American exercise case they are a difference. :( In this context, they must be all equal. I use the PricingEngine FDDividendAmericanEngine and FDAmericanEngine for American exercise and AnalyticDividendEuropeanEngine and AnalyticEuropeanEngine for European exercise. /////////////////////////// RESULTS //////////////////////////////////////////////// Description of the option: IBM Option Date of maturity: January 26th, 2013 Type of the option: Call Strike of the option: 190 Discrete dividends Dates Dividends February 10th, 2012 0 May 10th, 2012 0 August 10th, 2012 0 November 10th, 2012 0 NPV of the European Option with discrete dividends=0: 17.9647 NPV of the European Option without dividend: 17.9647 NPV of the American Option with discrete dividends=0: 18.5707 NPV of the American Option without dividend: 17.9647 ////////////////////////////////////////////////////////////////////////////////////// Note that in the case of a null risk-free, the results are correct. I have also one other question: I don’t really understand the two parameters timeSteps and girdPoints in the FDAmericanEngine and FDDividendAmericanEngine objects. I understand that we need to define the discretization gird, but I don’t understand how it works. I used to follow the following recommendation for L_infinity stability in the Crank Nicolson scheme: delta_t/(delta_x*delta_x) <= 1 Please, see the attached .cpp file. I’m using the 1.1 version. Thanks, Best regards, MA ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users OptionValuation.cpp (18K) Download Attachment |
Hello,
we're guilty on both counts, I'm afraid. The behavior of the American seems to be a bug, so we'll have to investigate. As for the grid points, I had a look at the code and it's indeed not obvious what's happening in there. The calculations can be read in fdvanillaengine.cpp. On the time axis, the time goes from today to maturity date, and delta_t is just the time span divided by the number of time steps (with some small adjustment to ensure that the dividend times are on the grid). On the price axis, the engine sets a logarithmic grid centered on the spot and extending in either direction by 4 times the sigma of the expected price distribution at maturity. The number of points in the log grid is given by the passed gridPoints parameter. I'll let you know what I find about the American case (it might take a while before I can have a look, though.) Later, Luigi On Fri, Jan 27, 2012 at 6:33 PM, Marie-Aude BRUANT <[hidden email]> wrote: > I’m trying to use QuantLib for the valuation of DividendVanillaOption. (I’m > a new and impressed user) > I’ve made a little test to check the consistency of the results: > I’ve assumed that the underlying pays discrete dividends equal to 0, and > compare with an underlying who doesn’t pay any dividend. > In the European exercise case, all it’s OK. However, in the American > exercise case they are a difference. :( In this context, they must be all > equal. > [...] > I have also one other question: I don’t really understand the two > parameters timeSteps and girdPoints in the FDAmericanEngine and > FDDividendAmericanEngine objects. I understand that we need to define the > discretization gird, but I don’t understand how it works. I used to follow > the following recommendation for L_infinity stability in the Crank Nicolson > scheme: > delta_t/(delta_x*delta_x) <= 1 ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |