Open
Description
Your YieldToMarurity calculation uses formula for approximate YTM (please read carefully mentioned source).
In the middle of http://www.financeformulas.net/Yield_to_Maturity.html there's formula for present value of a bond.
To get precise YTM you have to reverse formula to get r from it.
It's hardly reversible, and you have to approximate it with binary search or using Newton–Raphson method.