Asked by Locks
on 1 Apr 2013

hi,

I have the following code:

x=[0:0.0001:20] y1=blsprice(x,10,0.02,0.2,0.2)-blsprice(10,10,0.02,0.2,0.2)

x1=[8:0.001:12] y2=[0.85:-0.000425:-0.85]

plot(x,y1,x1,y2,'k') xlabel('Stock Price ($)'); ylabel('Option price ($)'); axis([8 12 -1 2]);

text(10,1.1,'delta-hedge at t=0')

that gives me one straight line and a curve and I would like to plot a third line with the difference (y1-y2) but it's not working, probably due to the fact that there are different elements, is there any way to do this?

*No products are associated with this question.*

Answer by Walter Roberson
on 1 Apr 2013

Use interp1() to produce values with a common x base so that you can subtract meaningfully.

Show 7 older comments

Walter Roberson
on 1 Apr 2013

plot(xi, yi - yj)

You interpolated over the same x values, xi, so there *must* be the same number of elements between the two.

Answer by Locks
on 2 Apr 2013

thanks! it's working now, but is there really no way to get the exact slope? because I plot the difference (or to be more exact it's the sum because the curve starts negative and the line becomes negative) and the combined position should show a delta hedged position and at the moment it's obvious that this is just an bad proxy

Walter Roberson
on 2 Apr 2013

As discussed in http://www.mathworks.co.uk/matlabcentral/answers/69325-plot-the-slope-of-a-curve-in-the-same-plot#answer_80575 in order to get the exact slope, you need to work with the formula, not with the calculated data points.

Imagine you are heading due west on a road, and you can see 1 km ahead that the road continues on due west. What is the exact slope?

Oh, did I forget to mention that you are on a mountain-side and that the road you can see ahead is on the next peak over?

Opportunities for recent engineering grads.

## 0 Comments