PDE approach

I used my implementation of the implicit method to resolve the PDE in MacKay et Al, DOI: 10.1111/jori.120942017 and reproduce the left hand side (T = 10) of their Table 2 (pag 15). In fact, by sticking their fair fee values I consistently get 100 +/- 0.01. The conclusion is that my implementation reproduces their results.

##  [1] "Fee:  0.0393  Age:  50  =>  100"    
##  [2] "Fee:  0.0442  Age:  60  =>  100"    
##  [3] "Fee:  0.0549  Age:  70  =>  100"    
##  [4] "Fee:  0.019  Age:  50  =>  99.9949" 
##  [5] "Fee:  0.0205  Age:  60  =>  99.9935"
##  [6] "Fee:  0.0237  Age:  70  =>  99.9978"
##  [7] "Fee:  0.0167  Age:  50  =>  100.013"
##  [8] "Fee:  0.0179  Age:  60  =>  100.005"
##  [9] "Fee:  0.0204  Age:  70  =>  100.01" 
## [10] "Fee:  0.0166  Age:  50  =>  99.9915"
## [11] "Fee:  0.0177  Age:  60  =>  100.018"
## [12] "Fee:  0.0202  Age:  70  =>  100.01"

Monte Carlo approach

I then tried to calculate the same values by means of my implementation of the algorithms proposed in Bacinello et Al. 2011.

##  [1] "Fee:  0.0393  Age:  50  =>  99.4013"
##  [2] "Fee:  0.0442  Age:  60  =>  99.4678"
##  [3] "Fee:  0.0549  Age:  70  =>  99.3081"
##  [4] "Fee:  0.019  Age:  50  =>  99.8388" 
##  [5] "Fee:  0.0205  Age:  60  =>  100.049"
##  [6] "Fee:  0.0237  Age:  70  =>  99.7201"
##  [7] "Fee:  0.0167  Age:  50  =>  100.019"
##  [8] "Fee:  0.0179  Age:  60  =>  99.9571"
##  [9] "Fee:  0.0204  Age:  70  =>  99.7342"
## [10] "Fee:  0.0166  Age:  50  =>  99.8135"
## [11] "Fee:  0.0177  Age:  60  =>  100.28" 
## [12] "Fee:  0.0202  Age:  70  =>  99.9318"

The number of paths used are 20000 and the Standard Error is around 0.2. Even if for some value of the fee there is a good match, for others it seems to underestimate the value of the contract considerably.