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?

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments