Как стать автором
Обновить

$440 000 000 на ветер за 45 минут: технические проблемы в алготрейдинге и как их [не?] предотвращают

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.4K

Не так давно мы рассказывали о роли человеческого фактора в катастрофах на фондовом рынке: от fat-finger error и других ошибок ввода до перформансов, которые пьяные брокеры могут устраивать с деньгами клиентов. Однако сошедшие с ума алгоритмы биржевых ботов и не вовремя упавшие серверы могут доставить еще больше проблем.

Из недавних случаев можно вспомнить сбой 3 июня 2024 года, который парализовал Нью-Йоркскую фондовую биржу (NYSE) почти на четыре часа, а акции Berkshire Hathaway, одной из компаний Баффетта, чуть не вылетели в трубу. Подобные инциденты случаются и в России: так, в ноябре все того же 2024 года Московская биржа на несколько часов задержала начало торгов из-за аппаратной ошибки в работе торгово-клиринговой системы.

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

Виды технических проблем с биржевыми алгоритмами на реальных примерах

Что вообще такое алгоритмический трейдинг? Само это понятие стало актуальным в 1998 году, когда Комиссия по ценным бумагам и биржам США (SEC) официально разрешила использовать для торговли электронные платформы. Формально речь шла о любом способе обработки данных по каким бы то ни было алгоритмам. Например, на тот момент трейдеры вручную разбивали крупные заявки на мелкие, но вскоре эти задачи и подобную рутину все чаще стали делегировать биржевым роботам. И сегодня алготрейдинг ассоциируется в основном с автоматизированной торговлей, когда сделки на фондовом рынке заключают роботы без участия человека.

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

Первыми, кто начал использовать программы на фондовом рынке были хедж-фонды (Citadel), инвестиционные банки (Goldman Sachs) и другие игроки, например Renaissance Technologies. Однако сейчас алготрейдинг стал доступен и частным лицам, которые стали подключаться к биржам с помощью API-ключей. 

Согласно данным Quantified Strategies, уже в конце прошлого десятилетия в зависимости от методологии подсчета от 60% до 73% всех сделок на фондовом рынке США осуществлялась с помощью алготрейдинга. Хотя его преимущества очевидны (минимизация человеческого фактора, возможность торговать круглосуточно на огромных скоростях и т.д.), на практике он несет определенные риски. Малейшая ошибка в работе бота на любом этапе (от сбора данных до исполнения ордеров) может как разорить конкретного трейдера, так и спровоцировать обвал рынка. 

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

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

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

1. Ошибки софта

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

Ярчайший пример: компания Knight Capital, которая в 2012 году, по данным BBC, потеряла $440 млн всего за 45 минут. После обновления торговой системы фрагменты старого кода продолжили работать, массово открывая убыточные позиции без возможности их корректировки, что привело к мгновенному банкротству компании. Американский писатель и предприниматель Эдгар Перез даже написал об этих событиях книгу Knightmare on Wall Street.

Другой пример – Нью-Йоркская фондовая биржа. Так, согласно Guardian, 8 июня 2015 года после обновления ПО отвалилась возможность корректно обрабатывать ордера, и торги были остановлены.

Эти случаи наглядно продемонстрировали, что перед обновлением систем нужно не лениться проводить их многослойное тестирование и не забывать о механизмах аварийной остановки алгоритмов, если что-то все-таки пойдет не так. Например, важно помнить об ошибке неучтенного нулевого значения (ZeroDivisionError) при программировании на Python, которая может выстрелить, если робот попытается выполнить операцию деления с данными, в которых по каким-то причинам стоимость купли-продажи ценных бумаг отсутствует, то есть равна нулю.

Другой вариант ошибок софта — когда багов как таковых нет, но создатели не заложили в свои алгоритмы умение учитывать риски, а то и просто где-то просчитались и предписали программам торговать по неоптимальным стратегиям. Как пример тут можно привести историю 2012 года с падением на 8,2% за первые полчаса торгов акций JPMorgan Chase, после сообщения банком о потерях от трейдинга, превышающих $2 млрд.

Такие случаи учат как важности лучше валидизировать алгоритмы перед их применением в полевых условиях, так и не забывать о стоп-лоссах, ограничениях на потери и использовании диверсифицированных стратегий для управления рисками. Ну и не экономить на услугах Quantitative Analyst, которые всем этим занимаются.

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

2. Ошибки данных

Необходимость непрерывно получать актуальную и точную информацию для принятия торговых решений делает алготрейдинг чувствительным к проблемным данным. Некорректные или устаревшие данные могут привести к убыточным сделкам, а то и спровоцировать обрушение рынка. Именно это случилось с Flash Crash 2010 года, когда индекс Dow Jones упал на 600 пунктов за несколько минут. Тогда фальшивые заявки, созданные программой для спуффинга Навиндера Сарао, так впечатлили биржевых роботов, что спустили лавину, обошедшуюся капитализации рынка почти в $1 трлн.

Сюда же можно отнести и ошибки исполнения ордеров: некорректная логика их выставления может запустить цепочку бесконтрольных сделок, что и произошло в момент катастрофического IPO компании BATS Global Markets. До сих пор неизвестно, как именно это произошло (конспирологические варианты есть здесь), но 23 марта 2012 года запущенный с терминала неизвестного злоумышленника HFT-алгоритм изменил котировки с $16 на несколько центов, что привело к еще одной «Хиросиме» на фондовом рынке. А позже BATS и вовсе была оштрафована за то, что из-за непонятной ошибки сотни тысяч сделок на бирже проводились по ценам, отличным от национальных.

Защититься на 100% от таких ситуаций нельзя, однако участникам торгов явно стоит больше уделять внимание проверке ордеров перед их отправкой на рынок, автоматической регулировке ордеров в случае нестабильности цен, всегда иметь доступ к резервным источникам финансовых данных для сверки и внедрять алгоритмы, анализирующие их на предмет аномалий.

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

3. Ошибки инфраструктуры

Отсутствие багов в биржевом софте и «троянских коней» в виде сомнительных ордеров не всегда спасает от катастроф, если накрывается подстанция, от которой запитано здание биржи или кто-то сэкономил на модернизации серверов, и они падают под наплывом инвесторов.

В качестве примера здесь можно привести сбой на Лондонской фондовой бирже (LSE) 8 сентября 2008 года, когда торги были остановлены на несколько часов. Хотя подробности произошедшего не разглашались, принято считать, что виной стали технические неполадки, из-за которых некоторые игроки оказались не в состоянии подключиться к бирже.

Похожая история произошла в 2013-м году. NASDAQ приостановила торги акциями Apple и других крупных компаний из-за перегрузки процессоров системы, устанавливающей цены и котировки на торговые инструменты. Паника на рынке случилась запоминающаяся.

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

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

Трейдерам же, использующим биржевых роботов, нужно закладывать в свои алгоритмы умение снижать активность торговли до реалистичной при резком увеличении волатильности рынка, чтобы не нарваться на лимиты биржи, о чем подробно рассказывается на сайте брокера Real Trading. В противном случае может произойти ошибка, известная как overtrading: исчерпав допустимое количество заявок в единицу времени, бот может не успеть продать закупленное, в результате чего трейдер потеряет деньги.

Предупрежден – значит вооружен

Статистика показывает, что более 60% компаний сталкиваются с прямыми финансовыми потерями из-за сбоев в работе информационных систем. Согласно данным центра экспертизы в сфере телекома «ИКС-МЕДИА», в 2024 году общее количество таких сбоев в российских предприятиях выросло на 22% по сравнению с предыдущим годом. Основными причинами являются использование устаревшего оборудования и программного обеспечения без должной поддержки и обновлений. Это легко можно экстраполировать и на мир фондового рынка.

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

Ошибки в алгоритмическом трейдинге неизбежны, однако, как мы в «Финаме» уже некогда писали, их можно минимизировать с помощью тщательной разработки и управления алгоритмами. Компании, игнорирующие эти риски, могут столкнуться с огромными убытками и потерей репутации на рынке. Также одним из важнейших факторов успеха в алготрейдинге является выбор надежной торговой площадки. Но это уже другая история.

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Публикации

Информация

Сайт
www.finam.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек