Никита Налютин -- Тестирование систем электронной...

23
Тестирование систем электронной торговли ценными бумагами, использующих протокол FIX Никита Налютин Deutsche Bank

Upload: sqadays8

Post on 12-Jun-2015

837 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Тестирование систем электронной торговли ценными бумагами, использующих протокол FIX

Никита НалютинDeutsche Bank

Page 2: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Содержание

• Бизнес-потоки• Программная поддержка• Протокол FIX• Тестовая среда• Типы тестирования

Page 3: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Торговля ценными бумагами

LSE

NASDAQ

NYSE

DBSI

ITG

Клиент

Брокеры

Биржи

Downstream - orders

Upstream – execution reports

Page 4: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Orderbook

Stock: GOOG.O Price: 384.9000 Orders: 1295622 Volume: 2791809

BUY SELL

Price Shares Price Shares

100384.82 384.95 500

100384.82 385.01 100

300384.81 385.05 200

100384.81 385.46 100

500384.80 385.51 100

100384.79 385.60 400

200384.77 385.62 100

100384.75 385.63 200

Page 5: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Электронная торговля ценными бумагами

LSE

NASDAQ

NYSEКлиент

Брокеры Биржи

Соед

инен

ие с

кли

енто

м

Соед

инен

ие с

бир

жей

DMA

Order Management

System

Execution Management

System

Рыночные данные

FINRA

Регуляторы

Отчеты

Page 6: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Что такое FIX?

• FIX – Financial eXchange Protocol – протокол обмена финансовой информацией

• Международный отраслевой стандарт• Спецификация свободно доступна• Поддерживается FIX Protocol Ltd.

• Только протокола FIX недостаточно для описания интерфейса между участниками торгов. В документе Rules of Engagement описаны правила использования протокола

http://www.fixprotocol.org

Page 7: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Версии FIX

• Version 4.0: 1996 – акции• Version 4.1: 1998• Version 4.2: 2000 – акции+FX• Version 4.3: 2001• Version 4.4: 2003 – акции+FX+данные рынка• Version 5.0: 2006 – разделение уровней

протокола

Page 8: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Приложение

Соединение FIX• FIX engine:– Поддержка

протокола– Установление

соединения– Поддержание

сессии– Валидация

сообщений– Аудит

Сеть

FIX engine

FIX engine

Приложение

Сеть

DMZ

Page 9: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сообщение FIX

• Два уровня: сессионный и уровень приложения

• Каждое сообщение – набор пар

55=EURТег Значение

Page 10: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сообщение FIX

8=FIX.4.29=0398 35=D 115=onBehalfOfComp 128=deliverToComp 116=onBehalfOfSub 129=deliverToSub 34=334 49=SRC 56=TGT 52=20101106-10:05:16 1=DEFAULT 11=test106 21=1 38=1000.0 40=1 44=92.10009002685547 47=U 63=1 54=1 55=VOD.L 58=text 59=0 60=20101106-10:05:16.341 10302=1 10=227

Page 11: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сообщение FIX

Заголовок

Тело

Хвост

8 (BeginString) = FIX4.29 (BodyLength) = 213

35 (MsgType) = D49 (SenderCompId) = BUYSIDE56 (TargetCompId) = SELLSIDE

52 (SendingTime) = 20101106-09:00:00.0055 (Symbol) = VOD.L1 (Account) = ACC1

11 (ClOrdId) = OrderId_A54 (Side) = 1

40 (OrdType) = 110 (CheckSum) = 0559

Page 12: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Что тестируем?

• Модификация ордера и отчетов о выполнении (Enrichment)

• FIX-сценарии (FIX flow)• Состояния ордера• Соглашения о соединении с клиентом

(Rules of engagement)• Соглашения о соединении с биржей• Производительность

Page 13: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Тестовая среда

Order Management

System

Симулятор клиента

Симулятор upstream

систем

Симулятор стратегий

Симулятор биржи

Виртуальные биржевые

данные

Виртуальные статические

данные

Анализатор отчетов

Симулятор downstream

систем

Симулятор трейдера

Page 14: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Enrichment

Клиент FIX engine Клиентский роутер

Order manager

Биржевой роутер Биржа

Идентификация

Валидация

Роутинг

Состояния

Разбиение

Page 15: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Enrichment: пример

• Идентификация клиента• Применение параметров клиента• Получение данных сессии клиента• Нормализация инструментов• Обработка типа сообщения• Роутинг на трейдера

Page 16: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сценарии обмена

• Обычный ордер• Отмена• Замена (увеличение, уменьшение количества)• Последовательность замен и отмен• Односторонняя отмена и замена• Отказ• Статусные сообщения• Многодневные сообщения• Исправления отчетов

Page 17: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сценарии обмена: обычный ордерКл

иент

FIX-

шлю

з

NewOrderSingle (MsgType = D)

PendingNew (MsgType = 8,OrderStatus,ExecType = PendingNew)

Ack (MsgType = 8,OrderStatus,ExecType = New)

Partial Fill (MsgType = 8,OrderStatus,ExecType = PartiallyFilled)

Fill Bust (MsgType = 8, ExecType = Cancelled, ExecId = “MKTID”)

Partial Fill (MsgType = 8,OrderStatus,ExecType = PartiallyFilled)

Partial Fill (MsgType = 8,OrderStatus,ExecType = Filled)

Page 18: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сценарии обмена: изменение и отменаКл

иент

FIX-

шлю

з

NewOrderSingle (ClOrdId = Ord1)

Ack (ClOrdId = Ord1)

Partial Fill (ClOrdId = Ord1)

CancelReplace (MsgType=G, OrigClOrdId = Ord1, ClOrdId=Ord1n)

Ack (ClOrdId = Ord1n, OrigClOrdId = Ord1, OrdState = Replaced)

Partial Fill (ClOrdId = Ord1n)

Cancel (MsgType=F, OrigClOrdId = Ord1n, ClOrdId=Ord1c)

Ack (ClOrdId = Ord1c, OrigClOrdId = Ord1n, OrdState = Cancelled)

Page 19: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Сценарии обмена: односторонняя отмена

Клие

нт

FIX-

шлю

з

NewOrderSingle (ClOrdId = Ord1)

Ack (ClOrdId = Ord1)

Partial Fill (ClOrdId = Ord1)

UnsolicitedCancelAck (MsgType=8, Status=Cancelled, Text=“CNCL”

Page 20: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Состояния ордераNew

PendingNew

Acked

PartiallyFilled

FullyFilled

Cancelled PartiallyCancelled

Replaced

Rejected

Page 21: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Соединение с клиентом

• Специфичные для клиента теги• Структура клиента (трейдеры, дески,

аккаунты)• Symbology (RIC, ISIN, SEDOL, ….)• Типы ценных бумаг• Тип соединения (прямое/копия)• Время соединения• Восстановление при сбоях

Page 22: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Соединение с клиентом и с биржей

PT Desk

ARB Desk

Соед

инен

ие с

кли

енто

м Order Management System A

Order Management System B

Соед

инен

ие с

бир

жей

LSE

NASDAQ

NYSE

Торговый поток

Торговый поток

Копии

Page 23: Никита Налютин -- Тестирование систем электронной торговли ценными бумагами

Спасибо за внимание

Никита НалютинDeutsche Bank