Serving the Quantitative Finance Community

 
User avatar
nealsmith
Topic Author
Posts: 0
Joined: June 12th, 2011, 12:20 pm

caplet as bond put

August 26th, 2011, 2:53 pm

HiI'm working through Hull, and I'm stuck at trying to get the same price from a caplet as from the equivalent bond put. Looking at Example 28.3, a caplet on L=10 at strike K=.08 for 3mo=.25 starting in t_k=1y. LIBOR curve is flat at .07, vol sigma=.2, and zero rate is .069395. So I plug these into as given in Hull and I get the correct caplet price .005162.However just before this, Hull says the caplet is equivalent to a bond put. This is where I'm stuck. I'm able to do the algebra to rewrite the caplet payoff asHull says this is a bond put, expiring at t_k, on a zero with face value L(1+R_K\delta_k) with maturity t_{k+1}. The strike of the put equals L. So according to this, I'm using the Black 76 formula (in Hull Section 28.1) with F_b=10(1+.08*.25), K=10, t=1 and p(0,t)=\exp(-.07*1.). The volatility for the caplet is a yield volatility, so I believe I should convert that to a bond price volatility using the duration, giving me sig_b=1*.07*sig=1*.07*.2.However plugging this into Black's equation gives me a significantly different put value, .0046. d_1 and d_2 are also quite different, indicating that the probablility of exercising the put is different from the caplet.I would appreciate any help!Best-Neal
 
User avatar
manolom
Posts: 0
Joined: March 14th, 2006, 2:52 pm

caplet as bond put

August 26th, 2011, 11:13 pm

You cannot use Black's formula to price an option on a zero coupon bond, as the underlying (the price of a zero coupon bond) is not lognormal (because the forward rate is).
 
User avatar
nealsmith
Topic Author
Posts: 0
Joined: June 12th, 2011, 12:20 pm

caplet as bond put

August 29th, 2011, 7:18 pm

QuoteOriginally posted by: manolomYou cannot use Black's formula to price an option on a zero coupon bond, as the underlying (the price of a zero coupon bond) is not lognormal (because the forward rate is).Thanks for this information. I agree with you, but I also read in Hull section 28.1 (Bond Options) that he says "The assumption made in the standard market model for valuing European bond optoins is that the forward bond price has constant volatility \sigma_B. This allows Black's model in Section 27.6 to be used. In equations (27.28) and (27.29) [this are Black's model], \sigma_F is set equal to \sigma_B and F_0 is set equal to the forward bond price F_B so that..." the equations I originally posted.Now in Section 27.6 Hull says "Assume that F_T is lognormal in the world being considered..." It seems to me that, as you say, the zero cannot be lognormal because the forward rate is. but at the same time, the forward bond price can be lognormal?I think my confusion is that there's Black formulas for the caplet (Section 28.2) and for the bond put (Section 28.1) Furthermore in 28.2 Hull says a caplet is a bond put, so I'm trying to get the prices to match. But as you say, this implicitly means both the rate and the bond are lognormal, which would seem to be a problem. What am I doing wrong?Thanks very much-Neal
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 1:57 pm

I have a problem with implementing the pricing of a Caplet in finite differente with Vasicek model. The numerical solution (with the bond put option's payoff) gives huge underpriced values in comparison with the analitycal (both Vasicek), mainly for high values of r.Anybody knows some classical problem with it?BestAllan
Last edited by AllanJonathan on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 2:23 pm

(dupe)
Last edited by Cuchulainn on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 2:23 pm

Are you pricing a caplet as a PDE? It is basically a call option on the floating rate r?// How do your truncate your domain?
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 2:39 pm

Yes.I'm using a large domain [-1 , 2.5] as suggested Here.And the payoff is [$]\max(L-\frac{L(1+R_K\delta_k)}{1+R_k\delta_k},0)[$]
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 3:38 pm

QuoteOriginally posted by: AllanJonathanYes.I'm using a large domain [-1 , 2.5] as suggested Here.And the payoff is [$]\max(L-\frac{L(1+R_K\delta_k)}{1+R_k\delta_k},0)[$]Ah, we had a discussion with @Exner and @Alan on this but I can't remember the thread.Truncation is ad hoc and it can be scary. What about domain transformation as here?http://papers.ssrn.com/sol3/papers.cfm? ... 52926AFAIR you need a transformation to (-1,1) (use tanh, coth).
Last edited by Cuchulainn on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 3:48 pm

I'm already using a transformed domain that corresponds to [-1 , 2.5] ir r-axis.It worked well for zero and coupon bonds, Bond Options, Callable bonds and Swaptions. But not in this specific case of Cap pricing, where I thought it would be easy.
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 4:08 pm

The plot of the solutions is shown here . This discrepancy is not found in other derivatives.
Last edited by AllanJonathan on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 4:29 pm

QuoteOriginally posted by: AllanJonathanThe plot of the solutions is shown here . This discrepancy is not found in other derivatives.Strange.A sanity check(?) is to model the PDE as a floorlet and then use cap/floor parity.1. just to be sure, what domain transformation to get [-1 , 2.5]? Which formula did you use? And not "chopping" the domain. By transformation I mean y = r/(r+1), tanh(r) etc.2. What cap boundary condition at r = 2.5? 3. I think you are truncating the domain if I have understood your original Vasicek link.
Last edited by Cuchulainn on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 4:58 pm

You're right. I'm truncating the domain at these points. I'm using y = log(d*r+c), where r evolves as Vasicek model (d and c are parameters to control the domain size), and homogeneous neumann boundary conditions.As I said before, this strategy worked very well for other fixed-income instruments. Hence, in my mind it would function for pricing caps too...I'll try to price the floorlet and compare with the analitical formula.
Last edited by AllanJonathan on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 5:08 pm

QuoteOriginally posted by: AllanJonathanYou're right. I'm truncating the domain at these points. I'm using y = log(d*r+c), where r evolves as Vasicek model (d and c are parameters to control the domain size), and homogeneous neumann boundary conditions.As I said before, this strategy worked very well for other fixed-income instruments. Hence, in my mind it would function for pricing caps too...I'll try to price the floorlet and compare with the analitical formula.So you are transforming to y and _then_ truncating in y!(?)I have not tried log() but it looks scary. I only need 1 parameter a (define a so that strike/ r* becomes in the middle of (-1,1)). More elegant.tanh(ar) maps r into (-1,1). BTW you get a pde(y) form pde(r).
Last edited by Cuchulainn on November 25th, 2014, 11:00 pm, edited 1 time in total.
 
User avatar
AllanJonathan
Posts: 0
Joined: March 16th, 2013, 4:17 pm

caplet as bond put

November 26th, 2014, 5:49 pm

Really, it's much more elegant. I made this strange choice in the past for not to worry about boundary conditions. I'm using the same boundary conditions in pricing different instruments and they're all converging to the closed forms (except caplets).However, It works for flooret! Now, as you said, it's just to use the parity.Thank you so much!
 
User avatar
Cuchulainn
Posts: 22937
Joined: July 16th, 2004, 7:38 am

caplet as bond put

November 26th, 2014, 6:52 pm

QuoteOriginally posted by: AllanJonathanReally, it's much more elegant. I made this strange choice in the past for not to worry about boundary conditions. I'm using the same boundary conditions in pricing different instruments and they're all converging to the closed forms (except caplets).However, It works for flooret! Now, as you said, it's just to use the parity.Thank you so much!You're welcome.However, something is wrong somewhere. All OK except caplets.You can stress test your log() for CIR, HW, BDT models and see if