HighLoad++ 2013 Iosif Itkin Anton Sitnikov

17
Система для выявления манипуляций в условиях высокочастотной биржевой торговли Иосиф Иткин, Антон Ситников Exactpro Systems

TAGS:

description

Система для выявления манипуляций в условиях высокочастотной биржевой торговли Основная задача системы мониторинга и контроля биржевой площадки — обеспечивать упорядоченное и стабильное функционирование рынка и, в частности, поддерживать аналитическую работу отделов, отвечающих за выявление возможных манипуляций. Система мониторинга должна собирать информацию обо всех входящих заявках, ответах системы, данных, поступающих из внешних источников, а также о релевантных внутренних состояниях трейдинговой платформы. В условиях высокочастотной торговли объемы этой информации достаточно велики, и их обработка требует масштабируемой инфраструктуры. Операторы биржевых площадок и участники торгов ожидают, что системы мониторинга и контроля рисков будут оказывать минимальное влияние на основную функциональность трейдинговой платформы и время отклика. Недобросовестные участники рынка пытаются скрыть злоупотребления и манипуляции рынком под видом легитимных финансовых транзакций, а некоторые законные операции обладают многими признаками нарушений. Системам мониторинга и контроля рынков приходится делать аналитические заключения под высокой нагрузкой, на основе нечеткой логики, параметры которой приходится непрерывно адаптировать под новые трейдинговые ситуации и схемы поведения участников торгов. Наш доклад содержит обзор предметной области и основных требований к системам мониторинга и контроля для биржевых площадок, а также описание разрабатываемой нами системы, ее архитектуры и выбранного технологического стека, включая Akka, LevelDB, Play, ZeroMQ и ExtJS.

Transcript of HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Page 1: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

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

Иосиф Иткин, Антон СитниковExactpro Systems

Page 2: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Чем мы занимаемся

• Критикуем хорошие программы, написанные умными людьми• Создаем своих монстров для

проверки высоконагруженных трейдинговых систем

Page 3: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Как делать деньгиThere are three ways to make a living in this business: be first, be smarter, or cheat

Page 4: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Что бы такого сделать плохого• Манипуляция ценами• Переигрывание объемами• Уход от налогов• Финансирование зла• Инсайдерская торговля• Проскальзывание перед клиентом• Многое другое…

Page 5: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Что бы такого сделать плохого• Манипуляция ценами• Переигрывание объемами• Уход от налогов• Финансирование зла• Инсайдерская торговля• Проскальзывание перед клиентом• Многое другое…

Часто легитимная активность выглядит как злоупотребление, и наоборот

Page 6: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Функциональность системы

• Поток сообщений• Незаметность• Агрегация данных• Гибкая настройка правил• Помощь в обследовании

места преступления и сборе доказательств• Хранение данных

Page 7: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Система для мониторинга Шша

• Перехват сетевых пакетов• Разобрать и сложить все сообщения в MySQL• Сделать логику проверок на SQL запросах• Хороший инструмент для тестирования• Но тянет не более 30 млн. сообщений в день

Page 8: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Холодный ветер с дождем

• Возникло желание усилить ее хотя бы десятикратно• Получилась боевая система, похожая на Market Surveillance • Теперь мы используем ее как модель для проверки ее собратьев

Page 9: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Красивое название

• Возникло желание усилить ее хотя бы десятикратно• Получилась боевая система, похожая на Market Surveillance • Теперь мы используем ее как модель для проверки ее собратьев

Page 10: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Complex Event Processing и Akka

• Surveillance-система является подмножеством CEP• Surveillance-система должна иметь состояние (книжка)• Коммерческие решения слишком дороги• Esper не позволяет хранить состояние• Akka – средство для написания событийных систем• высокая производительность• распределенность• удобная модель параллельной обработки• работает на JVM

Page 11: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Система хранения

• Много операций добавления, мало операций чтения• SQL базы данных плохо масштабируются и не позволяют

сохранять большой поток данных• NoSQL базы данных как Riak, Cassandra, Voldemort требуют

создания большого кластера для достижения 100k msg/sec• БД движки (Kyoto Cabinet, Krati, LevelDB). Быстрые. Позволяют

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

Page 12: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Архитектура Dolphin

Web

-Инт

ерф

ейс

Ист

очни

ки д

анны

х

Конверторы

100101110111010

СценарииКнижки

События Потоки событий

Web сервер

Мультиплексор/демультиплексор потоков

JSON Protobuf

Page 13: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Сохранение событий

• Уникальный идентификатор события (ИД источника + номер)• За кодирование/декодирование отвечает источник• Возможность сохранения иерархических событий• LevelDB – движок, передача по сети – ZeroMQ• Распределение нагрузки по нескольким узлам по ИД события• «Послал и забыл» - каждый узел может определить пропущенное

сообщение и запросить его у дублирующего

Page 14: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Сохранение потоков событий

• Поток событий = индекс• ИД события в потоке – ИД потока + порядковый номер• Ключ в LevelDB – ИД потока + порядковый номер ( + время)• Одна запись в LevelDB включает несколько логических записей• Распределение нагрузки по нескольким узлам

Page 15: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Web-интерфейс и потоки событий

• Система создает и записывает множество дополнительных потоков (индексов), например• все события, связанные с одним ордером• все ордера, размещенные участником рынка

• Сервер web-интерфейса запрашивает потоки из хранилища и предоставляет их пользователю

Page 16: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Web-интерфейс Dolphin• Play framework на

стороне сервера• Sencha Ext JS на

стороне клиента• Динамические

обновления: JSON + WebSocket/Comet

Page 17: HighLoad++ 2013 Iosif Itkin Anton Sitnikov

Вопросы и ответы

Спасибо!

http://exactpro.com http://tmpaconf.orghttp://linkedin.com/in/iosifitkin