Архив метки: fix-protocol

Техническая документация биржи Cboe Japan

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

Читать далее

Как измерить latency с помощью tcpdump

Для элементарных замеров latency в торговых приложениях на стадии разработки и QA часто используется перехватчик пакетов tcpdump, а пакеты анализируются с помощью приложения Wireshark.

tcpdump не применяют на PROD, потому что он сам оказывает влияение на производительность системы. Тонкие замеры latency на PROD производятся другими средствами, о чем я расскажу в свое время.

В данной статье я хочу продемонстрировать технику замера latency на примере двух моих приложений SimpleFIXClient и SimpleFIXExecutor. Надеюсь, пошаговая инструкция будет достаточно понятной и не слишком запутает вас.

Читать далее

FIXatdl — стандарт, который не взлетел

С ростом популярности алгоритмической торговли Sell-side компании стали предоставлять своим клиентам доступ к своим алгоритмам и к своим системам алгоритмической торговли — этот сервис назывался Direct Strategy Access. Рост конкуренции между брокерами заставлял их предлагать своим клиентам все новые и новые алгоритмы. Каждый новый алгоритм помимо экзотического названия имел еще ряд параметров, а при генерации FIX сообщения от Buy-side к брокеру эти параметры помещались в кастомные теги.

Разработчики алгоритмов посчитали, что всякий раз описывать новые параметры и теги в специальной документации — неудобно. Хоть FIX — простой и расширяемый протокол, чтение документа занимает время, в документ-спецификацию могут вкрасться ошибки, а с обновлением алгоритма обновление документации — занимает время. Кроме того, представьте, что Sell-side работает с несколькими брокерами, и у всех этих брокеров есть алгоритм VWAP. Но у каждого из брокеров этот алгоритм имеет какие-то свои особенные дополнительные параметры, а в FIX сообщении значения этих параметров могут помещаться в разные теги.

Читать далее

Симвология: CUSIP, SEDOL, RIC, ISIN

Обязательные атрибуты любого ордера, его ключевые параметры это ответы на вопросы: «что?», «продать или купить?», «в каком количестве?» и «по чем?».

«Что» — обозначает сам предмет сделки — название ценной бумаги. Чтобы не получилось так, что устно по телефону клиент сказал купить акции «Гугла», а брокер купил акции «Мугла», ордера передаются электронно, а предмет сделки имеет некий универсальный идентификатор, который однозначно определяет ценную бумагу для обоих сторон сделки.

В качестве такого идентификатора ценной бумаги используется определенный уникальный набор символов. Этих идентификаторов может быть несколько. А весь этот набор идентификаторов в биржевой среде называется симвология (symbology).

Читать далее

Почему нельзя использовать double для финансовых расчетов

В финансовых расчетах часто приходится оперировать дробными числами. Например, на некоторых рынках цены на опционы и фьючерсы могут иметь два и даже три знака после запятой. Цены на некоторые акции могут выражаться в пенни, так называемые penny-stocks. Для валидации ордеров перед отправкой на рынок надо проверять, не выходит ли указанная цена ордера за определенные пределы (price limits), рассчитанные от текущей рыночной цены инструмента. Например, надо вычислить +/-5% от цены 1.005. Казалось бы для выражения цены в Java идеально подходит примитивный тип double. Но это крупная, опасная ошибка!

Читать далее