Трейдерский Клуб

Общение о рынках, рисках и жизни. Без пиара и без рекламы. Здесь рады только своим.

Быстрый метод расчета функции нормального распределения

Быстрый метод расчета функции нормального распределения

Сообщение anatolyutkin » Чт фев 20, 2014 9:10 am

Теория Блэка и Шоулса--это, фактически, вещь, без которой нельзя серьезно заниматься опционами. Поскольку это теория основана на модели броуновского движения, то без нормального распределения в ней не обойтись. Поэтому в различных опционных приложениях постоянно возникает необходимость работы с функцией распределения единичного нормального распределения N(x), которая равна интегралу от гауссовой функции. Для численного расчета можно в лобовую считать этот интеграл (это долго), аппроксимировать N(x) полиномом (такое приближение нарушает фундаментальное свойство N(x)--экспоненциальное стремление к 0 на минус бесконечности (к 1 на плюс бесконечности).).

По моему опыту, весьма неплохим методом является использование представления N(x) в виде ряда. Я использую хорошо известный T-алгоритм ( http://algolist.manual.ru/maths/matstat ... malDF1.php ) Он легко записывается в виде кода и рассчитывает N(x) с достаточной для применения на рынке точностью за 3-5 итераций. Таким образом, обеспечивается быстрый и точный расчет функции распределения для нормального распределения.
anatolyutkin
 
Сообщения: 2
Зарегистрирован: Ср фев 12, 2014 11:14 am

Re: Быстрый метод расчета функции нормального распределения

Сообщение ubertrader » Пт фев 21, 2014 7:10 am

Обычно используется вот такой вот простой метод расчета N(x):

Код: Выделить всё
def NDist(a):
    b = a if a > 0 else -a;
    d = 1 / (1 + 0.2316419 * b);
    e = d * d;
    f = e * d;
    g = f * d;
    j = g * d;
    c = 1 - 1 / sqrt(6.283185307179586) * pow(2.718281828459045, -b * b / 2) * (0.31938153 * d + -0.356563782 * e + 1.781477937 * f + -1.821255978 * g + 1.330274429 * j);
    if (a < 0):
        return 1 - c
    return c
   
Harder Better Faster Stronger
ubertrader
 
Сообщения: 313
Зарегистрирован: Вт фев 15, 2011 8:10 am

Re: Быстрый метод расчета функции нормального распределения

Сообщение anatolyutkin » Пт фев 28, 2014 12:45 pm

Спасибо, не знал.

Судя по всему, это похожая вещь--некое разложение до 5-го порядка. Думаю, как "военная формула" отлично подходит для рынков. Но лично мне важно:
а) Понимать, что откуда берется
б) Иметь возможность сосчитать с любой точностью. А в вашей формуле, где в e и pi 15 знаков после запятой, а в коэффициентах разложения 8 знаков после запятой при попытках ее уточнить явно будут проблемы.
Впрочем, это мои личные особенности :)
anatolyutkin
 
Сообщения: 2
Зарегистрирован: Ср фев 12, 2014 11:14 am

Re: Быстрый метод расчета функции нормального распределения

Сообщение Alex8 » Вт май 06, 2014 12:16 pm

То, что в коэффициентах всего 8 знаков не так страшно. Приведенная формула вполне надежно подходит для вычисления. Разница, по сравнению с полной интегральной функцией, будет в 4-5 знаке после запятой. Гораздо бОльшую погрешность вносит вообще применение формулы БШМ к попытке вычисления цен американских опционов.
Аватара пользователя
Alex8
 
Сообщения: 33
Зарегистрирован: Вт янв 17, 2012 4:01 pm


Вернуться в PUB: Вопросы и Ответы

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

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

cron