
- •Разработка моделей, алгоритмов и программных средств для повышения качества прогнозов биржевых показателей
- •Анализ существующих средств прогнозирования экономических показателей бирж
- •Модели и алгоритмы оценки стоимости ценных бумаг и управления инвестиционными активами
- •Роль рынка ценных бумаг в финансовой системе страны
- •Фундаментальный анализ
- •Показатели, используемые для фундаментального анализа акций
- •Технический анализ
- •Теории функционирования рынка ценных бумаг
- •Теория эффективного рынка
- •Теория случайных блужданий
- •Теория хаоса
- •Теория адаптивного рынка
- •Методы и модели для прогнозирования экономических показателей
- •Математическо-статистические методы
- •Поведенческие модели
- •Мультиагентные системы
- •Разработки, использующие мультиагентный подход для прогнозирования экономических показателей
- •Модель «SantaFe» и её вариации
- •Модель «Genoa Artificial Stock Market»
- •Библиотека «MoTor» и система «Имитрейд»
- •Платформа «ArTificial Open Market»
- •Комплекс «Altreva adaptive modeler»
- •Требования к функциональности проектируемого программного комплекса
- •Разработка архитектуры виртуального рынка ценных бумаг и системы поддержки принятия решений
- •Математическая модель виртуального рынка
- •Виртуальный мир и виртуальные агенты
- •Классификаторы
- •Новостная среда
- •Роли и стратегии
- •Активы агентов
- •Компании
- •Трейдеры
- •Стратегии трейдеров
- •Ордера и транзакции
- •Система обработки ордеров
- •Движение денежных средств при совершении транзакций
- •Расчёт статистических характеристик рынка ценных бумаг
- •Математическая формулировка задачи исследования
- •Архитектура программного комплекса
- •Выбор платформы для мультиагентной системы
- •Взаимосвязь приложения, пакетов и компонентов
- •Виртуальный мир
- •Стандартные классы системы
- •Планы и стратегии
- •Запросы и транзакции
- •Механизм формирования цен
- •Архитектура системы поддержки принятия решений
- •Общая схема архитектуры
- •Подключаемые модули
- •Алгоритм работы
- •Анализ работы системы
- •Описание работы программного комплекса
- •Функциональность
- •Редакторы
- •Организация экспериментов
- •Оценка степени соответствия виртуального рынка реальному
- •Соблюдение пропорций
- •Активность трейдеров на бирже ммвб в 2007-2010 годах
- •Наличие трендов и фигур
- •Сходство статистических характеристик изменения цен и объёма торгов
- •2. Критерий Колмогорова
- •3. Критерий Романовского
- •4. Критерий Ястремского
- •Критерии согласия двух теоретических распределений с распределением приращения максимальной цены за день для акции компании «Юкос» за период с 25.05.2005 по 19.09.2006
- •Критерии согласия двух теоретических распределений с распределением данных реального рынка по результатам 20 независимых экспериментов
- •Критерий согласия распределения Коши и объёма торгов за первые 116 дней торгов на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp»
- •Критерий согласия распределения Коши и максимальной дневной цены по первой акции на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp» за 165 дней торгов
- •Критерии согласия распределения Коши с распределением данных на виртуальном рынке по результатам 20 независимых экспериментов
- •Фрактальность рыночных процессов
- •Расчёт показателя Хёрста для различных временных рядов
- •Реакция рынка на действия отдельных агентов
- •Эксперименты, проведенные над виртуальным рынком
- •Зависимость размера спрэда от склонности к риску трейдеров
- •Влияние фундаментальных трейдеров на динамику котировок акций
- •Влияние новостного фона на котировки ценных бумаг при различном составе участников рынка
- •Практическое применение программного комплекса в качестве системы поддержки принятия решений
- •Математические критерии оценки качества прогнозов
- •Анализ работы системы поддержки принятия решений
- •Результаты сравнения краткосрочных прогнозов экспертов и системы поддержки принятия решений «fimas»
- •Результаты сравнения среднесрочных прогнозов экспертов и системы поддержки принятия решений «fimas»
- •Технико-экономическое обоснование
- •Преимущества и недостатки программного комплекса, выявленные в процессе эксплуатации
- •Другие перспективы практического применения
- •Перспективы для дальнейших исследований и разработок
- •Заключение
- •Литература
- •Приложения
- •Акт о внедрении результатов диссертационного исследования в ооо «Таулинк»
- •Акт о внедрении результатов диссертационного исследования в тк «Фотон»
- •Краткая информация о проекте «fimas»
- •Подробная схема связи компонентов и пакетов в системе
- •Алгоритм работы ролей трейдера и брокера
- •Алгоритм обработки текущих ордеров фундаментальным трейдером
- •Критерии согласия двух теоретических распределений (Гауса, Коши) с распределением приращения максимальной цены за день для акции компании «Юкос» за период с 25.05.2005 по 19.09.2006
- •Сравнение распределений Коши с распределением объёма торгов по первой акции на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp» за 116 дней торгов
- •Критерии согласия распределения Коши с распределением объёма торгов по первой акции на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp» за 116 дней торгов
- •Сравнение распределений Коши с распределением максимальной дневной цены по первой акции на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp» за 165 дней торгов
- •Критерии согласия распределения Коши с распределением максимальной дневной цены по первой акции на виртуальном рынке в сценарии «FundamentalTradersExperiment.Fmp» за 165 дней торгов
- •Статистические данные по биржам
- •Структура трейдеров в модели fimas и на реальных биржах
- •Новости и спрэд акций в сценарии «NewsGenerator.Fmp» при преобладании новостных трейдеров
Ордера и транзакции
Ордер на совершение сделки с ценной бумагой можно представить в виде кортежа:
|
(2.38) |
где – агент, выставивший запрос;
– тип операции (покупка, продажа)
;
– тип акции;
– цена покупки / продажи;
– количество акций, выставленных на
покупку / продажу;
– время создания ордера;
– срок действия ордера;
– список совершённых транзакций по
этому запросу.
Типов операций
у нас сейчас только два:
(покупка и продажа). Однако в будущем
возможно добавление более сложных
типов, например со стоп-профитами,
стоп-лосами. Каждая транзакция задаётся
кортежем:
|
(2.39) |
где – агент, продающий акции;
– агент, покупающий акции;
– тип акции;
– цена покупки / продажи;
– количество купленных / проданных
акций;
– время выполнения транзакции.
Так как в (2.38) и (2.39) некоторые параметры либо дублируются, либо являются необязательными, далее буду использовать более компактные формулировки:
|
(2.40) |
Система обработки ордеров
Особого
интереса заслуживает система обработки
текущих запросов на покупку и продажу
акций (ордеров), так как она существенно
отличается от аналогичных алгоритмов
в других программных комплексах. Пусть
в некий момент
на бирже сложились два списка:
– список запросов на покупку акций изbэлементов,
– список запросов на продажу акций из
элементов. Для каждого
-го элемента списка задана цена
,
желаемое количество акций
и уже обработанное (купленное / проданное)
по результатам предыдущих торгов
количество акций
.
Сначала надо отсортировать оба списка
и
по цене. Это делается при помощи
стандартного алгоритмаQuickSort:
Дальше нужно пройтись циклом по всем элементам каждого списка, чтоб найти совпадающие ордера. Так как оба списка у нас отсортированы по цене, можно проверять только первые элементы списка и быстро отбрасывать те ордера на покупку, на которые выставлена неприемлемо низкая цена:
while
( begin
if
begin
Remove( end else begin
CommitTransaction(
if
Remove(
if
Remove( end; end; |
После этого
все оставшиеся запросы в оригинальных
списках
и
проверяются на актуальность. Запросы,
которые по истечению определённого
времени так и не «нашли себе пару»,
удаляются из этого списка, а их отправителям
посылается соответствующее сообщение
об ошибке:
if
(
for
I :=
CkeckIfTransactionRequestIsValid(
if
for
I :=
CkeckIfTransactionRequestIsValid(
|
В конце алгоритма обновляются статистические данные рынка: бид (bid), аск (ask) и спрэд (spread). Для этого используются стандартные алгоритмы нахождения минимального и максимального значения в массиве.
Движение денежных средств при совершении транзакций
Допустим, у
нас в системе 5 агентов:
– биржа,
– брокер и
– трейдеры. Каждый из них обладает
стандартным набором активов (формулы
2.16–2.23).
Допустим,
хочет продать
акций типа
по цене
и купить
акций типа
по цене
.
Комиссия брокера
за каждую операцию составляет
.
Допустим, у него есть ресурсы для
совершения всех операций, т.е.
|
(2.41) |
Также допустим,
что
хочет купить
акций типа
по цене
и продать
акций типа
по цене
.
А трейдер
хочет купить
акций типа
по цене
и продать
акций типа
по цене
.
У них тоже есть все необходимые ресурсы
для совершения этих операций, т.е.
|
(2.42) |
|
При этом для
:
|
(2.43) |
А для
:
|
(2.44) |
В этом сценария
в рамках первого этапатрейдеры
формируют шесть ордеров на совершение
сделок с ценными бумагами. В моментБрокер
резервирует необходимые ресурсы для
совершения всех операций и взимает свою
комиссию за все шесть операций.
Согласно (2.40), ордера могут быть представлены в виде следующих кортежей:
|
(2.45) |
| |
|
Изменения
активов
:
|
(2.46) |
|
Изменение
активов
:
|
(2.47) |
|
Изменение
активов
:
|
(2.48) |
Изменение
активов
:
|
(2.49) |
| |
| |
|
На втором этапеброкер использует аккумулированные средства, чтобы открыть позиции для покупки и продаже акций непосредственно на бирже, уплачивая комиссию за шесть операций по её расценкам.
Изменение
активов
:
|
(2.50) |
| |
| |
|
Изменение
активов
:
|
(2.51) |
| |
| |
|
Одновременно,
брокер трансформирует ордера
в собственные и передаёт их бирже от
своего имени.
На третьем
этаперынок заключает сделки по
совпадающим ордерам. В данном случае,успешно продаёт все свои акции (2.43).
Покупателями служат трейдеры
и
.
Трейдер
покупает весь объём акций, который он
планировал купить, а трейдер
только частично удовлетворил свой спрос
на эту акцию.
По другой
группе ордеров трейдер
продаст часть своих акций трейдеру
,
в то время как (2.44) трейдер
не продаст ничего, так как
.
Следовательно, произойдут три транзакции, которые могут быть представлены в виде кортежей по формуле (2.39):
|
(2.52) |
Согласно
(2.40), в момент временисостояние шести ордеров может быть
представлено в виде следующих кортежей:
|
(2.53) |
Из этих
ордеров,
,
,
выполнятся полностью,
и
выполнятся частично, а
не выполнится вообще. Для
необходимо продать ещё
акций, для
необходимо
купить ещё
акций, для
необходимо продать
акций. Если при следующих итерациях
появятся подходящие ордера, то
,
и
смогут быть успешно выполнены.
Допустим, что в рамках этой симуляции, этого не произойдем.
Тогда в рамках четвёртого этапабиржа вернёт брокеру акции и деньги, зарезервированные для проведения всех сделок. В нашем случае только один брокер, в реальных экспериментах биржа перераспределяет акции между брокерами в соответствии с выполненными транзакциями.
Изменение
активов
:
|
(2.54) |
| |
|
Изменение
активов
:
|
(2.55) |
| |
|
В рамках пятого этапаброкер вернёт трейдерам акции и деньги, зарезервированные для проведения всех сделок, но не потраченные из-за того, что не было найдено совпадающих ордеров. По частично или полностью выполненным сделкам брокер отдаёт трейдерам все купленные акции.
Изменения
активов
:
|
(2.56) |
Изменение
активов
:
|
(2.57) |
Изменение
активов
:
|
(2.58) |
Изменение
активов
:
|
(2.59) |
| |
|