Вопрос

За последние пару недель я наткнулся на множество статей о высокочастотной торговле.Все они говорят о том, насколько важны для этого компьютеры и программное обеспечение, но, поскольку все они написаны с финансовой точки зрения, нет подробностей о том, что делает программное обеспечение?

Может ли кто-нибудь объяснить с точки зрения программиста, что такое высокочастотная торговля?и почему компьютер/программное обеспечение так важны в этой области?

Это было полезно?

Решение

Чтобы расширить то, что сказал Павел:

Серверы, выполняющие HFT или UHFT, почти всегда расположены в дата-центре биржи.Это сводит к минимуму задержку, а также позволяет алгоритмам использовать Flash-заказы (которые вскоре могут быть запрещены), чтобы сначала просмотреть поток ордеров, прежде чем ордер будет транслироваться на рынок.многие алгоритмы оценивают заказ всего за несколько миллисекунд, а в этой игре миллисекунды имеют значение.Известно, что торговые группы делают все возможное, в том числе нанимают разработчиков ядра для создания пользовательских компонентов ОС, чтобы лучше оптимизировать время между попаданием заказа в сетевой адаптер и выполнением результирующего действия.

Есть несколько больших групп стратегий, которые широко используются сегодня:

Первый — это торговля крупными блоками ордеров.Если использовать пример Пола с покупкой миллиона акций IBM, алгоритм HFT будет искать давление со стороны покупателей.Компьютерам компаний на разных биржах и темных пулах необходимо будет обмениваться информацией, поскольку заказ будет разделен и обычно исполняется на нескольких биржах и темных пулах.Алгоритм HFT будет использовать статистические/машинные модели для прогнозирования размера покупательского давления, и если он определит, что его достаточно, он также будет аккумулировать акции со всех рынков и пытаться продать их по немного более высокой цене.

Второй — это торговля скидками на ликвидность, при которой биржи будут платить участникам рынка за добавление ликвидности.(См. цены на Direct Edge) Купленные или проданные акции можно удерживать только в течение очень короткого периода времени.Цель состоит в том, чтобы просто получить скидку и выйти на уровень безубыточности во всем остальном.

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

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

Что касается того, почему программное обеспечение важно:миллисекунды имеют значение.Задержка очень важна, и код должен быть точным, быстрым и стабильным.Крах алгоритма и попадание в ловушку акций, когда рынок движется против вас, не очень прибыльно.Разработка для этих требований обязательно различна и требует разных навыков.Для обработки полного стакана заказов в режиме реального времени требуются определенные мощности и хорошие алгоритмы.Хотя это весело и интересно.

Другие советы

Любая HFT-система состоит из двух частей:

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

  2. Ночь/еженедельно и т. д.анализ больших объемов «тиковых данных» (информация о ценах, времени и книге заказов, а также исторические данные о предыдущей торговой активности системы) с целью оптимизации и «поиска» лучших алгоритмов, которые будут выполняться в реальном времени в части № 1. .то есть«откалибровать» и протестировать алгоритмы, которые будут выполняться в №1.

Первый требует низкой задержки и очень хорошего доступа к рынкам (т.е.прямое сетевое подключение к бирже с минимальными переходами).Эту часть обычно приходится писать на языке, отличном от GC, таком как C или C++ (задержка в полсекунды, пока сборщик мусора останавливает мир, может оказаться очень дорогостоящей).Второй вариант обычно требует сетки и большого количества хорошего программного обеспечения для моделирования и статистического анализа, алгоритмов искусственного интеллекта и т. д.

Я бы просто добавил, что наиболее распространенными приложениями в этом виде торговли, как правило, являются CEP (комплексная обработка событий).Некоторые примеры: Streambase, Apama и Aleri.С другой стороны, чтобы справиться с огромными объемами данных, люди используют высокоскоростные базы данных, такие как KDB, OneTick и Vhayu.

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

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

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

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

почему компьютер/программное обеспечение так важно в этой области?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top