|
Текущее время: 09 сен 2010, 15:51
|
Сообщения без ответов | Активные темы
Правила форума
Запрещается размешение ПО или публикация ссылок на программы, нарушающие авторские права или оказывающие деструктивное действие.
Любые материалы, полученные Вами с форума, Вы можете использовать на свой собственный страх и риск.
invesTHOUGHT(dot)com не несет ответственность за любой ущерб, который может быть нанесен Вашему компьютеру и Вашим данным в результате загрузки материалов.
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Модель оценки европейского колл опциона Блэка-Шоулза в Excel
| Автор |
Сообщение |
|
[Bot][An]
Зарегистрирован: 08 мар 2009, 07:39 Сообщения: 52 Откуда: Вологда
|
 Модель оценки европейского колл опциона Блэка-Шоулза в Excel
Код: Public Function N(ByVal X As Double) As Double ' !* Dim ax, t, d, p As Double If X > 10 Then N = 1 ElseIf X < -10 Then N = 0 Else ax = Sqr(X * X) t = 1 / (1 + 0.2316419 * ax) d = 0.3989423 * Exp(-0.5 * X * X) p = d * t * ((((1.330274 * t - 1.821256) * _ t + 1.781478) * t - 0.3565638) * t + 0.3193815) N = p If X > 0 Then N = 1 - p Else N = p End If End Function
Public Function TTM(ByVal Today As Date, _ ByVal Expiry As Date) As Double ' Time to maturity, years TTM = (Expiry - Today + 1) / 365 End Function
Public Function Discount(ByVal IRate As Double, _ ByVal Today As Date, ByVal Expiry As Date) As Double Discount = Exp(-TTM(Today, Expiry) * IRate) End Function
Public Function D1(ByVal Futures As Double, ByVal _ Strike As Double, ByVal Today _ As Date, ByVal Expiry As Date, ByVal StDev As Double) As Double D1 = (Log(Futures / Strike) + (StDev * StDev / 2) * _ TTM(Today, Expiry)) / (StDev * Sqr(TTM(Today, Expiry))) End Function
' Black-Scholes Futures Option Pricing Model ' European Call Option Price Public Function EFC(ByVal IRate As Double, _ ByVal Futures As Double, ByVal Strike As Double, _ ByVal Today As Date, ByVal Expiry As Date, _ ByVal StDev As Double) As Double Dim Dtmp, FunctTmp As Double Dtmp = D1(Futures, Strike, Today, Expiry, StDev) FunctTmp = Discount(IRate, Today, Expiry) * _ (Futures * (N(Dtmp)) - Strike _ * (N(Dtmp - StDev * Sqr(TTM(Today, Expiry))))) EFC = FunctTmp End Function
' European Call Option Delta !** Public Function EFCDelta(ByVal IRate As Double, _ ByVal Futures As Double, ByVal Strike As Double, _ ByVal Today As Date, ByVal Expiry As Date, _ ByVal StDev As Double) As Double Dim Dtmp, FunctTmp As Double Dtmp = D1(Futures, Strike, Today, Expiry, StDev) EFCDelta = exp(-Sqr(TTM(Today, Expiry))*IRate)*N(Dtmp) End Function Модель Блэка-Шоулза (Black-Scholes Model) - Надстройка MS Excel __________________________________________________________ !* функция, приближающая N(x) из модели Блэка-Шоулза до 7-го знака после запятой, из книги "ОПЦИОНЫ И ФЬЮЧЕРСЫ Методическое пособие// А.Н. Балабушкин, Фондовая Биржа РТС" !** см. Исправлена ошибка в скрипте расчета дельты
_________________
Последний раз редактировалось [Bot][An] 22 дек 2009, 15:36, всего редактировалось 4 раз(а).
|
| 13 дек 2009, 03:26 |
|
 |
|
[Bot][An]
Зарегистрирован: 08 мар 2009, 07:39 Сообщения: 52 Откуда: Вологда
|
 Re: Модель оценки европейского колл опциона Блэка-Шоулза в Excel
!Замечание!Цитата: Расчет осуществляется по дням, на начало периода. Таким образом, если текущая дата и дата экспирации совпадают, то результат будет показывать стоимость опциона на начало дня. То есть срок до истечения 1 день. Для того чтобы получить стоимость на момент экспирации используется функция для подсчета внутренней стоимостиКод: ' European Call Option Intrinsic Public Function EFCintrinsic(ByVal Futures As Double, _ ByVal Strike As Double) As Double If Futures >= Strike Then EFCintrinsic = Futures - Strike _ Else EFCintrinsic = 0 End Function
_________________
|
| 16 дек 2009, 04:02 |
|
 |
|
[Bot][An]
Зарегистрирован: 08 мар 2009, 07:39 Сообщения: 52 Откуда: Вологда
|
 Re: Модель оценки европейского колл опциона Блэка-Шоулза в Excel
!Ошибка!Цитата: При расчете дельты опции на фьючерс N(d1) необходимо было корректировать на exp(-rt)Исправлено! 
_________________
|
| 22 дек 2009, 15:33 |
|
|
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения
|
|