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

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


Привет опционщикам на 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/04/14/%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BB%D1%8D%D0%BA%D0%B0-%D1%88%D0%BE%D1%83%D0%BB%D0%B7%D0%B0black%E2%80%93scholes-option-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