Class DividendTree

java.lang.Object
com.quantfinlib.pricing.DividendTree

public final class DividendTree extends Object
European and American options on a stock paying discrete cash dividends, on a recombining Cox-Ross-Rubinstein tree, by the method of Vellekoop and Nieuwenhuis (2006, "Efficient pricing of derivatives on assets with discrete dividends", Applied Mathematical Finance 13(3), 265-284).

The model is the one traders mean: the stock follows geometric Brownian motion between ex-dates and drops by the cash amount D at each ex-date. Subtracting D from the nodes would make the tree non-recombining. Vellekoop and Nieuwenhuis keep one recombining lattice of stock levels S_ij = S u^{2j-i} and move the dividend into the value function instead: at an ex-date step i,

  V_cum(S_ij) = max( exercise(S_ij),  V_ex(S_ij - D) )      (American)
  V_cum(S_ij) = V_ex(S_ij - D)                              (European)

where V_ex is the value just after the drop, known on the same level's nodes and read at S_ij - D by linear interpolation in S (linear extrapolation above the top node; below the bottom node, linear towards the value at S = 0, which is 0 for a call and K for an American put or K e^{-r(T-t)} for a European put). The exercise test on the cum price is what captures early exercise of calls just before an ex-date.

Conventions: borrow is a continuous yield (stock borrow fee) on top of the cash dividends, entering like carry in BinomialTree. Each ex-date is moved to the nearest tree step, and to step 1 if it rounds to 0, so the date error is at most dt/2; several dividends on one step are summed. A dividend with ex-time equal to expiry is applied to the terminal payoff; dividends after expiry are ignored. With an empty schedule the price equals BinomialTree.price(BlackScholes.OptionType, BinomialTree.ExerciseStyle, double, double, double, double, double, double, int) to rounding (tested). Convergence is first order in dt, like the plain CRR tree. Allocates three arrays of steps + 1 doubles per call.

  • Method Details