dvoris
|
Date: 2/20/2012
Пример расхождений: код опциона, страйк, премия BlackScholes, премия моя, дельта BlackScholes, дельта моя 20:52:05 RI140000BC2 140000 27595,6 27760,8 0,958 0,944 20:52:05 RI145000BC2 145000 22790,4 23007,5 0,933 0,916 20:52:05 RI150000BC2 150000 18132,9 18416,2 0,890 0,871 20:52:05 RI155000BC2 155000 13721,1 14078,0 0,823 0,804 20:52:05 RI160000BC2 160000 9692,2 10113,9 0,723 0,708 20:52:05 RI165000BC2 165000 6226,4 6679,4 0,587 0,582 20:52:05 RI170000BC2 170000 3534,8 3963,2 0,424 0,433 20:52:05 RI175000BC2 175000 1751,9 2098,6 0,264 0,283
|
dvoris
|
Date: 2/20/2012
|
|
|
|
Опытным путем выяснил, что, скорее всего, в BlackScholes используется время окончания основной сессии дня экспирации. Я всё-таки думаю, что чуть правильнее использовать время начала сессии или время первого клиринга (14:00), правда, это уже казуистика и сильно на расчеты не влияет. Подставляя в формулу БШ такое время, параметры опционов почти сопадают с S#, с цифрами в терминале SmartTrade и т.д. dt = ((DateTime)s.ExpiryDate).AddHours(14.0); T = (dt - Trader.MarketTime).TotalSeconds / 31536000.0; // 365 * 24 * 60 * 60
Что более интересует, так это расчёт IV из цены опциона. Заметил, что иногда BlackScholes не может рассчитать IV, и выдаёт 0. Причем, одновременно с этим другие реализации подбора IV тоже не могут рассчитать волатильность. Косяк возникает, как правило, на дальних страйках. Причем, уловить зависимость я не смог. При незначительном изменении волатильности, цены БА, он может то возникать, то не возникать. Возможно, алгоритм попадает в какую-то оптимизационную ловушку, и не может добраться по кривой к искомой IV.. (??) Хотя это странно.
|