【发布时间】:2017-02-17 00:37:45
【问题描述】:
在测试算法的过程中,我使用 MATLAB 的金融工具箱中实现的标准定价函数 blsprice 计算了随机输入值的期权价格。
出人意料(至少对我来说),
对于某些输入值组合,该函数似乎返回负的期权价格。
举个例子:
> [Call,Put]=blsprice(67.6201,170.3190,0.0129,0.80,0.1277)
Call =-7.2942e-15
Put = 100.9502
如果我将到期时间更改为 0.79 或 0.81,则该值将变为非负值,正如我所期望的那样。
你们有没有人遇到过类似的事情,并能想出一个简短的解释为什么会发生这种情况?
【问题讨论】:
-
这个问题可能更适合Quantitative Finance?但是,由于该值非常小,我怀疑它只是一个floating point error,因为在内部计算的某个时刻被截断了。也许考虑四舍五入到一个合适的精度,比如 4 个小数点?然后
Call价格变为0。 -
通过提交service request 请求 MathWorks 支持可能也是一个好问题。这可能是一个错误,或者他们可能只是没有强制执行边界条件。您还可以查看底层代码(如果它未编译或
pcodeed)以了解发生了什么:在命令行窗口中输入edit blsprice。
标签: matlab quantitative-finance