Подразумеваемая волатильность опциона на S#

Подразумеваемая волатильность опциона на S#
Atom
3/4/2013
pehas


Привет опционщикам на S#

Хочу посчитать подразумеваемую волатильность опциона по предполагаемой волатильности базового актива.
Т.е. я считаю, что рынок НЕ знает все и что рыночная премия опциона в текущий момент может быть ошибочной. И соответственно реальная IV опциона может быть отличной от транслируемой биржей или высчитанной по блеку-шоулзу из рыночной премии.

На S# я могу получить IV по рыночной премии. Могу получить премию по IV (через класс BlackScholes)
А как посчитать премию по волатильности базового актива с тем чтобы из этой премии затем получить свою IV?

Tags:


Thanks:


1 2 3  >
Den

Avatar
Date: 3/5/2013
Reply


pehas
Могу получить премию по IV (через класс BlackScholes)
А как посчитать премию по волатильности базового актива с тем чтобы из этой премии затем получить свою IV?


Самому написать подсчет волатильности базового актива за интересующий период, а потом получить премию для этой волатильности
подставив вместо IV (через класс BlackScholes). Я давно хотел этим заняться, да все руки не доходят.
Thanks:

pehas

Avatar
Date: 3/5/2013
Reply


Den

Самому написать подсчет волатильности базового актива за интересующий период, а потом получить премию для этой волатильности
подставив вместо IV (через класс BlackScholes). Я давно хотел этим заняться, да все руки не доходят.


Так не выйдет. bs.Premium(Volatility) расчитывает премию по IV опциона, не по исторической. Я пока сделал так. Нашел в интернетах класс блека шоулза на сях, он считает премию по исторической волатильности, а потом эту премию подставляю в bs.IV(premium) стокшарпа.

Вот думал, может как то сразу на S# это можно сделать, чтобы сторонние либы не пользовать
Thanks:

Дюшес

Avatar
Date: 3/5/2013
Reply


pehas

Я пока сделал так. Нашел в интернетах класс блека шоулза на сях, он считает премию по исторической волатильности


А исходники есть?
Thanks:

Дюшес

Avatar
Date: 3/5/2013
Reply


Кстати, ну и как эти iv сильно расходятся? Не сравнивал?
Thanks:

pehas

Avatar
Date: 3/5/2013
Reply


Дюшес

А исходники есть?

Брал отсюда http://yesakov.com/2010/...tion-pricing-model-opm/

Дюшес

Кстати, ну и как эти iv сильно расходятся? Не сравнивал?

Расхождение сильно зависит от периода за который ты считаешь историческую волатильность. Если брать за день, то сильно, а за месяц почти одинаково
Thanks:

Mikhail Sukhov

Avatar
Date: 3/5/2013
Reply


Насколько я помню, через S# это делалось через переключение одного поля на другое.
Thanks:

pehas

Avatar
Date: 3/5/2013
Reply


Mikhail Sukhov
Насколько я помню, через S# это делалось через переключение одного поля на другое.


Интуитивно, я как бы догадываюсь, что если вызывать расчет премии без параметров - bs.Premium() то расчет должен вестись по полю Volatility базового актива (?). Но как говорится, хотелось бы уточнить..

Ну и вопрос, конечно, если это так (как описано выше) и используется это поле Volatility, будет ли это по феншую выставлять каждый раз в это поле свою расчетную историческую волатильность
Thanks:

Дюшес

Avatar
Date: 3/5/2013
Reply


pehas

Интуитивно, я как бы догадываюсь, что если вызывать расчет премии без параметров - bs.Premium() то расчет должен вестись по полю Volatility базового актива (?). Но как говорится, хотелось бы уточнить..


Нет, в bs.Premium() берется поле ImpliedVolatility у инструмента. Если подставлять свою волатильность, используется bs.Premium(decimal deviation). А вот откуда ее можно брать?
Thanks:

pehas

Avatar
Date: 3/5/2013
Reply


Дюшес

Нет, в bs.Premium() берется поле ImpliedVolatility у инструмента. Если подставлять свою волатильность, используется bs.Premium(decimal deviation). А вот откуда ее можно брать?


Так в том и проблема, что bs.Premium(decimal deviation) - это расчет по своей ОПЦИОННОЙ волатильности. Но не по исторической.
Можно легко проверить. Если получить IV через iv = bs.IV(sec.LastPrice) а затем подставить полученное iv в price = bs.Premium(iv), то price будет равно sec.LastPrice
А если бы bs.Premium(decimal deviation) считало бы по исторической волатильности, значение было бы другим.

Так в принципе сток шарп все и считает по ходу. Любые греки. Находит сначала IV по последней цене опциона, а затем расчитывает через эту IV греки и премию. Т.е. формула для расчета премии опциона через историческую волатильность и другие параметры в шарп не заложена. Да поправят меня создатели, если я не прав.

Соответственно, отвечая на ваш вопрос, я решаю задачу с другого конца. Я расчитываю премию через отдельную либу по историческим данным. А затем уже по этой премии нахожу IV ей соответствующую и держу пальцы крестиком, чтобы она оказалась правильнее чем та, что расчитана шарпом по последней цене (или та что транслируется биржей) :)
Thanks:

Дюшес

Avatar
Date: 3/5/2013
Reply


pehas

Так в том и проблема, что bs.Premium(decimal deviation) - это расчет по своей ОПЦИОННОЙ волатильности. Но не по исторической.
Можно легко проверить. Если получить IV через iv = bs.IV(sec.LastPrice) а затем подставить полученное iv в price = bs.Premium(iv), то price будет равно sec.LastPrice
А если бы bs.Premium(decimal deviation) считало бы по исторической волатильности, значение было бы другим.
Так в принципе сток шарп все и считает по ходу. Любые греки. Находит сначала IV по последней цене опциона, а затем расчитывает через эту IV греки и премию.

По-умолчанию берется IV инструмента транслируемое биржей, если вызываем через функцию bs.Premium(). Если надо посчитать с HV, то, насколько я понимаю, надо использовать bs.Premium(decimal deviation). То же самое и для греков. Там же в формуле БШ, как раз и используется этот параметр - deviation или стандартное отклонение или HV. Вроде так?

pehas

Соответственно, отвечая на ваш вопрос, я решаю задачу с другого конца. Я расчитываю премию через отдельную либу по историческим данным. А затем уже по этой премии нахожу IV ей соответствующую и держу пальцы крестиком, чтобы она оказалась правильнее чем та, что расчитана шарпом по последней цене (или та что транслируется биржей) :)

Поглядел исходники, все формулы практически один в один. Также есть параметр deviation в расчете премии.
Что нужно ставить на его место? В либе, в классе Statistic, есть ф-я Dev(ArrayList dataRow) // Вычисление дисперсии (отклонение от среднего значения числового ряда)(Deviation)
Наверное ее и подставлять, а в массиве данные по исторической волатильности?
Thanks:
1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy