Недавно начал изучать Тслаб2.0 и увидел что в Опционном деске, создатели сего продукта дают возможность пользователю использовать переменные (режимы) для итогового расчета подразумеваемой волатильности ну и разумеется для улыбки.
Также очень понравилось, что не надо вручную собирать ОПЦИОННЫЙ ДЕСК, т.е. подгружается только активные СТРАЙКИ.
При более детальном рассмотрении у меня возникли вопросы касательно режима цены.
Пользователю предлагается несколько режимов - LastPrice, BidAskMidPoint, TheorPrice.
С TheorPrice - тут понятно - это цена транслируемая Биржей и соответственно улыбка и IV будет "Биржевой";
Lastprice - не не совсем корректно, так как наш опционный рынок ну мягко сказано "НЕЛИКВИД" на некоторых страйках и иногода LastPrice ТАКАЯ СТАРАЯ, что ее ну просто нельзя использовать для каких либо дальнейших расчетах, а отсюда и к черту полетит вся улыбка и IV.
Самым оптимальным вариантом режима цены с некоторыми оговорками можно использовать BidAskMidPoint, которую можно обозвать СПРАВЕДЛИВОЙ РЫНОЧНОЙ ЦЕНОЙ (MarketFairPrice - MFP).
Ну и здесь мы сталкиваемся также где-то с полным отсутствием BID\ASK на некоторых страйках, и иногда там где есть BID\ASK мы имеем Ask ну просто запредельно НЕРЕАЛЬНЫЙ, что не даст правильно и адекватно рассчитать MFP.
Хотелось бы узнать у создателей как будет решаться данная ситуация?????

На мой взгляд было бы логично производить расчет MFP по следующему алгоритму:
1.
ЕСЛИ
- BidPriceOpt>0, AskPriceOpt>0 при дополнительном условии, что BidPriceOpt=>(AskPriceOpt/n), где n - некий множитель и обычно =10;
ТО
- FMP=средняя(BPO, APO);
ИНАЧЕ
- FMP=0 при условии, что все другие функции не сработали и Смотрим другую функцию
2.
ЕСЛИ
- LastPriceOpt=0 или ПУСТО "NULL", BidPriceOpt=0 или ПУСТО "NULL", AskPriceOpt>0;
ТО
- FMP=0 при условии, что все другие функции не сработали;
ИНАЧЕ
- Смотрим другую функцию
3.
ЕСЛИ
- LastPriceOpt=0 или ПУСТО "NULL", AskPriceOpt=0 или ПУСТО "NULL", BidPriceOpt>0;
ТО
- FMP=0 при условии, что все другие функции не сработали;
ИНАЧЕ
- Смотрим другую функцию
4.
ЕСЛИ
- BidPriceOpt=0 или ПУСТО "NULL", AskPriceOpt=0 или ПУСТО "NULL", при дополнительному условии, что
a) опционы CALL при Strike<=LastPriceFUTURE, т.е. опционы CALL имеют внутреннюю стоимость - т.е. состояние ITM и временную стоимость при приближении к\на центральному страйку - ATM, а
b) опционы PUT при Strike<LastPriceFuture, т.е. опционы PUT имеют внутреннюю стоимость - т.е. состояние ITM и временную стоимость при приближении к\на центральному страйку - ATM;
ТО
- для CALL --- FMP=LastPriceFUT-Strike
- для PUT --- FMP=Strike-LastPriceFUT
ИНАЧЕ
- смотрим другую функцию

В некоторых страйках между страйками, у которых правильно рассчитана MFP мы получили MFP=0, что тоже не совсем корректно, то необходимо вычислить MFP методом пропорционального распределения.
Допустим имеем такой пример:
Страйк имеем MFP окончательно MFP
72000 900 900
72250 0 840
72500 0 780
72750 0 720
73000 0 660
73250 600 600
73500 0 514.29
73750 0 428.58
74000 0 342.87
74250 0 257.16
74500 0 171.45
74750 0 85.74
75000 0 0

Мы имеем между страйками с имеющимися FMP - 4 пустых страйка.
Мы берем 900 и 600 отнимаем и получаем 300 и делим на 5(4 пустых страйка и 1 расчетный) и получаем 60, таким образом следующий страйк после 720000 с ценой 900 будет на 60 меньше.

Имеем самый отдаленный крайний страйк 75000, думается правильным, что этот самый отдаленный крайний страйк 75000 в ОТМ должен быть =0, если нет ЛИКВИДНОСТИ (нет ни Ask ни Bid или имеем запредельно НЕРЕАЛЬНЫЙ Ask) - т.е ранее перебраны все варианты алгоритма расчета MFP, т.е. имеем самый отдаленный страйк 75000, и имеем 7 пустых страйков после 73250 с ценой 600, значит 600/7=85.71., т.е самый крайний страйк будет равен даже путем такого пропорционального исчисления =0



Прошу поделиться своим мнением.
Также хотелось бы поинтересоваться что создатель имеют ввиду в режиме волатильности - MODEL


Attachments
QIP Shot - Screen 2016.02.23 18-23-59.png (246 downloads)
QIP Shot - Screen 2016.02.23 18-24-35.png (159 downloads)



Отредактировано FNP (Thu Feb 25 2016 02:01 PM)