如何使用黑色choles公式计算短选项的价值?
-
28-09-2019 - |
题
我正在尝试在将来的不同时间计算出短暂电话的利润/损失,但这并不正确。与到期时间相比,剩下的时间的利润较低,高于罢工价格,但在罢工以下的某个时刻,它们的价值不会像t = 0线那样快。以下是伪代码中的公式,我在做什么错?
profit(stockprice) = -1 * (black_scholes_price_of_call(stockPrice,optionStrike,daysTillExpiration) - premium);
真实MATLAB代码:
function [ x ] = sell_call( current,strike,price,days)
if (days > 0)
Sigma = .25;
Rates = 0.05;
Settle = today;
Maturity = today + days;
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, 'EndDates',...
Maturity, 'Rates', Rates, 'Compounding', -1);
StockSpec = stockspec(Sigma, current);
x = -1 * (optstockbybls(RateSpec, StockSpec, Settle, Maturity, 'call', strike) - price);
else
x = min(price,strike-current-price);
end
结尾
谢谢,CP
解决方案 2
我发现这个问题,这与Ratesspec的论点有关。当您通过利率时,它会影响期权定价。
其他提示
您的配方不正确。我不知道为什么您需要那个领导-1作为乘数的乘数,因为当我将其分发时,“公式”是一个简单的:
profit(stockprice) = premium - black_scholes_price_of_call(stockPrice,optionStrike,daysTillExpiration);
很简单。因此,这意味着问题以通话价格埋在该功能中,对吗?
当我将您的公式与Wikipedia上的定义相提并论时,我根本看不到信件。您的MATLAB代码也无济于事。挖掘功能,看看您出错的地方。
你写那些吗?在将它们组装到更大的功能中之前,您如何测试它们。在将它们组装成较大的东西之前,请测试较小的块。
您正在测试什么基线?您将计算的计算比较已知?有很多BS计算器可用。也许您可以使用其中之一。
我假设这是您的代码而不是MATLAB中的错误。或者,您已经误解了要传递的参数的含义。更仔细地查看您的内容,重新阅读该功能的文档,并获得一组好的基线案例。
不隶属于 StackOverflow