Info
此问题已关闭。 请重新打开它进行编辑或回答。
Piecewise function for black-scholes
1 次查看(过去 30 天)
显示 更早的评论
hello, I am trying to get a piecewise function, f(x) = blsprice for Put if exercise price < S_0; blsprice for Call if exercise price >= S_0.
I have all the inputs in my code as well, didn't include it here.
my code:
syms y
y = piecewise(E < S_0, [Put] = blsprice(S_0,E,r,T,sigma), E >= S_0, [Call] = blsprice(S_0,E,r,T,sigma))
I am getting an error: the expression to the left of the equal sign is a valid target for an assignment.
0 个评论
回答(1 个)
Neil Guertin
2017-9-7
piecewise expects a value in the second and fourth arguments, and what you have entered is not valid syntax there.
What you need to do is calculate the values first, then pass the results to the piecewise function.
[Put, Call] = blsprice(S_0,E,r,T,sigma);
y = piecewise(E < S_0, Put, E >= S_0, Call)
0 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!