WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 5 | 6 || 8 | 9 |   ...   | 14 |

Введение Финансовая математика нуждается в создании инструментов для расчета различных финансовых показателей, в частности — цен опционов.

Опцион — это договор, по которому потенциальный покупатель или продавец получает право, но не обязанность, совершить покупку (call-опцион) или продажу (put-опцион) актива по заранее оговоренной цене в определенный договором момент в будущем, называемый датой исполнения опциона [1]. Основным требованием к расчету цен опционов является обеспечение режима реального времени.

Цена европейских (классических) опционов зависит только от цены актива в момент исполнения опциона, существуют аналитические решения, позволяющие рассчитать цену опциона. В то же время существуют другие типы опционов, отличающиеся от европейских более сложными механизмами ценообразования. Так, например, цена азиатского опциона зависит не от цены актива в момент исполнения, а от ее среднего значения в некотором промежутке времени, предшествующем моменту исполнения опциона и называемом периодом усреднения. Для данного типа опционов существуют только приближенные аналитические решения, поэтому рассчитывать цены таких опционов аналитически очень сложно.

Таким образом, возникает необходимость численного расчета, выделяют два основных подхода к расчету цен опционов:

1) конечно-разностные методы;

2) метод Монте-Карло.

Конечно-разностные методы позволяют численно решать дифференциальные уравнения, и поэтому часто сложны для реализации. Их результаты очень тяжело оценить с точки зрения точности, кроме того, в чистом виде они не могут быть использованы для расчета опционов с выплатой дивиденда. При этом конечно-разностные методы выгодно отличаются очень малым временем расчета. Метод Монте-Карло, напротив, прост в реализации, но расчет занимает очень много времени. В то же время это прямой метод расчета, позволяющий получать результаты с заданной точностью (в пределах доверительного интервала), поэтому его возможно использовать для проверки точности результатов, получаемых другими методами.

Сборник трудов молодых ученых и сотрудников кафедры ВТ 48 МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ Несмотря на большое количество литературы по данной тематике, нами не было найдено подробного описания расчета цены азиатского опциона с выплатой дискретного дивиденда. В связи с этим требовалось разработать и реализовать алгоритм расчета сложных опционов (на примере азиатских) с выплатой дивидендов методом Монте-Карло. В ходе работы необходимо было оценить погрешность конечно-разностных подходов с помощью метода Монте-Карло.

Ценовые модели опционов Для расчета цен опционов используются стохастические модели — ценовые модели опционов, в основе которых лежит постулирование стохастического процесса, моделирующего динамику цены базового актива.

Одна из наиболее популярных ценовых моделей опционов — модель Блэка—Шоулза [1], которая отражает изменение цены опциона в зависимости от ряда параметров и выражается в виде дифференциального уравнения:

V 1 2V V + 2 S2 + rS - rV = 0, (1) t S2 S где V — цена опциона, S — цена актива, r — безрисковая процентная ставка, — волатильность, t — время.

Оговариваемая в договоре цена, по которой осуществляется покупка или продажа актива, называется страйк-ценой (strike price). Выплата по европейскому call-опциону связана с ценой актива следующим образом:

P S = max S T K,0, ( ) ( ( )- ) ( ) где P — выплата по опциону при цене актива S в момент исполнения опциона T, при страйкцене K.

При вычислениях необходимо учитывать выплату дивидендов по активу, вызывающую снижение цены актива на величину дивиденда в момент его выплаты.

Азиатские опционы В зависимости от способа расчета среднего значения цены актива выделяют четыре типа азиатских опционов [2]:

1) с непрерывным средним арифметическим;

2) с непрерывным средним геометрическим;

3) с дискретным средним арифметическим;

4) с дискретным средним геометрическим.

Рассмотрим только опционы с дискретным средним арифметическим значением цены базового актива:

m P S = max Si - K. (2) ( ), m i = Метод Монте-Карло Метод Монте-Карло основан на проведении большого числа экспериментов, в основе которых лежит стохастический процесс, параметры которого совпадают с параметрами реального процесса. Воспользуемся моделью Блэка—Шоулза изменения цены актива:

Сборник трудов молодых ученых и сотрудников кафедры ВТ МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ S t +t = S t exp r - t + t X. (3) ( ) ( ) Здесь t — время окончания опциона, X — случайная величина, имеющая стандартное нормальное распределение. Каждое последующее значение цены актива рассчитывается через предыдущее.

Рассмотрим основы расчета цены азиатского опциона методом Монте-Карло. Пусть необходимо получить значение, такое что =E(g(x)), где E(x) — функция математического ожидания x, а g(x) — случайная функция, такая что E(|g(x)|) <. В таком случае можно получить n независимых значений функции g(x) X1, X2, …, Xn из области определения x.

Из этого следует, что оценка математического ожидания :

n = 1 n g Xi.

( ) i=Положим n, тогда n 1 n g Xi E g x ( ) ( ) ( ) i= и как следствие.

Дисперсия случайной величины определяется по формуле:

n s2 = Xi -.

( ) () n -i=Следует понимать, что в данном случае речь идет не о дисперсии получаемого значения, т.е. дисперсия не характеризует напрямую степень доверия к полученному значению цены базового актива. Доверительный интервал, характеризующий погрешность вычисления, определяется следующим выражением:



t t P = y, (4) - < < + nn где y — доверительная вероятность, а t берется из условия t = y 2, где (x) — функция ( ) распределения стандартной нормальной распределенной случайно величины, т.е. для довери 1,96 1,тельной вероятности 0,95 имеем доверительный интервал.

- ;+ nn Цена азиатского call-опциона при этом рассчитывается следующим образом:

nm V S,0 = exp ( ) (-rT ) max m S - K, i,n j=1 i= где V(S,0) — цена опциона в момент времени 0, Si — цена актива в точке усреднения i, m — число точек усреднения, n — количество экспериментов метода Монте-Карло, T — время исполнения опциона.

Используя формулы (2) и (3), получим следующий алгоритм (в виде псевдокода) для расчета азиатских call-опционов методом Монте-Карло:

set sum=0;

for i=1 to n generate StD using S0;

set StD = max(StD–D, 0);

Сборник трудов молодых ученых и сотрудников кафедры ВТ 50 МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ generate S1 using StD;

for k=2 to m generate Sk using Sk-1;

end;

m max, set sum = sum + ;

S - K i m i=end;

sum exp ) set V = (-rT ;

n В псевдокоде tD — время выплаты дивиденда, D — величина дивиденда.

Доверительный интервал получаемого значения рассчитывается по формуле (4). Одним из недостатков метода Монте-Карло является низкая скорость сходимости. Иными словами, для уменьшения стандартного отклонения получаемой оценки s n в 10 раз необходимо увеличить n в 100 раз [1].

Реализация В первую очередь алгоритм был реализован на языке MatLab с целью отладки и проверки. Затем алгоритм был реализован на языке C++. В ходе реализации использовалась объектно-ориентированная модель, представленная в виде UML-диаграммы на рис. 1.

Result +monteCarlo : double MonteCarlo Option +dispertion : double -numberOfPaths : int +standartError : double -numberOfThreads : int +time : double +getPrice() : double +makeExperiment(Option& option)() : Result +confidenceLow : double +clone() : Option +makeMonteCarlo(const XMLNode& node)() : MonteCarlo +confidenceHigh : double +createXml() AsianOption Random +makeAsianOption(const XMLNode& node)() : AsianOption +getGausianByBoxMuller() : double 1 -Конец* -КонецPayoffPut Payoff +operation() : double PayoffCall Рис. 1. Объектно-ориентированная реализация Одним из достоинств такой реализации является расширяемость. Возможно добавление новой функциональности, например, поддержки двусторонних опционов (double), других типов опционов, например, американских, барьерных и т.д. [3]. С другой стороны, возможно использование программы как в виде библиотеки, так и в виде отдельного приложения, как в рассматриваемом случае.

Для удобства использования, тестирования и отладки применялся ввод/вывод на основе XML-файлов. В приложении необходимо было реализовать генерацию случайных значений со стандартным нормальным распределением (N(0,1)). Среда MatLab предоставляет собстСборник трудов молодых ученых и сотрудников кафедры ВТ МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ венную реализацию генератора нормального распределения, в то время как стандартные библиотеки C++ предлагают только равномерное распределение.

Для получения нормального распределения из равномерного использовано преобразование Бокса—Мюллера [3], его суть заключается в следующем. Пусть x и y — независимые случайные величины, равномерно распределенные на отрезке [-1, 1]. Вычислим s = x2 + y.

Если s >1 или s = 0, то значения x и y следует отбросить и сгенерировать заново. Как только выполнится условие 0 < s 1, по формулам z0 = x (- 2 ln s) s и z1 = y (- 2 ln s) s следует рассчитать z0 и z1, которые будут независимыми величинами, удовлетворяющими стандартному нормальному распределению [4].

В среднем время расчета опциона с 107 прогонов составило 17 с для реализации в MatLab и 35 с — в C++. Одна из причин такого расхождения, видимо, заключается в использовании средой MatLab высокооптимизированных реализаций интерфейса базовых подпрограмм линейной алгебры BLAS (Basic Linear Algebra Subprograms).

Оценка погрешностей других методов В ходе тестирования параметры опциона варьировались, производился расчет цены при данных параметрах методом Монте-Карло и конечно-разностным методом — методом Кранка—Николсона, и полученные результаты сравнивались. При этом использовались следующие параметры:

• call-опцион;

• страйк-цена K =166;

• время исполнения опциона T = 1 год;

• период усреднения: последние 10 дней;

• безрисковая процентная ставка r = 0,10 в год;

• время выплаты 1-го дивиденда = 0,11 года, величина дивиденда = 5,3 у.е.;

• время выплаты 2-го дивиденда = 0,41 года, величина дивиденда = 9,2 у.е.;

• время выплаты 3-го дивиденда = 0,75 года, величина дивиденда = 12,7 у.е.

Было выявлено увеличение относительной ошибки данной реализации конечноразностного метода при высоких значениях волатильности (рис. 2).

Рис. 2. Увеличение относительной ошибки метода Кранка—Николсона Как уже отмечалось, конечно-разностные методы значительно превосходят метод Монте-Карло в скорости расчета, так время расчета для метода Кранка—Николсона составляет несколько миллисекунд, в то время как для метода Монте-Карло — около 35 с.

Сборник трудов молодых ученых и сотрудников кафедры ВТ 52 МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ Заключение Таким образом, был разработан алгоритм расчета цен азиатских опционов методом Монте-Карло, а также проведена соответствующая реализация.

Расчет цены опциона по методу Монте-Карло является прямым и имеет ограниченную погрешность, определяемую доверительным интервалом. Реализация использовалась для оценки погрешности конечно-разностного метода расчета цен опционов — метода Кранка— Николсона. Была выявлена зависимость между относительной ошибкой проверяемого метода и волатильностью, что потенциально позволяет доработать проверяемый метод и уменьшить ошибку.





В связи с тем что вычисление цены опциона с помощью метода Монте-Карло занимает неприемлемо большое время, метод не может быть применен для непосредственного расчета цен. Одним из возможных решений данной проблемы представляется распараллеливание вычисления путем независимого выполнения экспериментов Монте-Карло на многопроцессорных системах (OpenMP) или использования подхода массово-параллельных вычислений на видеокартах GPGPU.

ЛИТЕРАТУРА 1. Willmott P. On quantitative finance. Wiley, 2006.

2. Hongbin Zhang Pricing Asian Options using Monte Carlo Mеthods. Department of Mathematics Uppsala University, 2009.

3. Joshi M.S. C++ Design Patterns and Derivatives Pricing. University of Melbourne, 2008.

4. Rubinstein R. Y., Kroese D. P. Simulation and the Monte Carlo Method. New Jersey: John Wiley & Sons, 2008.

Сведения об авторе Пономарев Максим Васильевич — студент; Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: maxim.v.ponomarev@gmail.com Сборник трудов молодых ученых и сотрудников кафедры ВТ МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ УДК 004.4'ВИЗУАЛИЗАЦИЯ МОДЕЛИ КОМПЬЮТЕРНОЙ СЕТИ В СРЕДЕ NS-М. Ю. Тихонов Предложен способ конфигурирования и анимации моделей компьютерных сетей, созданных в среде NS-3, на примере разработанного приложения.

Ключевые слова: моделирование, компьютерные сети, NS-3, анимация.

Введение Моделирование компьютерных сетей является актуальной научно-исследовательской и прикладной задачей. В качестве инструмента моделирования, как правило, выбирается специализированное программное обеспечение. Работа с сетевым симулятором включает следующие шаги:

1) создание имитационной модели компьютерной сети;

2) задание входных параметров модели;

3) анализ временных срезов модели и итоговых отчетов.

Очевидно, что для обеспечения эффективной работы пользователя сетевой симулятор должен содержать средства визуализации.

В течение нескольких лет на кафедре вычислительной техники НИУ ИТМО создавалась имитационная модель компьютерной сети в популярной среде Network Simulator 3 (NS-3).

Данный сетевой симулятор наилучшим образом подходит для решения поставленных исследовательских задач. Однако отсутствие встроенного графического интерфейса выявило следующие сложности при работе пользователя с моделью:

— для создания и конфигурирования модели необходимо обладать знаниями о множестве стандартных библиотек среды NS-3 и языка программирования C++;

— вносить изменения в модель без длительного изучения документации и исходного кода может только автор модели;

— конфигурирование сложной и объемной модели путем написания программного кода может занимать несколько часов и даже дней;

— плохое восприятие связей между узлами компьютерной сети;

— невозможность наблюдения параметров и характеристик компьютерной сети во время процесса моделирования.

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

Выбор средств для программной реализации В таблице приведен список наиболее известных кроссплатформенных сетевых симуляторов, имеющих графический пользовательский интерфейс.

Программные средства для создания сетевых симуляторов Название Язык Библиотека сетевого симулятора программирования для создания графического интерфейса GNS-3 Python Qt OMNET++ / OMNEST C++, Tcl Tk GloboSim / QualNet C++ Qt SSFNet Java Swing, JGraph Сборник трудов молодых ученых и сотрудников кафедры ВТ 54 МОДЕЛИРОВАНИЕ КОМПЬЮТЕРНЫХ СИСТЕМ И СЕТЕЙ Продолжение таблицы Название Язык Библиотека сетевого симулятора программирования для создания графического интерфейса J-Sim Java Swing, JGraph Packet Tracer Cisco С++ Qt CNet C, Tcl Tk STPSim Python wxWidgets OpenWNS C++, Python Qt NetAnimator Action Script Adobe Flash NetSim Java Swing, JGraph При создании таких приложений используются языки C++, Java и Python. Платформа.NET не применяется, видимо, по той причине, что на данный момент не обеспечивает кроссплатформенности, которая является обязательной характеристикой современного сетевого симулятора. В нашем случае выбор языка C++ выглядел более предпочтительным, поскольку возможно использовать единые с имитационной моделью структуры и типы данных, а также исходный код для их обработки. Примером может служить созданный для имитационной модели класс записи, чтения и синтаксического разбора файла с входными данными. Данный класс без изменений используется в разработанном приложении.

В пользу библиотеки Qt свидетельствует успешный опыт создания известных сетевых симуляторов, стремительное развитие, поддержка крупных сообществ и коммерческих компаний, а также надежные средства разработки и документация. Кроме того, Qt изначально позиционируется как средство для кроссплатформенной разработки, что имеет значение в нашем случае. Информации об использовании библиотек GTK+ и wxWidgets, также предназначенных для создания настольных приложений на языке C++, найти не удалось.

Pages:     | 1 |   ...   | 5 | 6 || 8 | 9 |   ...   | 14 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.