Anyone tried function handle of blsprice?
1 次查看(过去 30 天)
显示 更早的评论
For those who are familiar with blsprice,please kindly ignore the next paragraph.
blsprice is in the financial toolbox to price Call/Put Options using Black-Scholes model. The syntax is: [Call, Put] = blsprice(Price, Strike, Rate, Time, Volatility, Yield) e.g.[Call, Put] = blsprice(100, 95, 0.1, 0.25, 0.5) returns call and put prices of $13.70 and $6.35, respectively.
I would like to create a function handle (like funh = @(x)blsprice(x,Strike, Rate, Time, Volatility, Yield) which enables me to control whether it is call or put, cos the result x would be depending on that. Does anyone knows how to do it? Thanks so much!
1 个评论
Fangjun Jiang
2011-11-3
I don't understand the question. x is your input argument. Why did you say "the result x would be depending on that"?
The function returns two outputs. You can always ignore the one that you don't need. Use ~ in R2009b or later might help. [~, Put] = blsprice(100, 95, 0.1, 0.25, 0.5)
采纳的回答
Walter Roberson
2011-11-3
If you are trying to create a function handle that is able to select the second output of a function, then unfortunately there is no way to do that in MATLAB other than to use an auxiliary real function along the line of
function output = selectoutput(funct,x,number)
[t1,t2] = funct(x);
if number == 2
result = t2;
else
result = t1;
end
end
3 个评论
Walter Roberson
2011-11-3
I should not have used "function" as a variable name -- opps!
quad(@(x) selectoutput(funct,x,2),lb,ub)
更多回答(1 个)
Nikolay
2012-4-26
Hi fellas
could you help me with this. If I have the value of the call (c) can I use some kind of solver to find what the S0 and SIG are? I need them for the merton model
[c, p] = blsprice(S0, K, R, T, SIG, Q)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!