В ходе тестирования алгоритма я вычислил цены опционов на случайные входные значения, используя стандартную функцию ценообразования blsprice
, реализованную в Financial Toolbox компании MATLAB.Отрицательные цены опциона для определенных входных значений в MATLAB?
Удивительно (по крайней мере для меня),
видимо функция возврата отрицательных цен опционов для определенных комбинаций входных значений.
В качестве примера взять следующее:
> [Call,Put]=blsprice(67.6201,170.3190,0.0129,0.80,0.1277)
Call =-7.2942e-15
Put = 100.9502
Если изменить время истечения срока для 0.79
или 0.81
, значение становится неотрицательным, как я бы ожидать.
Неужели кто-нибудь из вас когда-либо испытывал нечто похожее и может придумать короткое объяснение, почему это происходит?
Этот вопрос может быть более подходящим для [quant.se]? Однако, поскольку значение настолько маленькое, что я подозреваю, что это просто [ошибка с плавающей точкой] (http://floating-point-gui.de/) из-за усечения в какой-то момент внутренних вычислений. Может быть, рассмотреть округление до подходящей точности, скажем, 4 десятичных точки? Затем цена 'Call' становится' 0'. – Dan
Также может быть хорошим вопросом, чтобы спросить поддержку MathWorks, подав [запрос на обслуживание] (http://www.mathworks.com/support/contact_us/?s_tid=sp_ban_cs). Это может быть ошибка, или они могут просто не применять граничное условие.Вы также можете просмотреть базовый код (если он не скомпилирован или 'pcode'ed), чтобы увидеть, что происходит: введите' edit blsprice' в свое командное окно. – horchler