我正在尝试在将来的不同时间计算出短暂电话的利润/损失,但这并不正确。与到期时间相比,剩下的时间的利润较低,高于罢工价格,但在罢工以下的某个时刻,它们的价值不会像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中的错误。或者,您已经误解了要传递的参数的含义。更仔细地查看您的内容,重新阅读该功能的文档,并获得一组好的基线案例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top