Книга Rogue Trader и интересные технические детали из нее

На днях прочитал книгу Ника Лисона о том, как он разорил банк Barings. По этой книге снят хороший фильм, который я всем очень советую посмотреть. Действие книги происходит в 1992-1995 годах, когда Ник Лисон поступил на работу в банк Barings и был направлен на работу в Сингапур, где Barings только что открыл свой офис для совершения сделок по деривативам на сингапурской бирже SIMEX.

В Сингапуре на тот момент существовало несколько бирж. Биржа торговли акциями и облигациями Stock Exchange of Singapore (SES) была создана в 1973 году. Биржа Singapore International Monetary Exchange (SIMEX) была создана в 1984 году в тесном сотрудничестве с Chicago Mercantile Exchange (CME).

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

Читать далее

Sponsored Post Learn from the experts: Create a successful blog with our brand new courseThe WordPress.com Blog

WordPress.com is excited to announce our newest offering: a course just for beginning bloggers where you’ll learn everything you need to know about blogging from the most trusted experts in the industry. We have helped millions of blogs get up and running, we know what works, and we want you to to know everything we know. This course provides all the fundamental skills and inspiration you need to get your blog started, an interactive community forum, and content updated annually.

habr.com: Финансовое latency critical приложение на Java и Akka

Всем привет! В своей статье я поделюсь опытом разработки одного из финансовых приложений на Java в ТехЦентре Дойче Банка, расскажу про стек технологий, который мы используем, и каких результатов достигаем.

Алгоритмы алгоритмической торговли

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

Чаще всего крупный родительский ордер (parent order) делится на более мелкие ордера (child orders) и эти мелкие ордера отправляются один за одним на рынок для исполнения. Алгоритмический движок (algo engine) следит за исполнением каждого мелкого ордера и в определенных случаях отменяет какой-то из них и выставляет новый child order с другими параметрами в соответствии с выбранным алгоритмом, который называют еще стратегией (strategy).

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

Читать далее

Что такое tick-to-trade и как его замерять

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

Например, приложение автоматизированной торговли слушает поток market data, анализирует его и в случае благоприятной комбинации сигналов отправляет на биржу приказ о продаже или покупке определенного финансового инструмента. Или несколько приказов. Время, прошедшее с момента поступления события в рыночных данных до момента, когда приказ сформирован закодирован и вытолкнут в сеть называется tick-to-trade. В кратце, это скорость реакции вашей системы на заданное ключевое событие.

Читать далее

Рыночные данные на бумажной ленте

До появления тикера цены с бирж разносили мальчики-подростки, бегавшие от Нью-Йоркской биржи по брокерским конторам с новостями. Текущие цены на акции они записывали в блокноты (pads), поэтому их называли «pad shovers».

Эдвард Калахан (Edward Calahan), работник телеграфной компании Western Union, приехав в 1867 году в Нью-Йорк, был поражен толпами этих мальчишек, перекрикивающих друг друга в толпе возле Нью-Йоркской биржи. При такой организации ошибки, искажения, обманы были обычным делом. Он понял, что здесь для телеграфного бизнеса скрыта золотая жила. Достаточно провести в каждую брокерскую контору телеграф с биржи, и все брокерские конторы будут получать цены без ошибок и отпадет надобность в курьерах.

Читать далее

Многозадачность операционной системы и low-latency

На современной серверной машине low-latency процесс работает на многозадачной операционной системе. Это может быть Solaris, Linux, FreeBSD или Windows Server. Помимо нашего процесса в ОС работают еще и другие процессы, которым ОС тоже должна выделять машинное время. Собственно потому ОС и называется многозадачной.

Конкретный процесс работает определенное время до тех пор пока:

  • не произойдет вызов операции ввода-вывода. Тогда процесс останавливается и ждет окончания — поступления данных. Это может быть ожидание очередной порции байтов из сети или загрузка с диска каких-то данных или страницы памяти (page fault), или окончания записи данных в систему вывода: это может быть запись данных в сеть или запись их на диск (page swap);
  • не истечет выделенное ядром ОС время, после чего ядро приостанавливает исполнение процесса. Специальный модуль ядра «планировщик» (scheduler) выбирает следующий в очереди процесс и начинает его исполнять. Такое переключение происходит примерно каждые 20~50 миллисекунд.

В данной статье пойдет речь о том, как многозадачная операционная система влияет на исполнение нашего процесса и как мы можем побороть это влияние с целью достижения low-latency.

Читать далее

В помощь разработчику: Vagrant

Давно установил VirtualBox, чтобы на домашней машине под Windows играться с Linux CentOS и исследовать различные настройки, конфигурации и программные пакеты. Но заметил, что много времени уходит на создание виртуалок и установку с нуля очередного образа CentOS, пусть даже и минимального. Захотелось больше гибкости и скорости в создании вируталок и их подготовке к работе.

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

Читать далее

Как jcmd помогает настроить JVM для low-latency

Утилиту jcmd добавили в Java 7 и с тех пор она считается главной утилитой, с помощью которой вы отныне будете заглядывать внутрь JVM и замерять все параметры ее работы. Все остальные утилиты типа jps, jstack, jinfo и проч. считаются теперь устаревшими и скоро в каком-то из будущих релизов JDK будут удалены. Предполагается, что jcmd заменит их всех. Давайте посмотрим, как работает утилита, и что полезного с ее помощью можно узнать о работающем приложении и как эта информация может нам пригодиться для настройки JVM и самого приложения с целью достижения low-latency.

Читать далее

infoq.com: Интервью с создателями Shenandoah

Информационный сайт infoq.com встретился с работниками компании Red Hat Шипилевым и Кеннке и провел с ними интервью о сборщике мусора Shenandoah, который разрабатывается в Red Hat и предназначен для быстрой сборки мусора на больших объемах памяти.

Вот как бывает: серьезный сбой на Tokyo Stock Exchange

Недавно мы были свидетелями, как Новозеландскую биржу заддосили хакеры, так что ей пришлось приостанавливать торги. А сегодня глюк по-круче — на Токийской бирже сегодня произошел сбой системы выдачи рыночных данных. В результате сразу после начала торгового дня все торги были приостановлены, потом пришло сообщение, что биржа откроется все же после обеда, но потом решили вообще не открываться весь торговый день.

В результате все биржевые индексы Nikkei и TOPIX на сегодня не вычисляются, биржи в Нагое и Саппоро не работают, все альтернативные площадки (PTS), кроссинговые сети и dark pools, которые считают цены по ценам Токийской биржи тоже, но биржа деривативов в Осаке работает как обычно.

Это первый серьезный сбой с 2018 года, когда были остановлены торги лишь по некоторым акциям.

Сегодня праздничные дни во многих странах Азии. Китайская, гонконгская, тайваньская и корейская биржи не работали. Токийская биржа — единственная в азиатском регионе должна была сегодня вести торги, и случился вот такой epic fail. Настоящая потеря лица для Токио, как мирового финансового центра, так считают в СМИ. Впрочем, что это я, в сентябре 2008 года на Лондонской бирже и похуже инцидент был.

UPD, Oct.1: вот так выглядит извинение от работников биржи по-японски: moshiawaki gozaimasen deshita.

UPD, Oct.2: Сегодня Токийская биржа возобновляет работу как обычно. Причиной сбоя 1 октября оказалась дисковая NAS-система, которая вышла из строя, а резервная система не включилась, как от нее ожидалось, т.е. не сработал fail-over. Из-за этого перестали выдаваться рыночные данные (market data system) и перестала работать система наблюдения за торгами (surveillance system). А раз нет рыночных данных, нет смысла торговать.

Вот так, выход из строя копеечного рядового модуля памяти в NAS #1 привел к остановке всей биржевой системы страны!