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


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


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

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

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

Теги:


Спасибо:


1 2 3  >
Den

Фотография
Дата: 05.03.2013
Ответить


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


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

pehas

Фотография
Дата: 05.03.2013
Ответить


Den Перейти

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


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

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

Дюшес

Фотография
Дата: 05.03.2013
Ответить


pehas Перейти

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


А исходники есть?
Спасибо:

Дюшес

Фотография
Дата: 05.03.2013
Ответить


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

pehas

Фотография
Дата: 05.03.2013
Ответить


Дюшес Перейти

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

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

Дюшес Перейти

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

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

Mikhail Sukhov

Фотография
Дата: 05.03.2013
Ответить


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

pehas

Фотография
Дата: 05.03.2013
Ответить


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


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

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

Дюшес

Фотография
Дата: 05.03.2013
Ответить


pehas Перейти

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


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

pehas

Фотография
Дата: 05.03.2013
Ответить


Дюшес Перейти

Нет, в 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 ей соответствующую и держу пальцы крестиком, чтобы она оказалась правильнее чем та, что расчитана шарпом по последней цене (или та что транслируется биржей) :)
Спасибо:

Дюшес

Фотография
Дата: 05.03.2013
Ответить


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)
Наверное ее и подставлять, а в массиве данные по исторической волатильности?
Спасибо:
1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy