|
I was going to finish up some unfinished business and add a control
variate to the dividend engine, but then I wondered if it made sense to
do so. In the original code, the control variate was not regrided after
the dividend is issued, and because of that I was wondering if it makes
sense at all to add in a control variate.
One other thing, it also seems that it would be a good idea to separate
out the control variate in its own class. There is a lot of common code
in there, and one would think that one could have an abstract control
variate class which could be subclassed for both monte carlo, finite
differences and binomal trees.
There are also some other structural issues with the finite difference
vanilla engine. The first is that it would seem that one would want one
finite difference engine which would be smart enough to figure out what
type of instrument is being differenced, and morph itself to handle that
instrument.
The second related issue is that it seems that the different
"attributes" of a finite difference engine should be handled with some
sort of decorator pattern so that you just have to code for "American"
and "dividend-paying" and then combine the two to get an American option
on a dividend-paying stock.
One final issue is that it bothers me to call and structure things as a
dividend option since the option isn't paying the dividend.
|