УДК 51-77
СТОХАСТИЧЕСКАЯ МНОГОАГЕНТНАЯ МОДЕЛЬ БИРЖЕВОЙ КНИГИ ЗАЯВОК НА ОСНОВЕ ЭМПИРИЧЕСКИХ ДАННЫХ
А. О. Глекин, аспирант (Институт системного анализа РАН, просп. 60-летия Октября, 9, г. Москва, 117312, Россия, [email protected])
В данной работе предлагается стохастическая многоагентная модель биржевой книги заявок. Целью построения модели является получение статистических свойств поведения биржевой книги, схожих с реально наблюдаемыми статистиками. Модель включает три основных механизма, реализующих динамику книги заявок: поступление и отмена лимитированных заявок, а также поступление рыночных заявок. В качестве параметров модели использовались статистики, полученные из журнала заявок для фьючерса на индекс РТС. Последовательность событий в модели, поступление или отмена заявок образуют пуассоновский поток. В качестве закона распределения объемов заявок используется степенной закон. Предложенная модель способна воспроизводить высокочастотную динамику микроструктуры поведения книги заявок, а также генерировать реалистичный ценовой ряд.
Ключевые слова: биржевая книга заявок, многоагентное моделирование, высокочастотная торговля, биржевые роботы.
STOCHASTIC MULTI-AGENT MODEL FOR THE ORDER BOOK DYNAMICS
Glekin A O., postgraduate (Institute for Systems Analysis RAS, 60-letiya Oktyabrya Av., 9, Moscow, 117312, Russia, [email protected]) Abstract. This paper introduces a stochastic multi-agent model to reproduce key empirical properties of the real order book dynamics. The model includes three mechanisms: sending limit orders, cancellation of limit orders and sending market orders. The empirical properties of the order book of RTS futures contract are used as parameters of the model. The sequence of order book events forms a Poisson flow. Order size has power-low distribution. The proposed model is able to reproduce several empirical features of the high-frequency dynamics of the orders in the book and price movements. Keywords: limit order book, multi-agent modeling, high-frequency trading, automated trade systems.
Возрастающий интерес участников рынка к автоматизированной торговле обусловил необходимость исследования адекватного поведения торговых систем на реальном рынке. Одним из основных методов проверки автоматизированных систем торговли является симуляция торгов на исторических и искусственных данных. Исторические данные служат для проверки прибыльности и оптимизации системы торговли. Симуляция на искусственных данных позволяет оптимизировать торговые системы на предмет исполнения заявок.
Для создания адекватной модели рынка необходимо моделировать поведение биржевой книги заявок с учетом статистических свойств реальной биржевой книги рассматриваемого финансового инструмента. В данной работе используются статистические свойства биржевой книги на самый ликвидный инструмент российского рынка - фьючерс РТС. Строится многоагентная модель, включающая четырех участников торгов. Действия каждого участника имеют случайный характер и не направлены на получение прибыли, то есть у них отсутствует функция полезности. Такие модели принято называть моделями с нулевым интеллектом (zero intelligence) [1].
В представленной модели поведение игроков воспроизводит эмпирические результаты реального рынка, поэтому данная модель не допускает аналитического решения. К примеру, в [2] предложена модель также с четырьмя участниками торгов на основе нелинейного марковского процесса. Предположения о поведении игроков, сделанные в [2], позволяют строго доказать существование процесса и сходимость к равновесию, но
модель не полностью воспроизводит поведение книги заявок. Стоит также отметить модель, предложенную в работе [3], которая позволяет оценить вероятность наступления различных событий в зависимости от текущего состояния книги. Однако в этой модели используются единичные размеры заявок.
Биржевой механизм
Механизмом торгов является непрерывный двойной аукцион. Участники торгов могут использовать лимитированные и рыночные заявки.
Лимитированные заявки определяются конкретной ценой, хуже которой эта заявка не может быть исполнена, и объемом (или размером), то есть количеством товара или ценных бумаг. Каждая лимитированная заявка размещается в книге заявок на соответствующем ценовом уровне.
В таблице 1 представлена книга заявок.
Таблица 1
level bid__price__ask level
__150 015__32 3
__150 010__23 2
__150 005__68 1
1 9__150 000__
2 13__149 995__
3 20 149 990
В первой графе указывается суммарный объем заявок на покупку, во второй - цены заявок, или так называемые уровни цен, в третьей - суммарный объем заявок на продажу. Минимальная цена
Биржевая книга заявок
bid price ask
150 015 32
150 010 23
150 005 68
9 150 000
13 149 995
20 149 990
продажи называется аск-ценой (ask price), максимальная цена покупки - бид-ценой (bid price).
Рыночные заявки - тип заявок, в которых указывается только объем заявки, но не указывается цена. Такие заявки исполняются по лучшей цене, существующей на текущий момент в книге. В результате поступления рыночной заявки происходят сделки. Если, например, в книгу поступила рыночная заявка на покупку объемом 70, то часть заявки объемом 68 исполнится по цене 150 005, а оставшийся объем 2 исполнится уже по цене 150 010. Такое явление называется проскальзыванием, когда цена исполнения хуже, чем лучшая цена на рынке. В результате исполнения такой заявки цена аск поднимется до уровня 150 010.
Лимитированная заявка находится в книге до тех пор, пока не будет исполнена либо отменена. Исполнение лимитированных заявок на каждом ценовом уровне подчиняется правилу FIFO, то есть заявка, которая раньше поступила на ценовой уровень, будет исполнена первой.
Лимитированная заявка имеет три параметра: уровень цены, объем и направление. Направление указывает на куплю или продажу инструмента. Номер уровня цены для заявок на покупку отсчи-тывается от лучшей цены предложения (ask price) на текущий момент времени, а для заявок на продажу - от лучшей цены спроса (bid price). Рыночная заявка определяется только объемом и направлением. Шаг цены между уровнями для фьючерса РТС на июнь 2011 г. был равен 5.
Ценовой уровень l(p) для заявок на покупку
Pa - Р
равен
Р - Pb
если p<pa, для заявок на продажу -
если p>pb, где pa - лучшая цена предло-
жения; pb - лучшая цена спроса; p - цена заявки; 5 - минимальный шаг цены.
Модель
Модель включает четырех участников торгов: поставщиков ликвидности на покупку и на продажу, а также потребителей ликвидности на покупку и на продажу.
Поставщики ликвидности поставляют в книгу только лимитированные заявки и отличаются направленностью этих заявок. Поставщик ликвидности на покупку отправляет заявки на покупку, поставщик ликвидности на продажу отправляет заявки на продажу.
Потребители ликвидности поставляют в книгу рыночные заявки и отличаются направленностью этих заявок, а также могут отменять активные лимитированные заявки. Потребитель ликвидности на покупку отправляет рыночные заявки на продажу и отменяет активные лимитированные заявки на покупку, а потребитель ликвидности на про-
дажу, наоборот, отправляет на покупку и отменяет на продажу соответствующие заявки.
Действия участников торгов будем моделировать пуассоновским процессом, а именно: интервал времени между событиями в книге заявок (соответствует одному шагу симуляции) имеет экспоненциальное распределение ^(x>t}=exp(-Xt), параметр X будем называть суммарной интенсивностью.
Параметры потребителя и поставщика ликвидности на покупку определяются нижним индексом bid, параметры потребителя и поставщика ликвидности на продажу - нижним индексом ask. Верхний индекс в параметрах модели указывает на тип действия: L - лимитированная заявка, M -рыночная заявка, C - отмена активной лимитированной заявки.
Каждый участник выполняет свои действия с некоторой интенсивностью , где нижний индекс side указывает на направленность участника, а верхний type - на тип действия. Тогда суммарная интенсивность событий в книге X= 11шк + lj¡¡d + +Ilk + Ibid + +, где ILbid - интенсивность отправки лимитированных заявок на покупку, ILmk -
tM
на продажу; Ibd - интенсивность отправки рыночных заявок на продажу, I^ - на покупку; I(^id - интенсивность отмены лимитированных заявок на покупку, - на продажу.
На каждом шаге симуляции выполняется одно из шести возможных действий с вероятностью
J t/pe
. Например, вероятность отмены ордера со
1
И
стороны покупок равна
к
Поставщик ликвидности
Поставщики ликвидности отправляют лимитированные заявки объемом V на ценовой уровень I. Объем V принимает значения 1, 2, ..., V (^=1000) с вероятностью р(V). Уровень цены I принимает значения 1, 2, ..., К (К=1000) с вероятностью р(I). Функции распределения вероятностей объема и уровня цены заявок не зависят от направленности поставщика ликвидности.
Скорость поступления объема в книгу заявок вычислим как У1п = Б1 (11шк + 11ш), где & - средний
V1
объем лимитированной заявки, = ^ vp1 (у) .
У=1
Потребитель ликвидности
Данные участники торгов отправляют рыночные заявки со случайным объемом V. Объем V
s
s
принимает значения 1, 2, ..., Vм (Рм=100) с вероятностью рм(V), которая не зависит от направленности потребителя ликвидности. Отмена активных лимитированных заявок соответствующего направления производится равновероятно, то есть независимо от уровня и объема заявки.
Скорость потребления объема из книги заявок такова: ^ = (/£ +) + ^ (1сшк + 1СШ), где 5С -
средний объем отменяемой заявки; Бм - средний
V м
объем рыночной заявки, = ^ урм (у).
Условие равновесия
Для стационарности объема лимитированных заявок в книге необходимо, чтобы в среднем скорость потребления объема была равна скорости поступления как со стороны покупок, так и со стороны продаж: SLILbid = SMС + 1СШ, SLILmk = - S Iм + SIC
M ask + ° C1 ask .
Если предположить, что рыночные ордера отсутствуют, то есть /М = 0 и IM = 0, то SC=SL,
I = I
ask ask
IC = IL
bid 1 bid ■
Это означает, что все поступившие лимитированные заявки отменяются с той же интенсивностью, что и поступают. При этом каждая активная лимитированная заявка имеет одинаковую вероятность отмены независимо от ее объема и ценового уровня.
При наличии рыночных ордеров часть активных лимитированных заявок исполняются полностью или частично, поэтому SC^SL.
Отметим, что при симуляции могут возникать ситуации, когда лимитированные ордера со стороны покупки или продажи полностью отсутствуют. Во избежание подобных ситуаций будем запрещать работу потребителя ликвидности на покупку (на продажу) при достижении некоторого минимума по количеству лимитированных заявок на покупку (на продажу). Ограничение по числу заявок определяется так, чтобы в любой момент времени в книге присутствовал необходимый объем для исполнения рыночной заявки максимального объема Vм. При симуляции использовалось ограничение в 100 заявок.
Ограничение по минимальному количеству ордеров дает возможность избегать ситуаций неограниченного роста суммарного объема в книге путем установки скорости поступления объема Vin чуть меньше скорости потребления Vout. Суммарный объем заявок в книге ведет себя как процесс с отражением и сносом вниз.
Оценка параметров модели
Данные. Модель книги строится на основе эмпирических данных, полученных из истории пото-
ка биржевых заявок для фьючерса на индекс РТС за июнь 2011 г. Для анализа книги использовались имеющиеся в свободном доступе данные на сайте биржи РТС (http://ftp.rts.ru/pub/mfo/historical_da-ta/). Данные содержат всю информацию о поступающих заявках на рынок, а также данные по всем совершенным сделкам.
Ценовой уровень заявки. На рисунке 1 показана эмпирическая зависимость среднего числа поступивших лимитированных заявок N(1) за 1 секунду в зависимости от ценового уровня /. Для />20 функцию N(1) аппроксимируем степенным законом NN(1) = п1-28, где п=Щ20)-2028. Для /<20 положим N(1) = N(I).
Тогда функцию вероятностей ценового уровня лимитированной заявки можно оценить как
N(1)
qL (l) = -
, 1=1, ..., K.
£ ^(o
Объем заявок. Функции вероятностей для объемов лимитированных и рыночных заявок аппроксимируем степенным законом: рм^)~у-1,1, рь(у)~ .,-2,06
Параметры распределений выбираются так, чтобы средние размеры заявок ^ и соответствовали эмпирическим значениям (таблица 2).
Таблица 2
Значения интенсивностей и объемов заявок в модели и на реальном рынке
Параметр Модель РТС
SL 3,92 3,92
Sc 4,10 3,86
SM 5,40 5,40
IL ask 46,5 45,5
IL 1 bid 46,5 45,2
IC ask 40,1 41,3
IC 1 bid 40,1 41,0
IM ask 3,37 3,43
IM 1 bid 3,37 3,43
Интенсивности событий. Параметр X выбирается в соответствии с суммарным числом собы-
v=1
i= 1
тий за 1 секунду: /^ + + С + !сш + /М + /М = = 179,97 (событие/сек.).
Результаты моделирования. Представляет интерес сравнение ряда эмпирических свойств реальной книги и изучаемой модели. В таблице 2 приведены полученные значения интенсивностей и объемов заявок для модели и для фьючерса РТС.
Поступление и отмена заявок. На рисунке 2 отражены интенсивности поступления и отмены лимитированных заявок в зависимости от ценового уровня.
--------ч
4 16 ч 64 256
Поступление(модель Отмена(модель) 4« ) л
Отмена(РТС) *
Номер уровня
Рис. 2. Среднее число поступающих и отмененных лимитированных заявок в секунду для модели и реального рынка. Логарифмический масштаб
Совпадение интенсивностей поступления означает правильно подобранные параметр X и распределение р(1).
бедует обратить внимание на поведение кривой интенсивности отмены ордеров. Начиная с 12-го уровня число поступивших заявок равно числу отмененных заявок. Это справедливо как для модели, так и для реальных данных. Такое поведение свидетельствует в пользу гипотезы равновероятной отмены активных лимитированных заявок. Расхождение кривых интенсивности поступления и отмены заявок с 1-го по 12-й уровни указывает на количество исполняемых заявок. Глубина уровня, с которого начинается расхождение кривых поступления и отмены заявок, может характеризовать моментальную волатильность.
Различие в интенсивностях отмены заявок объясняется принятой в модели независимостью объема лимитированной заявки от ценового уровня. На рисунке 3 видно, что для РТС средний размер поступающей заявки на первом уровне превышает среднее значение , что уменьшает число исполняемых заявок на первых уровнях.
Кроме того, на рисунке 3 уже продемонстрировано, что средний размер отмененной заявки на ближайших уровнях превышает среднее значение . Это связано с тем, что чаще отменяются заявки с большим размером, поскольку не успевают исполниться полностью.
Средний профиль книги. Профиль книги представляет собой состояние биржевой книги в
Поступление(РТС)
Отмена(РТС)
Поступление(модель)
Отмена(модель)
21 26 31 Номер уровня
Рис. 3. Средние размеры поступающих и отмененных лимитированных заявок для модели и реального рынка
некоторый момент времени. Средний профиль (рис. 4) рассчитывался как усредненное число заявок на каждом уровне книги на начало каждой секунды. Для книги РТС характерен логарифмический закон уменьшения числа заявок на дальних уровнях, однако на модельных данных получаем степенной закон.
На рисунке 5 показана зависимость среднего объема заявки, стоящей в книге. Как и в случае с объемом отменяемых заявок, объем заявок, стоящих на ближайших уровнях, превосходит . Это связано с тем, что время жизни заявки большого объема превышает время жизни заявок малого объема по причине их исполнения рыночными ордерами.
5 3 о
* 2
Число заявок(модель)
Число заявок(РТС)
-1.5ЧП(1)
/ 7
' У
10 100 Номеруровня
Рис. 4. Среднее число заявок, стоящих в книге, в зависимости от уровня для модели и реального рынка
-- Средний размер заявки(модель)
• • Средний размер заявки(РТС)
ч......
1 11 21 31 41 Номер уровня
Рис. 5. Средние размеры активных лимитированных заявок в зависимости от уровня цены для модели и реального рынка
Рисунок 6 демонстрирует пример ценовой динамики модели, которая ведет себя подобно реальной динамике РТС.
9
8
7
6
5
=С 4
3
2
1
6
11
16
36
41
46
10
1
0,1
0,01
0,001
8
!Л-2.8
7
« 6
5
4
0
11
9
3
Рис. 6. Пример ценовой динамики модели
На рисунке 7 представлен фрагмент диаграммы классов системы исполнения заявок. Центральным классом в данной модели является класс OrderMatchingSystem, реализующий в методе ОМетЕхесийоп алгоритм исполнения заявки. Класс ОМеЖоок - это два упорядоченных списка заявок (SortedList<Order>). Заявки упорядочены в соответствии с приоритетом их исполнения в момент поступления рыночной заявки.
OrderMatchingSystem
Ti mer OrderBook
OrderExecution(order)
Bid List : SortedList<Order> AskList : SortedList<Order>
AddOrder(order)
CancelOrder(order)
GetBestOppositeOrder(market_order)
Price
Size
Side
Sender
Status
OrderBook
Id
Рис. 7. Фрагмент диаграммы классов биржевого
механизма
Класс Trader является абстрактным, отвечающим за логику работы участников торгов. На рисунке 8 приведен фрагмент диаграммы классов, реализующих работу рассмотренной в данной работе модели и симуляции торгов по историческим данным.
3=;
Liq uidity Provider
OrderLogTrader
LiquidityConsumer
AskProvider BidProvider AskConsumer BidConsumer OrderMatchimg Syste m
Рис. 8. Фрагмент диаграммы классов модели и симуляции исторических данных
OrderLogTrader реализует симуляцию торгов по историческим данным. Исторические данные потока заявок (табл. 3) представляют собой таблицу с параметрами поступающих заявок. В графе Direction отражается направленность заявки: S -продажа, B - покупка; в графе DateTime - время поступления заявки с точностью до миллисекунды. Каждая заявка имеет свой номер ID, цену Price и объем Volume. В Action указывается тип действия: 0 - отменить заявку, 1 - поставить заявку в книгу и 2 - сделка совершена.
В заключение отметим, что в работе предложена стохастическая многоагентная модель биржевой книги заявок, состоящей из четырех агентов. Первые два агента, один со стороны спроса, другой со стороны предложения, поставляют ликвидность в биржевую книгу путем добавления лимитированных заявок. Другие два агента, один со стороны спроса, другой со стороны предложения, потребляют имеющуюся в книге ликвидность путем отмены лимитированных заявок либо путем отправки рыночных заявок. События в модели генерируются пуассоновским процессом.
Параметры модели определялись на основе эмпирических свойств книги заявок фьючерсного контракта на индекс РТС.
Таблица 3
Пример истории потока заявок по индексу РТС
Trader
Model
Direction DateTime ID Action (C=0, L=1, M=2) Price Volume Order ID Trade Price
S 20110601233951700 4014602286 0 184190 200
S 20110601233951800 4014602357 0 184185 90
S 20110601233951800 4014602375 1 185975 621
S 20110601233951900 4014602375 0 185975 621
S 20110601233951900 4014602391 1 185975 621
B 20110601233951900 4014181933 2 184000 1 328609129 184000
S 20110601233951900 4014602397 1 184000 5
S 20110601233951900 4014602397 2 184000 1 328609129 184000
S 20110601233951900 4014602398 1 184000 20
S 20110601233952000 4014602391 0 185975 621
S 20110601233952000 4014602417 1 185975 621
Стационарное поведение агентов, то есть неизменчивость интенсивностей работы агентов и ограничение по минимальному количеству лимитированных заявок в книге является условием устойчивого состояния книги. В данных условиях ценовая динамика и высокочастотные характеристики модели демонстрируют схожее поведение с реально наблюдаемыми эмпирическими свойствами рынка.
Данная модель может быть легко расширена для моделирования более сложной динамики поведения рынка. Интерес представляет моделирование трендового поведения цены. Такое поведение можно реализовать путем изменения соотношения ограничений по минимальному количеству лимитированных заявок со стороны спроса и предложения, а также изменения соотношения рыночных заявок и отмены лимитированных заявок.
Литература
1. Ladley D., Zero Intelligence in Economics and Finance, The Knowledge Engineering Review, Cambridge Univ. Press, 2004, Vol. 27, pp. 1-24.
2. Lykov A., Muzychka S., Vaninsky K., A multi-agent nonlinear markov model of the order book. arXiv:1208.3083.
3. Cont R., Stoikov S., Talreja R., A stochastic model for order book dynamics, Operation Research, 2010, Vol. 58, no. 3, pp. 549-563.
4. Chakraborti A., Toke I. M., Patriarca M., Abergel F., Econophysics review: I. Empirical facts, Quantitative Finance, 2011, Vol. 11, no. 7, pp. 991-1012.
5. Chakraborti A., Toke I.M., Patriarca M., Abergel F., Econophysics review: II. Agent-based models, Quantitative Finance, 2011, Vol. 11, no. 7, pp. 1013-1041.
6. Maslov S., Simple model of a limit order-driven market, Physica A, 2000, no. 278, pp. 571-578.
7. Samanidou E., Zschischang E., Stauffer D., Lux T., Agent-based models of financial markets, Reports on Progress in Physics, 2007, Vol. 70, pp. 409-450.
References
1. Ladley D., The Knowledge Engineering Review, Cambridge University Press, 2004, Vol. 27, pp. 1-24.
2. Lykov A., Muzychka S., Vaninsky K., A multi-agent nonlinear markov model of the order book, available at: arXiv:1208.3083 (accessed 24 July 2013).
3. Cont R., Stoikov S., Talreja R., Operation Research, 2010, Vol. 58, no. 3, pp. 549-563
4. Chakraborti A., Toke I. M., Patriarca M., Abergel F., Quantitative Finance, 2011, Vol. 11, no. 7, pp. 991-1012.
5. Chakraborti A., Toke I. M., Patriarca M., Abergel F., Quantitative Finance, 2011, Vol.11, no. 7, pp. 1013-1041.
6. Maslov S., Physica A, 278, 2000, pp. 571-578.
7. Samanidou E., Zschischang E., Stauffer D., Lux T., Reports on Progress in Physics, 2007, Vol. 70, pp. 409-450.
УДК 004.93
СИСТЕМА АВТОМАТИЧЕСКОГО КАРТОГРАФИРОВАНИЯ ЗНАКОВ ДОРОЖНОГО ДВИЖЕНИЯ
(Работа выполнена при поддержке РФФИ, грант № 12-01-33085)
А.А. Чигорин, аспирант; А.С. Конушин, к.ф.-м.н., научный сотрудник (Московский государственный университет им. М.В. Ломоносова, Ленинские горы, 1, г. Москва, 119991, Россия, aachigorin@graphics. cs. msu. ru, ktosh@graphics. cs. msu.ru)
Рассмотрена задача автоматического нанесения дорожных знаков на карту. Для успешного применения автоматических методов на практике необходимо, чтобы суммарное время работы автоматического алгоритма и время исправления его ошибок были в разы меньше времени разметки оператором. Описывается система автоматического нанесения знаков на карту, состоящая из модулей обнаружения, распознавания, связывания и локализации. На этапах обнаружения и распознавания положение знака определяется независимо на каждом кадре и каждому обнаруженному знаку присваивается метка класса. На этапе связывания одни и те же физические знаки с соседних кадров объединяются в последовательности, что позволяет уточнить результаты этапа обнаружения и распознавания. На этапе локализации определяются координаты связанной последовательности знаков за счет применения метода триангуляции. Проведены эксперименты, подтверждающие эффективность различных компонентов предложенной системы. Система работает более чем со 140 классами знаков дорожного движения и не требует ручной разметки большого количества тренировочных изображений за счет обучения на синтетически полученных данных. Создана большая коллекция знаков дорожного движения Российской Федерации. Проведено тестирование системы на предложенной коллекции. Коллекция находится в открытом доступе, чтобы способствовать сравнению с другими методами.
Ключевые слова: картографирование, распознавание образов, знаки дорожного движения, синтетические данные.
A SYSTEM FOR AUTOMATIC TRAFFIC SIGNS MAPPING Chigorin A.A., postgraduate; Konushin AS., Ph.D., researcher (Lomonosov Moscow State University, Leninskie Gory, 1, Moscow, 119991, Russia, [email protected]. ru, ktosh@graphics. cs.msu.ru) Abstract. The article describes a system for the large-scale automatic traffic signs recognition and mapping. To apply automatic methods successfully we need the cumulative time of automatic algorithm and time for error correction to be less