Thanks for your reply
But my problem is on stock grid not on the convertible bond grid
To have an example :
add a display in the void DiscretizedConvertible::applyConvertibility()
to see what is the first node of the grid (for american exercise) :
void DiscretizedConvertible::applyConvertibility() {
Array grid = adjustedGrid();
for (Size j=0; j<values_.size(); j++) {
if (values_.size()==1) {
std::ofstream fichier("C:/TEST.txt", std::ios::out | std::ios::app );
fichier << grid[j] << " " ;
fichier << std::endl;
fichier.close();
}
Real payoff = arguments_.conversionRatio*grid[j];
if (values_[j] <= payoff) {
values_[j] = payoff;
conversionProbability_[j] = 1.0;
}
}
}
And run the ConvertibleBonds.cpp (quantlib example) the result in the test file is 37.483 and the spot was 36.00
and 37.483 is spot - Sum(NPV(Div) + Sum(DIV) (see excel file simple exemple without calendar adjustment...)
So the stock grid taken into account for convertible bond price computation at each node is not the real stock grid? or I miss something ?
Best regards,
--- En date de : Mer 2.12.09, Luigi Ballabio <[hidden email]> a écrit :
De: Luigi Ballabio <[hidden email]> Objet: Re: [Quantlib-users] Question on convertible bond (with discretesdividends) À: "benoit houzelle" <[hidden email]> Cc: [hidden email] Date: Mercredi 2 Décembre 2009, 12h00
On Thu, 2009-11-26 at 10:20 +0000, benoit houzelle wrote: > I have a question about discretes dividends in the binomial > convertible bond pricing engine It seems that > > The grid is computed with spot - sum{ NPV(dividends) } > After in the backward computation, we add in the grid the > dividends (just dividend not the NPV of dividend) > > --> in the last value of grid (ie grid[0][0]) the value is > spot - Sum(NpV(Div)) + Sum(Div) != Spot
No, it doesn't work as that. The dividends are added (non discounted) at the nodes corresponding
to their payment date. As we work backwards on the tree, the values at the nodes are discounted during roll-back so that we have spot - Sum(NpV(Div)) + Sum(Npv(Div)) at the first node.
Algorithmically, this is different than what Hull does (i.e., add at each node the discounted value of the dividends---note, though, that the value is discounted to the time of each node, not to t=0.) But in the end, it is equivalent. We just discount while combining the nodes rather than beforehand.
Luigi
--
If I do not want others to quote me, I do not speak. -- Phil Wayne
|