Hi Team,
Current I am in an effort to improve the convergence speed of FdBlackScholesVanillaEngine to digital option. The background is as follows:
For digital option there is some discontinuity in the initial condition. Such discontinuity will cause the straight Crank-Nicolson method to show severe odd-even effect. In current implementation, the pricing engine will use several damping steps to suppress some effect. However as claimed in Interest Rate Modeling. Section 2.5 p60 in V1 by Anderson and Piterbarg, Damping steps is not adequate for such task. Referencing to Tavella and Randall’s book, they suggest to shift the grids to let the discontinuity lies exactly half way between 2 grids. They claimed that this will greatly improve the convergence.
I have completed such experimental implementation in QuantLib. Besides I do a comparison between “Grids Shift + Damping” and “Damping” methods. The result is promising. The convergence speed is greatly improved and is consistent with what Anderson and Piterbarg claimed. The result can be referred from the attached Shift_experiment.xlsx file.
To replicate my result, you can replacing the original files in ql\methods\finitedifferences\meshers with the files I attached (concentrating1dmesher.hpp, concentrating1dmesher.cpp). And run the test program testPDEScheme.cpp
The results is based on “Grids shift + 2 damping steps”. Also you can run the test program without replacing the mesher file to see what is result of “2 damping steps”. Besides I also run through the QuantLIb test suite. This change won’t break any existing test case.
Is anyone have some interest to have a look at this? I’d like to create a pull request for this change if no one is against it.
Regards,
Cheng
Free forum by Nabble | Disable Popup Ads | Edit this page |