Приложение А. Подготовка систематизированных данных для проведения эмпирических исследований
Очевидно, для оценки аспектов ликвидности, оказывающих влияние на ликвидацию портфеля, требуются внутридневные (intraday)данные по торговле. Кроме того, только данных по сделкам не достаточно для анализа, так как требуется еще наличие полной информации о выставленных и снятых в торговой системе заявках.
Например, для оценки бид-аск спрэда как показателя «сжатости» нужны данные о двух самых лучших заявках на покупку и продажу. Что касается оценки глубины рынка, то в этом случае уже требуется знание всех выставленных лимитированных заявок в определенный момент времени. Для оценки релаксации данные о выставленных и снятых заявках нужно особым образом подготовить, чтобы иметь возможность выделить шоки ликвидности и события, приводящие к возвращению рынка в нормальное «досделочное» состояние. В последнем случае требуется уточнение классификатора рыночных событий на основе информации о выставленных котировках и совершенных сделках.Данные, на которых проведены расчеты - это реальные данные о ходе торгов акциями на ММВБ за период с января 2006 г. по ноябрь 2007 г., которые насчитывают свыше 700 дней по более 700 акциям. Среди данных акций встречаются как неактивно торгуемые бумаги, так и достаточно ликвидные, по которым часто происходит несколько сделок в секунду с разными контрагентами.
А.1 Создание б азы данных о ходе торгов акциями на ММВБ
Для информационного обеспечения разработки подхода к определению рациональной стратегии ликвидации портфеля и последующего построения на его основе СППР была создана база данных, со-
1 75
держащая информацию о ходе торгов акциями на Московской межбанковской валютной бирже (ММВБ).
В моем распоряжении были данные о ходе торгов в одном из режимов проведения торгов на Фондовой бирже ММВБ, а именно - в режиме основных торгов. Как описано в «Правилах проведения торгов по ценным бумагам в Закрытом акционерном обществе «Фондовая биржа ММВБ» (далее - Правила)» [10], режим основных торгов состоит из следующих периодов: предторгового периода, торгового периода и послеторгового периода (пункт 14.1 Правил).
В предторговом периоде в Систему торгов подаются только лимитные заявки. На основании поданных в предторговый период заявок по каждой ценной бумаге на момент окончания данного периода происходит определение цены предторгового периода, обеспечивающей заключение сделок с наибольшим количеством ценных бумаг, являющихся предметом этих сделок (см. пункт 14.2 Правил).
В основу механизма торговли в ходе торгового периода заложен изложенный в главе 1 принцип "Order driven market"— рынок конкурирующих между собой заявок, при котором сделка заключается автоматически при пересечении условий во встречных анонимных заявок (см. пункт 14.3 Правил).
В послеторговый период происходит сбор заявок Участников торгов и заключение сделок по средневзвешенной цене, определяемой в течение последних 30 минут торговой сессии. При отсутствии в течение последних 30 минут торговой сессии сделок с данной ценной бумагой в качестве цены послеторгового периода используется средневзвешенная цена данной ценной бумаги, в случае отсутствия сделок по данной ценной бумаге цена послеторгового периода не рассчитывается (см. пункт 14.4 Правил).
1 76
Созданная на основе СУБД Microsoft SQL Server 2005 база данных содержит:
• Информацию обо всех заявках на покупку и продажу акций, выставленных на Московской межбанковской валютной бирже за период с января 2006 по декабрь 2007.
• Информацию обо всех сделках по акциям, заключенных на ММВБ за тот же период.
• Вспомогательную информацию, в первую очередь описание 700 акций, присутствующих в базе, включающем их тиккер на бирже или ISIN, а также другую справочную информацию.
Информация о заявках содержит в себе:
• уникальный номер заявки в Системе ММВБ;
• дату и время (с точностью до секунды) ввода заявки;
• идентификационный номер акции, по которой была выставлена заявка;
• направление заявки (на покупку или продажу);
• цену заявки;
• объем заявки;
• изменение статуса заявки с указанием времени, когда оно произошло (полное или частичное исполнение, отмена пользователем или системой).
Информация позволяет построить полную картину происходящего на рынке за исключением определения инициатора каждой из котировок, что, очевидно, является конфиденциальной информацией, не подлежащей раскрытию. Общее количество записей такого рода в базе данных - 160 115 507.
Информация о заключенных сделках содержит в себе:
• уникальный номер сделки в Системе ММВБ;
• время исполнения сделки (с точностью до секунды);
• информацию о том, какие котировки (с указанием их уникальных номеров) участвовали в исполнении этой сделки;
• цена, по которой была заключена сделка;
• объём сделки.
Указание даты совершения сделки и номера акции при наличии номера котировок является избыточной информацией. С целью экономии соответствующие поля в итоговой таблице базы данных представлены не были. Информация о сделках, наряду с полным списком выставленных заявок, позволяет получить полную картину происходившего на рынке в тот или иной момент времени. Общее количество записей о сделках - 151 022 856. Большое количество записей объясняется тем, что сделки, совершенные с одной крупной заявкой с одной стороны и несколькими более мелкими с другой учитываются отдельно.
Структура базы данных приведена на Рис. А.1. С целью обеспечения вычислительной эффективности работы были созданы вспомогательные таблицы, содержащие преднасчитанные значения агрегатов (средних объёмов и количества сделок и котировок за день и др.).
А.2 Репликация книги лимитированных заявок
Для целей исследования в первую очередь на основании имеющихся данных было разработано программное приложение, позволяющее произвести репликацию книги лимитированных заявок. В основу этого приложения был положен алгоритм, описанный К. Кава- жечем [91]. Данный алгоритм разбивает процесс восстановления книги лимитированных заявок на 4 шага.
1 70
Основные таблицы - t001orders, содержащая информацию о выставленных котировках, и t002 trades, содержащая информацию обо всех заключенных сделках.
Остальные таблицы содержат справочную информацию. Вспомогательные таблицы, использующиеся для загрузки данных и хранения агрегированных ре-зультатов, не показаны.
Рис. А.1 - Структура базы данных, содержащей информацию о ходе торгов акциями на ММВБ.
На первом шаге отбираются все действующие лимитированныезаявки на момент начала набора данных 10, которые не были исполнены или отменены. В случае ММВБ нет необходимости выявлять заявки, выставленные до начального момента отсчета, так как в силу особенностей организации торговой сессии все действующие заявки в конце дня снимаются системой. В нашем случае достаточно сформировать начальную книгу лимитированных заявок (prebookв терминологии К. Каважеча [91]) в момент начала торгов за каждый из доступных дней.
На втором шаге происходит добавление в начальную книгу заявок, выставленных до определенного момента времени t1включительно. Таким несложным образом можно получить множество всех выставленных заявок с момента формирования начальной книги по указанный момент времени t1.
На третьем шаге происходит исключение из полученного множества всех заявок, которые получили полное или частичное исполнение за период времени с 10по t1. Как было показано в предыдущем параграфе, база данных, имеющаяся в моем распоряжении, позволяет для каждой совершенной сделки идентифицировать заявки на покупку и продажу, «смычка» которых и привела к заключению сделки. В результате, после третьего шага в множестве заявок остаются неисполненные заявки или заявки, исполненные частично.
На четвертом, заключительном, шаге по процедуре, схожей с описанной на третьем шаге, отсеиваются из имеющегося множества заявок все отмененные пользователем или системой заявки. В итоге получается снимок (snapshot)книги лимитированных заявок на момент времени t1. Восстановленная таким образом книга лимитированных заявок далее может быть использована на первом шаге как начальная книга для репликации книги в следующий момент времени 12 ит.д.
На основании полученной из данных информации о книге лимитированных заявок было произведено восстановление процесса торговли, пример визуализации которого продемонстрирован на Рис. А.2.
1 00
Рис. A.2 - Процесс торговли.
Д-З Построение классификатора рыночных событий на ос нове информации о выставленных котировках и совершенных сделках
Для целей последующего моделирования релаксации потребовалось провести для каждого момента времени разбиение всех выставленных в книге заявок на десять типов заявок, исчерпывающее описание которых представлено в таблице А. 1.
Таблица А,1 - Типы событий.
| - | Покупка (В) или продажа (S) | Тип заявки | Сдвиг лучшей цены | Описание со бытия |
| 1 | в | MO | Да | Рыночная заявка на покупку, которая сдвигает лучшую цену на продажу (ask) |
| 2 | S | MO | Да | Рыночная заявка на продажу, которая сдвигает лучшую цену на покупку (bid) |
| 3 | в | LO | Да | Лимитированная заявка на покупку, которая выставляется между текущими лучшими ценами покупки и продажи |
| 4 | S | LO | Да | Лимитированная заявка на продажу, которая выставляется между текущими лучшими ценами покупки и продажи |
1 О1
Продолжение таблицы А.1
| 5 | В | MO | Нет | Рыночная заявка на покупку, которая не сдвигает лучшую цену на продажу (ask) |
| 6 | S | MO | Нет | Рыночная заявка на продажу, которая не сдвигает лучшую цену на покупку (bid) |
| 7 | В | LO | Нет | Лимитированная заявка на покупку, которая выставляется по цене, равной или меньшей, чем текущая лучшая цена покупки (bid) |
| 8 | S | LO | Нет | Лимитированная заявка на продажу, которая выставляется по цене, равной или б ольшей, чем текущая лучшая цена продажи (ask) |
| 9 | В | Нет | Нет | Отмененные лимитированные заявки на покупку |
| 10 | S | Нет | Нет | Отмененные лимитированные заявки на продажу |
Примечания:
1 MO - обозначение для рыночной заявки (market order), которая подразумевает немедленное исполнение по превалирующей на рынке цене.
2 LO - обозначение для лимитированной заявки (limit order), которая может быть исполнена лишь по достижении заранее определенного значения цены.
Данный классификатор представляет собой, по сути, уточнение классификатора событий, предложенного Б. Бийо и др. в [30]. В настоящем виде он был предложен впервые Дж. Ларджем в [101]. Использование классификатора позволяет выделить события, как приводящие к возмущению системы, так и способствующие ее восстановлению. События первого и второго типа приводят к расширению бид- аск спрэда, так как последующая котировка на покупку или на продажу уходит вглубь книги лимитированных заявок после исполнения рыночной заявки на покупку (продажу), которая сдвигает лучшую цену на продажу (покупку). Следовательно, события 1 и 2 можно охарактеризовать как шоки ликвидности. В теории (например, в предложенном А. Кайлом [100] определении релаксации рынка), если возмущение было спровоцировано неинформационным шоком, то бид- аск спрэд должен вернуться в нормальное «досделочное» состояние через какой-то период времени, что собственно и описывается таким
1 02
аспектом ликвидности, как релаксация рынка (см. определение в главе 1). Сужение бид-аск спрэда до «досделочного» состояние может быть достигнуто только путем эмиссии новых лимитированных заявок на покупку (продажу), которые выставляются между текущими лучшими ценами покупки и продажи. Под данное описание подпадают события 3 и 4.
Реализация данного классификатора рыночных событий на практике (визуализацию классификатора можно посмотреть на Рис. А.3) потребовала преобразования данных в новый формат, которое сопровождалось серьезными техническими сложностями.
Примечания:
1 Объем представлен в логарифмическом масштабе.
2 Агрегирование произведено по ценовой шкале.
Рис. А.3 - Процесс торговли (с учетом разбиения заявок на 10 типов).
Во-первых, проблемы появились уже на стадии вычисления актуального состояния заявок, что связано с активностью торговли той или иной акцией. На бирже ММВБ минимально различимое время совершения сделок составляет одну секунду. В случае достаточно ликвидного актива в одну секунду могут одновременно происходить
1 03
сделки с участием разных заявок, причем как на покупку, так и на продажу. Кроме того, в это же время (в данную секунду) участники рынка могут выставлять и снимать свои заявки. При учете всех этих ситуаций трудность решаемой задачи возрастает в несколько раз.
Во-вторых, объем сохраняемой информации вырос более чем в 100 раз по сравнению с исходными данными. Кроме того, новая структура данных получалась настолько громоздкой для активно торгуемых акций, что занимала всю оперативную память, что в свою очередь сильно замедляло проведение расчетов.
В-третьих, появилась проблема с недостаточной скоростью вычислительного процесса. В среднем на настольном компьютере можно насчитать требуемые статистические данные для одного актива, описывающие один торговый день, примерно за 10 минут. Одним из способов ускорения вычислительного процесса является использование параллельных или распределенных вычислений. На системе Hewlett Packard BladeSystem c3000 был настроен MATLAB Distributed Computing Server. Для организации распределенных вычислений было разработано специальное программное приложение на базе данного модуля MATLAB. Развертывание этого программного приложения на сервере позволило ускорить получение результатов для всех данных примерно в 15 раз.
1 8 4