Научная статья на тему 'Применение симуляторов рынка ценных бумаг для тестирования систем агрегации и распределения информации о котировках (Ticker Plant)'

Применение симуляторов рынка ценных бумаг для тестирования систем агрегации и распределения информации о котировках (Ticker Plant) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
304
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА АГРЕГАЦИИ И РАСПРЕДЕЛЕНИЯ ИНФОРМАЦИИ О КОТИРОВКАХ (TICKER PLANT / TICKER PLANT / MARKET DATA) / БИРЖА / EXCHANGE / ТЕСТОВАЯ ПЛАТФОРМА / TEST MARKET / СИМУЛЯТОР РЫНКА / MARKET SIMULATOR / ФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ / FUNCTIONAL TESTING / НЕФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ / NON-FUNCTIONAL TESTING / MARKET DATA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Булда Алёна Юрьевна, Буянова Ольга Александровна, Зверев Алексей Валерьевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Булда Алёна Юрьевна, Буянова Ольга Александровна, Зверев Алексей Валерьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING OF EXCHANGE SIMULATORS AND TEST EXCHANGES AS TOOLS TO TEST TICKER PLANT SYSTEMS

Ticker Plant systems are widely used in modern day trading. They allow collecting in real-time quotes from several markets, present the data in a unified format, and disseminate it electronically depending on requests and goals of external clients, traders. This paper presents a view on the possibility of using market simulators for testing such systems. A set of main functional and non-functional test scenarios required to control the quality of quote dissemination has been identified. A comparison of market simulators and real test markets has been presented.

Текст научной работы на тему «Применение симуляторов рынка ценных бумаг для тестирования систем агрегации и распределения информации о котировках (Ticker Plant)»

УДК 004.052.2

А.Ю. Булда, О.А. Буянова, А.В. Зверев

ПРИМЕНЕНИЕ СИМУЛЯТОРОВ РЫНКА ЦЕННЫХ БУМАГ ДЛЯ ТЕСТИРОВАНИЯ СИСТЕМ АГРЕГАЦИИ И РАСПРЕДЕЛЕНИЯ ИНФОРМАЦИИ О КОТИРОВКАХ (TICKER PLANT)

A.Yu. Bulda, O.A. Buyanova, A.V. Zverev

USING OF EXCHANGE SIMULATORS AND TEST EXCHANGES AS TOOLS TO TEST TICKER PLANT SYSTEMS

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

СИСТЕМА АГРЕГАЦИИ И РАСПРЕДЕЛЕНИЯ ИНФОРМАЦИИ О КОТИРОВКАХ (TICKER PLANT, MARKET DATA); БИРЖА; ТЕСТОВАЯ ПЛАТФОРМА; СИМУЛЯТОР РЫНКА; ФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ; НЕФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ.

Ticker Plant systems are widely used in modern day trading. They allow collecting in real-time quotes from several markets, present the data in a unified format, and disseminate it electronically depending on requests and goals of external clients, traders. This paper presents a view on the possibility of using market simulators for testing such systems. A set of main functional and non-functional test scenarios required to control the quality of quote dissemination has been identified. A comparison of market simulators and real test markets has been presented.

TICKER PLANT; MARKET DATA; EXCHANGE; TEST MARKET; MARKET SIMULATOR; FUNCTIONAL TESTING; NON-FUNCTIONAL TESTING.

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

для каждого финансового инструмента являются основными характеристиками для такого рода компонентов высоконагружен-ных систем.

Рыночная информация (Market Data) и ее основные представления. Обычно рыночная информация включает в себя следующий набор параметров, специфичных для определенного финансового инструмента: краткое название инструмента (ticker symbol), цена последней сделки (last trade price), текущие лучшие цены спроса и предложения (Best Bid & Offer), идентификационный номер инструмента (ISIN), биржа, на которой произошла сделка (ex^ange code), время последней сделки (Trade Time), цена

4

сделки при закрытии торговой сессии на инструменте (Close Price). В зависимости от сложности высоконагруженных биржевых систем, рыночная информация о котировках может обрабатываться внутренними компонентами электронных бирж и обогащаться дополнительной информацией: например, об общем объеме сделок в течение биржевого дня (Turnover), о средневзвешенной цене по общему объему и количеству сделок (VWAP), а также более детальной информацией об акции или деривативе — справочные данные, такие как параметры трейдеров, рынка, торговых сессий, инструментов (или Reference Data). Справочные данные (Reference Data или Static Data) представляют собой информацию об инструменте, которая не меняется в режиме реального времени: например, международный идентификационный код ценной бумаги (ISIN), цена сделки при закрытии трейдинговой сессии за предыдущий день (Close Price), валюта, в которой данный финансовый инструмент торгуется на бирже (Currency), параметры т. н. «прерывателей торгов», которые чаще указываются в процентных соотношениях к цене последней сделки (Dynamic or Static Circuit Breaker Tolerances, %), и т. д. [1]

Для предоставления перечисленной выше информации существует ряд стандартных протоколов распространения котировок (например, FIX/FAST [2]), т. н. протоколов распространенния котировок с фиксированной длиной сообщений (например, ITCH [3]), или кодированные протоколы передачи данных (например, HTTPS (HyperText Transfer Protocol Secure) [4, 5]).

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

^стема агрегации информации (Ticker Plant) и ее основные функции. Ticker Plant — это система агрегации информации о котировках с различных электронных торговых площадок (или бирж) и ее распределения. Данная система предоставляет рыночные данные трейдерам в нормализованном или унифицированном виде [6]. Нередко Ticker Plant рассчитывает дополнительные параметры на основе предоставленных рыночных данных, т. е. обогащает статистическую информацию об акциях и деривативах. Кроме того, для таких систем характерна способность объединять однородные величины распространяемых котировок: ценовые уровни (Price Levels), предоставление котировок согласно запросам клиентов (например, широко распространены такие сервисы, как Level 1, Level 2, Index, T&S, News) в режиме реального времени, а также хранение переданной рыночной информации.

Указанные выше типы сервисов по предоставлению рыночной информации распространены в электронной торговле финансовыми инструментами. Рассмотрим каждый из них подробнее:

• Levell — информация о последних Bid/Ask, OHLC (Open, High, Low, Close), Volume;

• Level2 — информация о Levell + Order Book (5—10 уровней глубины торговой книжки, Bid/Ask Px&Qty). Level2 может содержать атрибутированные или анонимные заявки) и использовать модели MBO (Market by Order, т. е. индивидуальное отображение всех заявок в пределах отдельно взятого ценового уровня) и MBP (Market by Price, т. е. агрегированное отображение заявок в пределах отдельно взятого ценового уровня) [7];

• Level2 — Total View — более полная информация по сравнению с Level2;

• News — последние новости о компании [8];

• Index — данные об индексах [9].

Схематичное представление системы

агрегации и распределения информации о котировках показано на рис. 1.

Для того чтобы оценить сложность решаемых задач, определим параметры режи-

Рис. 1. Схема системы Ticker Plant

ма реального времени. Наиболее значимыми являются:

критический срок обслуживания или предельный срок завершения какой-либо работы;

время отклика (время задержки) системы на внешние события;

разброс значений времени отклика.

События, происходящие в системе реального времени, могут относиться к одной из трех категорий:

1) непредсказуемые события;

2) предсказуемые события, случающиеся с определенной регулярностью;

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

Основные требования к системе

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

Итак, система должна решать следующие задачи.

С функциональной точки зрения:

1) собирать рыночную информацию о котировках из нескольких источников (поставщиков рыночной информации — бирж, банков);

2) обрабатывать справочные данные (reference data), предоставляемые биржами;

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

4) преобразовывать полученную информацию в один формат;

5) агрегировать данные о котировках согласно различным методам, описанным выше;

6) обрабатывать эти данные с целью расширения функциональности системы: например, предоставлять статистику (VWAP, Turnover, Trade High/Low, 52 week Trade High/Low);

7) предоставлять данные согласно запросам клиентов: Levell, Level2, T&S, News, Index, Option chains и др.;

8) предоставлять записанную историческую информацию о котировках.

С нефункциональной точки зрения:

1) быструю обработку потоков информации о котировках, поступающей в режиме реального времени от электронных бирж;

2) быструю обработку запросов, по-

4

ступающих от клиентов, и предоставление данных о котировках в зависимости от вида запроса клиента (например, отдельно на торгуемый инструмент или на группу инструментов, или на весь рынок);

3) бесперебойную работоспособность системы;

4) управляемость системой (operability);

5) возможность мониторинга систем (наличие приложений, с помощью которых можно наблюдать за системой или упралять ее компонентами);

6) пропускную способность (throughput);

7) временную задержку (latency);

8) отказоустойчивость (fault tolerance).

Определив набор функциональных и

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

Первый — это тестирование с реальными тестовыми площадками (Customer Develop-

ment Service — CDS [10]). Обычно биржи предоставляют своим клиентам тестовые окружения (test environments), аналогичные реальной электронной трейдинговой платформе. Чаще всего это делается с целью прохождения сертификационного процесса или предоставления клиентам возможности для отладки своего клиентского программного обеспечения.

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

«Тестовая» биржа: описание и основные возможности

«Тестовая» биржа — это своего рода полная копия реальной трейдинговой биржи [11]. Такой аналог трейдинговой биржи должен наиболее полно представлять реальную электронную платформу. Тестовые биржи предоставляются клиентам, которым необходимо отладить разработанное ими трейдинговое и информационное программное обеспечение [12]. Заявки и сделки

Тестер

Рис. 2. Тестирование Ticker Plant с помощью тестовой биржи

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

В идеале тестовая биржа состоит из тех же компонентов, что и реальная биржевая система [13]. Торговые сессии, основные параметры торгуемых инструментов, правила трейдинга, графические приложения для управления настройками справочных данных (reference data) и т. д — все эти характеристики полностью аналогичны компонентам реальной системы. Поэтому такое тестовое окружение (test environment) позволяет проверять программное обеспечение, заведомо ориентируясь на аналогичные настройки в реальной системе.

На рис. 2 приведена схема тестирования Ticker Plant с применением тестовой биржи.

Симулятор рынка ценных бумаг: описание и основные возможности

Симулятор рынка ценных бумаг (или биржевой симулятор) — это интерактивная программа, разработанная для имитации возможностей и свойств реальных моделей рынка [14]. Симулятор рынка должен уметь эмулировать реальные действия, происходящие на бирже: сам трейдинг (размещение заявок, генерацию сделок, изменения статусов инструментов и т. д), симуляцию

мониторинга за ходом торгов на рынке и внесение изменений (market operations: отмена/изменение заявок и сделок, остановка торгов и т. д.), режим работы рынка (переход рынка из одного статуса в другой — открытие рынка (Market Open), аукционы (Opening/Closing/ Periodic Auction Calls), вычисления цен аукционов и публикация цены закрытия, закрытие рынка и т. д. Биржевой симулятор рынка содержит API, аналогичный реальной бирже, с элементами контроля отсылаемых ответов клиенту [15]. Такие симуляторы рынков позволяют иметь более полный контроль над генерируемыми событиями для системы Ticker Plant [16], таким образом увеличивая покрытие тестирования системы. С помощью симуляторов можно создать необходимую нагрузку, сравнимую с потоками данных, свойственных реальным высоконагруженным биржевым и брокерским системам.

На рис. 3 представлена схема верификации системы Ticker Plant при помощи си-мулятора.

Составление библиотеки сценариев и тестов для верификации корректности работы системы агрегации и распределения информации о котировках (Ticker Plant)

Исходя из основных требований к системе Ticker Plant, мы разработали библио-

Рис. 3. Схема тестирования Ticker Plant с применением симулятора

4

теку сценариев тестирования, с помощью которых можно проверить работоспособность такой системы. В табл. 1 приведены области тестирования системы Ticker Plant и дано их краткое описание. Таблица также показывает оценочную шкалу областей тестирования по приоритетам. Например, если напротив той или иной области указана важность 1, это означает, что при возникновении ошибок в данной области тестируемая система Ticker Plant не сможет полноценно выполнять свою основную задачу. Важность 3 означает, что при наличии ошибок в этой области система может выполнять свою основную задачу, но с некоторыми отклонениями.

Анализ покрытия тестирования системы Ticker Plant при помощи

инструментов для тестирования

Для того чтобы оценить и проанализировать, насколько полно инструметы тестирования покрывают области функциональности системы Ticker Plant, которую необходимо протестировать, нами был разработан специальный метод, основанный на переборе сценариев в процентном отношении к всевозможным сценариям, относящимся к той или иной функциональной области. Опираясь на опыт тестирования, полученный в компании Exactpro Systems [17], была определена важность областей системы Ticker Plant, обозначенная в правой колонке табл. 1.

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

Сравнительная характеристика оценочных данных при тестировании системы Ticker Plant с помощью реальной тестовой биржи и симулятора. В табл. 2 приведены сравнительные характеристики, включающие в себя оценочные данные, полученные в ходе тестирования системы Ticker Plant с помощью реальной тестовой биржи и симулято-ра, а также детальное объяснение полученных данных.

Может сложиться ощущение, что полное покрытие тестирования системы Ticker Plant возможно исключительно с использованием симуляторов (как видно из табл. 2). Однако в реальности это не так. Основное препятствие состоит в том, что эмулировать торговую площадку со 100-процентной точностью невозможно. В особенности это касается непосредственного взаимодействия между системой Ticker Plant и различными рынками. Причина заключается в том, что любая спецификация о протоколе соединения с биржей содержит ограниченное описание поведения при различных ситуациях, поэтому даже если симулятор воспроизведет 100 % спецификации с точностью до нюансов, все равно останутся элементы, сделанные «на усмотрение» создателей си-мулятора.

Для наглядности приведем пример. Предположим, на бирже происходит сделка, и биржа рассылает клиентам два события: первое событие содержит объем и цену сделки; второе событие содержит изменение HIGH, LOW параметров цены на данном финансовом инструменте. Если какой-либо алгоритм при расчете индекса использует и первое, и второе события, то вполне вероятно, что для дальнейшей работы такого алгоритма будет важно, в каком порядке описанные выше события происходят. Маловероятно, что спецификация торговой площадки будет содержать требования к порядку сообщений и событий. Более того, раз данного требования нет в спецификации, биржа может легко поменять этот порядок. Таким образом, у нас есть пример сценария, который невозможно симулировать точно. В связи с этим существенный объем тестирования должен осуществляться на тестовой площадке, которая наиболее близко соответствует поведению реального рынка. Данное заключение также сделано, опираясь на опыт в тестировании систем Ticker Plant.

Более наглядно сравнительный анализ покрытия тестами при помощи различных инструментов тестирования показан на рис. 4.

Таблица 1

Области тестирования Ticker Plant

Область тестирования

Описание

Важность (1-3)

1. Техническое подключение к биржам — поток данных о котировках и сделках в режиме реального времени (streaming quotes — real time): UDP (User Datagram Protocol); TCP/IP (Transmission Control Protocol (TCP) и Internet Protocol (IP); HTTPS (HyperText Transfer Protocol Secure)

2. Техническое подключение к биржам — каналы восстановления данных (Replay/Recovery channels)

3. Тестирование интерфейса протокола от биржи к системе Ticker Plant (real time + replay/recovery)

4. Восстановление потери небольшого количества данных (Replay channel)

5. Восстановление потери большого количества данных (Recovery channel)

6. Проверка справочных данных (Reference Data)

Возможности подключения к основным каналам (primary channel);

подключение к запасным каналам (secondary channels);

отказоустойчивость (fault tolerance);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

тестирование аварийного восстановления данных

(disaster recovery)

Возможности подключения к основным каналам (primary channel); подключение к запасным каналам (secondary channels); отказоустойчивость (fault tolerance); тестирование аварийного восстановления данных (disaster recovery)

Проверка административных сообщений, инициируемых Ticker Plant (Administrative messages: Login Request, Replay Request, Snapshot Request, Logout Request); проверка административных сообщений, инициируемых каналом (Administrative messages): Heartbeat, Login Response, Replay Response, Snapshot Response, Snapshot Complete); проверка сообщений приложения (Application messages: Time, System Event, Symbol Directory, Symbol Status, Add Order, Add Attributed Order, Order Deleted, Order Modified, Order Book Clear, Order Executed, Order Executed with Price/Size, Trade, Auction Trade, Off-Book Trade, Trade Break, Auction Info, Statistics); проверка обязательных полей (mandatory tags/values) и значений; проверка необязательных полей и значений (optional tags/values); проверка всевозможных вариантов и сочетаний значений тагов (Order Type, TIF и т. д.); проверка негативных значений (неподдерживаемые значения, отрицательные значения, специальные символы и т. д.) Возможности подключения к основному каналу (primary channel); подключение к запасным каналам (secondary channels); проверка последовательности полученных данных; проверка полученных данных на правильность; проверка объема буферизации данных Возможности подключения к основному каналу (primary channel); подключение к запасным каналам (secondary channels); проверка последовательности полученных данных; проверка полученных данных на правильность; проверка объема переданных данных Возможность загрузить данные о финансовых инструментах, предоставляемых биржей; правильность обработки данных; использование справочных данных для подсчета различных показателей

1

1

1

1

1

1

4

Продолжение таблицы 1

Область тестирования

Описание

Важность

(1-3)

7. Тестирование поведения системы Ticker Plant при отказе компонентов биржи (Failover при потоке данных с биржи)

8. Тестирование при отказе компонентов системы Ticker Plant (Failover при потоке данных из системы Ticker Plant)

9. Тестирование полного трейдингового дня (цикла) работы системы Ticker Plant (Daily Life Cycle - DLC)

10. Тестирование полного трейдингового дня (цикла) на бирже (DLC)

11. Проверка всевозможных торговых статусов рынка

12. Измерение ширины потребляемого канала передачи данных по сети (Bandwidth)

13. Измерение пропускной способности каналов в единицу времени (Throughput)

14. Измерение задержек (латентности (Latency) системы)

15. Проверка нагрузочной способности системы (Capacity) — нагрузка входным потоком данных

16. Проверка нагрузочной способности системы (Capacity) - нагрузка с клиентской стороны системы Ticker Plant

17. Проверка системы Ticker Plant при неправильных запросах клиентов и ответная реакция на них для Replay/ Recovery каналов_

Восстановление данных после отказа основного и/или запасного каналов; возможность переподключения; правильная последовательность сообщений; возможность дальнейшей обработки данных после восстановления

Проверка работоспособности компонентов системы Ticker Plant при отказе основного/запасного каналов; правильная последовательность сообщений; возможность дальнейшей обработки данных после восстановления

Проверка правильной последовательности старта компонентов системы Ticker Plant; проверка правильной последовательности выключения компонентов системы Ticker Plant

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

Проверка на присутствие данных видов статусов внутри системы Ticker Plant: например, Halt, Opening auction call, Pre-mandatory quote period, Continuous trading, End trade reporting, Closing auction call; проверка обрабатывания переходов из одного статуса инструментов в другой; проверка правильности обработки сообщений при массовой смене статусов на финансовых инструментах

Проводятся нагрузочные тесты для измерения объема передаваемых данных в единицу времени

Проводятся нагрузочные тесты для подсчета среднего количества гарантированно доставленных сообщений через каналы передачи данных

Проверка компонентов системы на задержу передачи данных во времени

Проверка на работоспособность системы Ticker Plant при большом входном потоке данных

Проверка на обработку системой Ticker Plant большого количества запросов

Попытки подключения клиента (СошрГО) с недостаточным кличеством прав; попытки подключения с несуществующим пользователем; проверки максимального количества подключений; проверки максимального количества запросов

1

2

1

1

1

1

1

1

2

2

1

Окончание таблицы 1

Область тестирования Описание Важность

(1-3)

18. Проверка правильности Отклик на несуществующие сообщения (messages

обработки системой Ticker types); неправильное количество тегов; неправиль- 2

Plant некорректных сообще- ный порядок тегов; неправильная контрольная сумма

ний от биржи (checksum)

19. Проверка корректности Добавление заявок; изменение заявок; удаление зая-

работы системы в целом — вок; добавление агрессивных заявок (приводящих к

от трейдингового клиента до сделке) 1

системы Ticker Plant (E2E

тестирование)

20. Сложные сценарии на Проверка на то, как система обрабатывает очеред-

функциональность самой ность событий (например, многоуровневые сделки с

биржи айсберг-заявками); вычисления цены аукциона; пове- 2

дение Stop /Stop Limit ордеров в зависимости от фазы

трейдингового дня; проверка поведения GTC ордеров

в течение нескольких дней

21. Реконсиляционное те- Проверка при сравнении потоков, идущих к системе

стирование и от системы (детальная проверка на то, что каждое 1

событие, поступившее на вход системы, обработалось

и отобразилось на выходном потоке)

22. Тестирование MBO Функциональная проверка сервисов, предоставляемых

(market by order) и MBP системой Ticker Plant 1

(market by price) сервисов

23. Проверки расчета ин- Проверка правильности расчетов индексов в зависи- 2

дексов мости от потока сделок

24. Правильность расчета Проверка расчета VWAP, Turnover, Trade High Low, 52 2

статистических данных week Trade High Low и т. д.

25. Работа с историческими Сбор исторических данных; сортировка в зависимости

данными от типа данных; выдача результатов согласно запро- 2

сам клиентов; возможность проигрывать записанные

исторические данные

26. Проверка получения и Тестирование новостей (News); тестирование опове-

передачи новостных кана- щений клиентов (Announcements) 3

лов от бирж

27. Проверка действия бир- Отмена сделок; изменение параметров сделки 2

жевого оператора

28. Проверка сложных за- Выдача данных для деривативного инструмента (оп-

просов клиента ционные цепочки — option chains) на запрашиваемый базовый инструмент 2

29. Мониторинг системы Проверка приложений, с помощью которых можно

наблюдать за системой или управлять ее компонен- 1

тами

Таблица 2

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

1. Техническое подключение к биржам — поток данных о котировках и торгах в режиме реального времени (streaming quotes — real time) UDP (User Datagram Protocol); TCP/IP (Transmission Control Protocol и Internet Protocol; HTTPS (Hypertext Transfer Protocol Secure) 2. Техническое подключение к биржам — каналы восстановления данных (Replay/Recovery channels) 100 100 40 40 При данной оценке мы исходим из того, что симулятор биржи по своему определению не способен полноценно воспроизвести все технические детали соединения с биржей. Если есть стандартная спецификация, то эмулировать шлюз можно примерно на 40 %, исходя из набора тестовых сценариев на соединение с биржей При данной оценке мы исходим из того, что симулятор не может воспроизвести всех технических деталей соединения с биржей. Если есть стандартная спецификация, то эмулировать шлюз можно примерно с 40-процентным покрытием сценариев

3. Тестирование интерфейса протокола от биржи к системе Ticker Plant (real time + replay/recovery) 100 100 Данная функциональность (тестирование внешнего шлюза) изолирована от биржи, поэтому мы считаем, что использование симулятора и тестовой биржи обеспечивают одинаковое покрытие набора тестовых сценариев

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

5. Восстановление потери большого количества данных (Recovery channel) 75 100 Несмотря на то, что данная функциональность изолирована от биржи, ее проверка требует значительного потока котировок с биржи. Исходя из нашего опыта, такое возможно не всегда с тестовой биржей, и есть ряд значительных ограничений. Поток данных с тестовых площадок обычно соответствует ожиданиям, однако его практически невозможно контролировать, чего не скажешь о симуляторе, контроль над которым находится в руках тестировщиков

6. Проверка справочных данных (Reference Data) 100 5

7. Тестирование поведения системы Ticker Plant при отказе компонентов биржи (Failover при потоке данных с биржи) 100 10

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8. Тестирование при отказе компонентов системы Ticker Plant (Failover при потоке данных из системы Ticker Plant) 100 40

9. Тестирование полного трей-дингового дня (цикла) работы системы Ticker Plant (Daily Life Cycle - DLC) 10. Тестирование полного трей-дингового дня (цикла) на бирже (DLC) 40 100 100 40

11. Проверка всевозможных торговых статусов рынка 50 100

12. Измерение ширины потребляемого канала передачи данных по сети (Bandwidth) 75 100

13. Измерение пропускной способности каналов в единицу времени (Throughput) 75 100

Данное тестирование сосредоточено на верификации настроек системы, настроек финансовых инструментов и т. д. Необходимо тестировать в связке с реальными рынками

Тестирование с симулятором в данном случае возможно, но значительная часть тестов проверяет соединение между Ticker Plant и биржами. При данной оценке мы исходим из того, что симулятор не может воспроизвести всех технических деталей соединения с биржей. При наличии стандартной спецификации эмулирование шлюза возможно с 40-процентным покрытием сценариев

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

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

Тестирование с симулятором возможно; для тестовых площадок имеется значительная зависимость от аппаратных средств и настроек их производительности. В данном случае симулятор имеет преимущество

Тестирование с симулятором возможно; для тестовых площадок имеется значительная зависимость от аппаратных средств и настроек их производительности. В данном случае симулятор имеет преимущество

Окончание таблицы 2

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

14. Измерение задержек (латент-ности (Latency) системы) 75 100 Тестирование с симулятором возможно; для тестовых площадок имеется значительная зависимость от аппаратных средств и настроек их производительности. В данном случае симулятор имеет преимущество

15. Проверка нагрузочной способности системы (Capacity) — нагрузка входным потоком данных 75 100 Тестирование с симулятором возможно; для тестовых площадок имеется значительная зависимость от аппаратных средств и настроек их производительности. В данном случае симулятор имеет преимущество

16. Проверка нагрузочной способности системы (Capacity) — нагрузка с клиентской стороны системы Ticker Plant 75 100 Тестирование с симулятором возможно; для тестовых площадок имеется значительная зависимость от аппаратных средств и настроек их производительности. В данном случае симулятор имеет преимущество

17. Проверка системы Ticker Plant при неправильных запросах клиентов и ответная реакция на них для Replay/Recovery каналов 100 100 Данная функциональность (тестирование внешнего шлюза) изолирована от биржи, поэтому мы считаем, что использование симулятора и тестовой биржи обеспечивают одинаковое покрытие

18. Проверка правильности обработки системой Ticker Plant некорректных сообщений от биржи 25 100 В данном случае симулятор может отправлять на вход Ticker Plant гибкий набор негативных сценариев тестирования, что обеспечивает большее покрытие. С другой стороны, абсолютное число сценариев, с технической точки зрения, имея при этом только спецификацию биржи, невозможно воспроизвести

19. Проверка корректности работы системы в целом — от трей-дингового клиента до системы Ticker Plant (Е2Е тестирование) 90 85 Данное тестирование представляет собой набор всех трейдинго-вых сценариев тестирования. Это можно обеспечить как симулятором, так и тестовой площадкой. Поэтому оценочная характеристика примерно одинаковая

20. Сложные сценарии на функциональность самой биржи 50 100

21. Реконсиляционное тестирование 100 50

22. Тестирование МВО (market by order) и MBP (market by price) сервисов 100 100

23. Проверки расчета индексов 50 100

24. Правильность расчета статистических данных 50 100

25. Работа с историческими данными 50 100

26. Проверка получения и передачи новостных каналов от бирж 50 100

27. Проверка действия биржевого оператора 100 30

28. Проверка сложных запросов клиента 100 100

29. Мониторинг системы 100 30

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

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

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

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

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

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

В этом тесте необходима эмуляция искусственных новостей. Для повторяемости тестов и полного контроля необходим симулятор

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

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

Системы для управления рынками должны проверяться в связке с реальными системами, с которыми будет впоследствии работать система. Преимущество у тестовой площадки

4

Рис. 4. Сравнительный анализ покрытия тестами при помощи тестовой биржи и симулятора

Анализ данных, приведенных в табл. 2 и на рис. 4, показывает, что тестирование с помощью симуляторов и реальных тестовых бирж (в разумный временной период) имеет свои плюсы и минусы. В целом, мы имеем приблизительно одинаковые показатели по оценочной методике.

Общая формула покрытия всех функци-ональностей соответствующим инструментом тестирования:

Ä CovN * 1 / PriorN

Ä 29 1 '

N=1 1

N=1 PriorN

(1)

где Summ — сумма (табл. 2); CovN* — относительное покрытие данной функциональности соответствующим инструментом тестирования (табл. 2); PriorN — приоритет данной функциональности (табл. 1).

Итоговый результат: тестирование при помощи симуляторов обеспечивает 76 % покрытия; тестирование при помощи тестовой площадки — 83 %.

В данной статье описана система агрегации и распределения информации о котировках (Ticker Plant), перечислены

ее основные характеристики, составлена справочная библиотека скриптов для тестирования, максимально покрывающих функциональность обобщенной системы Ticker Plant. Эту информацию можно использовать как пособие для тестирование таких систем. Также в статье даны определения биржевого симулятора и реальной тестовой биржи. При помощи разработанной методики оценки покрытия сценариями для тестирования системы Ticker Plant проанализированы и обработаны два возможных пути тестирования: при помощи реальной тестовой биржи и симуляторов бирж. На основе двух сводных таблиц выведено заключение о преимуществах тестирования как с реальной тестовой биржей, так и с биржевым симулятором. Сделан вывод (подтвержденный также практическим путем) о том, что распределенные системы, предназначенные для обработки данных в режиме реального времени, нельзя протестировать на 100 %, используя один из описанных выше подходов. Желаемого качества системы можно добиться, только сочетая лучшие характеристики методов тестирования.

СПИСОК ЛИТЕРАТУРЫ

1. B2Bits <epam> [электронный ресурс] / URL: http://www.b2bits.com/trading_solutions/ market-data-solutions.html

2. FIXprotocol [электронный ресурс] / URL: http://www.fixprotocol.org/

3. London Stock Exchange [электронный ре-

сурс] / URL: http://www.londonstockexchange. com/products-and-services/millennium-exchange/ millennium-exchange-migration/mit303.pdf

4. Karlton P., Kocher P. The Secure Sockets Layer (SSL) Protocol Version 3.0 [электронный ресурс] / URL: http://tools.ietf.org/html/rfc6101

5. FTSE [электронный ресурс] / URL: http:// www.ftse.com/Indices/Data_Licenses/Real-time_ Constituent_Data.jsp

6. B2Bits <epam> [электронный ресурс] / URL: http://www.b2bits.com/trading_solutions/ market-data-solutions.html

7. Sherman M., Sood P., Wong K., Iakovlev A., Parashar N. Building the Book: A Full-Hardware Nasdaq Itch Ticker Plant on Solarflare's AoE FPGA Board [электронный ресурс] / URL: http://www. cs.columbia.edu/~sedwards/classes/2013/4840/ reports/Itch.pdf

8. Tokyo Stock Exchange [электронный ресурс] / URL: http://www.tse.or.jp/english/market/ mkinfo/mains.html

9. Day Trading About.com [электронный ресурс] / URL: http://daytrading.about.com/od/ daytradingmarketdata/a/MarketDataDefin.htm

10. Customer Development Service (CDS). London Stock Exchange [электронный ресурс] / URL: http://www.londonstockexchange. com/products-and-services/technical-library/ customer/customerdevelopmentservice/

customerdevelopmentservice.htm

11. Trading Floor Architecture. Cisco [электронный ресурс] / URL: http://www.cisco.com/ en/US/docs/solutions/Verticals/Trading_Floor_ Architecture-E.html

12. BSE India [электронный ресурс] / URL: http://www.bseindia.com/markets/MarketInfo/ DispNoticesNCirculars.aspx?page=20120531-22&p agecont=0,31/05/2012,31/05/2012,,All,All,All,Scri p%20Name%20/%20Code

13. ММВБ [электронный ресурс] / URL: http://rts.micex.ru/s437

14. Воронцов К.В., Пшеничников С.Б. Имитационное моделирование торгов: новая технология биржевых тренажеров. Индикатор. 2002. № 2 (42) [электронный ресурс] / URL: http://www.forecsys. com/site/about/press/exchange_simulator/

15. Oslo Bors Stock Exchange [электронный ресурс] / URL: http://www.oslobors.no/ob_eng/ Oslo-Boers/Trading/Delta/Millennium-Exchange/ Guide-to-Testing-Services-updated-issue

16. Zverev A., Buida A. Exchange Simulators for SOR. Algo Testing: Advantages vs. Shortcomings. Conf. ExTENT [электронный ресурс] / URL: http://www.slideshare.net/extentconf/exchsims-fors oralgotestingadvantagesvsshortcomings29102011111 113011104phpapp02

17. Exactpro Systems [электронный ресурс] / URL: http://www.exactprosystems.com/

REFERENCES

1. B2Bits <epam>. Available: http://www.b2bits. com/trading_solutions/market-data-solutions.html

2. FIXprotocol. Available: http://www.fixprotocol. org/

3. London Stock Exchange. Available: http:// www.londonstockexchange.com/products-and-services/millennium-exchange/millennium-exchange-migration/mit303.pdf

4. Karlton P., Kocher P. The Secure Sockets Layer (SSL) Protocol Version 3.0. Available: http:// tools.ietf.org/html/rfc6101

5. FTSE. Available: http://www.ftse.com/ Indices/Data_Licenses/Real-time_Constituent_ Data.jsp

6. B2Bits <epam>. Available: http://www.b2bits. com/trading_solutions/market-data-solutions.html

7. Sherman M., Sood P., Wong K., Iakovlev A., Parashar N. Building the Book: A Full-Hardware Nasdaq Itch Ticker Plant on Solarflare's AoE FPGA Board. Available: http://www.cs.columbia. edu/~sedwards/classes/2013/4840/reports/Itch.pdf

8. Tokyo Stock Exchange. Available: http://www. tse.or.jp/english/market/mkinfo/mains.html

9. Day Trading. About.com. Available: http:// daytrading.about.com/od/daytradingmarketdata/a/

MarketDataDefin.htm

10. Customer Development Service (CDS). London Stock Exchange. Available: http://www.londonstockexchange.com/ products-and-services/technical-library/ customer/customerdevelopmentservice/ customerdevelopmentservice.htm

11. Trading Floor Architecture. Cisco. Available: http://www.cisco.com/en/US/docs/solutions/ Verticals/Trading_Floor_Architecture-E.html

12. BSE India. Available: http://www.bseindia. com/markets/MarketInfo/DispNoticesNCirculars. aspx?page=20120531-22&pagecont=0,31/05/2012, 31/05/2012,,All,All,All,Scrip%20Name%20/%20 Code

13. MMVB. Available: http://rts.micex.ru/s437

14. Vorontsov K.V., Pshenichnikov S.B.

Imitatsionnoye modelirovaniye torgov: novaya tekhnologiya birzhevykh trenazherov, Indikator, 2002, No. 2 (42). Available: http://www.forecsys. com/site/about/press/exchange_simulator/ (rus)

15. Oslo Bors Stock Exchange. Available: http:// www.oslobors.no/ob_eng/Oslo-Boers/Trading/ Delta/Millennium-Exchange/Guide-to-Testing-Services-updated-issue

4

16. Zverev A., Bulda A. Exchange Simulators for SOR. Algo Testing: Advantages vs. Shortcomings. ExTENT. Available: http://www. slideshare.net/extentconf/exchsims-forsoralgotes

tingadvantagesvsshortcomings2910201111111301 1104phpapp02

17. Exactpro Systems. Available: http://www. exactprosystems.com/

БУЛДА Алёна Юрьевна — менеджер проектов ООО «ИТС-Эксперт». 156000, Россия, г. Кострома, Ленина, д. 20. E-mail: alyona.bulda@exactprosystems.com

BULDA, AlyonaYu. ITS-Expert, LLC. 156000, Lenina 20, Kostroma, Russia. E-mail: alyona.bulda@exactprosystems.com

БУЯНОВА Ольга Александровна — аналитик по качеству ООО «ИТС-Эксперт». 156000, Россия, г. Кострома, Ленина, д. 20. E-mail: olga.buyanova@exactprosystems.com

BUYANOVA, Olga A. ITS-Expert, LLC. 156000, Lenina 20, Kostroma, Russia. E-mail: olga.buyanova@exactprosystems.com

ЗВЕРЕВ Алексей Валерьевич — соучредитель ООО «ИТС-Эксперт». 115088, Россия, Москва, 2-й Южнопортовый проезд, д. 20А/4. E-mail: natalia.goroshnikova@exactprosystems.com

ZVEREV, Alexey V. ITS-Expert, LLC.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

115088, 2nd Yuzhnoportovy proyezd 20А/4, Moscow, Russia.

E-mail: natalia.goroshnikova@exactprosystems.com

© Санкт-Петербургский государственный политехнический университет, 2014

i Надоели баннеры? Вы всегда можете отключить рекламу.