Let's start with a zero-coupon bond. This is one of the simplest financial instruments, in fact it's just a loan with fixed return date. The classic approach uses Martingale pricing employing random variable for uncertain future rates. I will attempt to do similar valuation with fuzzy numbers.
The goal is to determine present value of the bond: $$$ P=\frac{M}{1+i} (1)$$$
Here,
Rate
Let's try fuzzy valuation on T-bill.
Let's say, we are buying $10,000 T-bill at discount rate of 0.12 percent, which means that
we will earn $12 over a year. We believe that the rate is not going to be over 0.14 percent,
it's unlikely that it can be lower than 11, and there prevailing market rate right now is 0.12 percent.
This can be described by triangular fuzzy number:
$P=\frac{$10,000}{1+[0.0011,0.0012,0.0014]}=[$9986.02,$9988.01,$9989.01]$
Looks slightly simpler than stochastic calculus, right? No assumptions made about the nature of stochastic process and random distribution either. The obvious question, of course, is what do to with this resulting fuzzy number and how it is compatible with the price of the bond. After all, the ultimate goal of the whole exercise is to decide if this bond is worth investing into. There is a range of methods for so-called defuzzification which deserves separate post and discussion.
Now, let's apply fuzzy approach to common bond. The difference is in coupons paid in fixed periods of time before the maturity. As an example, let's take 2-year $1,000 bond with coupon rate of 10%. It means that we will have 2 coupon payments of $100. Typically, coupon payments are semi-annual, I'm using annuals for the sake of simplicity.
There are several approaches to the valuation of bonds. Arbitrage-free approach allows to model a bond by stripping the coupons and representing each of them as a zero-coupon bond. Each of these bonds will come with its own interest rate corresponding to the date of maturity. The nice thing about this approach is that it aligns well with common sense. Indeed, arbitrage-free means that if something like that can be done, the price of the bond should reflect it, because otherwise it would be possible to make money without risk by creating such synthetic bond out of zero-bonds and pocketing difference in price. Obviously, there are various tax-related and operational details, including liquidity issues, which would be reflected in the price of synthetic bond which we will ignore for the sake of simplicity.
Applying this approach, we can view the bond as a sum of cash flows from all of the coupon payments and
par value. Now, there are two interest rates involved - for each year. Let's keep
Present value is calculated as
$P =\frac{$100}{1+[0.0011,0.0012,0.0014]}+\frac{$1,100}{(1+[0.0008,0.0011,0.0016])^{2}}$
$P =[$1,196.35; $1,197.46;
Based on my implementation of fuzzy calculus, the calculation can be made with following code:
[sourcecode language="fsharp"] let i1 = number(0.0011m,0.0012m,0.0014m) let i2 = number(0.0008m,0.0011m,0.0016m) let M = 1000m let couponRate = 0.1m
let coupon = M * couponRate let PV = coupon/(1m+i1)+(coupon + M)/Fuzzy.pow(1m+i2, 2.) [/sourcecode]
Next, I will talk about defuzzification and ways of using these numbers for actual bond valuation.