You're not setting the global evaluation date. If you don't, you're in December 2017 and your option has expired a good while ago. Adding ql.Settings.instance().evaluationDate = valuation_date before the calculations will give you the expected results.


This equivalence can only be written for discrete proportional dividends. For discrete cash dividends the two spot diffusion models are too different for that relationship to be written in general form (since the div yield model guarantees strictly positive future equity prices, while using discrete cash dividends does not). More specifically, if you have $...


The derivation in the book appears wrong. However, the results make sense as the option price at time $t$ should not be impacted by prior dividend payments. It may be out-of topic, I would like to provide some justification of the Musiela-Rutkowski formula. Let $\{H_t \mid t >0\}$, where \begin{align*} H_t = \sum_{0 < T_i \leq t} q_i, \end{align*} ...


What do you mean by annotation date, there is a declaration(announcement) date, ex-date, record date but I've never heard of an annotation date. Dividends are not decided always at the fiscal year end, in some countries they are approved by the shareholders general meeting which can happen at any time during the year, some companies pay quarterly, others ...


When the dividend is paid, the stock price on your tree should drop by the same amount. Ie if the dividend is 10 and the value of stock is 100 before the dividend at a node, you should change it to 90 and then continue building the tree from there. A cursory google brings quite a few results, eg this around slide 46 seems to explain it well


You may want to read this paper for GBM with discrete dividend.


You must convert all cash and dividend streams into the index points . The current value of the index between stocks seems ok but the dividends need to be converted to index points. Basically divide the dividends you’ve calculated by the index divisor. Then the calculation seems ok


One solution is to calculate the annual dividend yield implied by that. $Div_{yield}=\delta=1.5/40$ and then replace the $r$ on $d_+$ by $r-\delta$. A cleaner way would be to compute it using a binomial tree.

Only top voted, non community-wiki answers of a minimum length are eligible