Hi

I just wanted to check I'm not chasing my tail here. This actually stems from an exercise in C++ Design but it's starting to become more of a math question. The intention is to model the stock process as a martingale rather than a series of up/down/mid factors from the initial spot. So as per the usual tree methodology, the final time layer of spots is obtained with the up/down/mid factors. But then instead of calculating the next time layer from the initial spot, we want to take the expected present values of the spots in the final time layer.

With a binomial tree, I think this works fairly well as the formulae for the (risk neutral) probabilities gives something close to 0.5. However when I use the trinomial tree probability formulae to take the expected present value of the final time layer spot values, I consistently undervalue the next layer spot values compared to if I were to calculate it from the initial spot value.

The result is that if I try to value an american option using a trinomial tree with martingale stock process, the american price is always equal to the european price. The undervaluing of the next layer spots means that at the next time layer, the expected present value of payoffs is always the expected present value of the payoff from the final time layer (and never say, for a call, max(Spot-Strike, 0)).

So for a trinomial tree, is it possible to take the expected present values of the final time layer spots so that it converges to the initial spot value?

Thanks