Текущее время: 09 сен 2010, 15:51


Правила форума


Запрещается размешение ПО или публикация ссылок на программы,
нарушающие авторские права или оказывающие деструктивное действие.

Любые материалы, полученные Вами с форума, Вы можете использовать
на свой собственный страх и риск.

invesTHOUGHT(dot)com не несет ответственность за любой ущерб,
который может быть нанесен Вашему компьютеру и Вашим данным в результате
загрузки материалов.



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
 Модель оценки европейского колл опциона Блэка-Шоулза в Excel 
Автор Сообщение
Аватара пользователя

Зарегистрирован: 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
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован: 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
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован: 08 мар 2009, 07:39
Сообщения: 52
Откуда: Вологда
Сообщение Re: Модель оценки европейского колл опциона Блэка-Шоулза в Excel
!Ошибка!
Цитата:
При расчете дельты опции на фьючерс N(d1) необходимо было корректировать на exp(-rt)
Исправлено! ;)

_________________
Изображение


22 дек 2009, 15:33
Профиль ICQ WWW
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
cron
Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — InvesTHOUGHT(dot)com!


InvesTHOUGHT(dot)com - Я выжил на фондовом рынке!

Финансовый каталог Top-100 блогов инвесторов, 
трейдеров и аналитиков

Проект invesTHOUGHT(dot)com

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.
Русская поддержка phpBB

КЛУБ О Структурированных Продуктах, Деривативах и прочих модных банковских и инвестиционных технологиях.