Эта история вспомнилась мне сейчас из-за вновь поднявшейся волны протестов против HFT(
High-frequency trading) с начала этой недели. Твиттеры американских трейдеров пестрят шутками и обвинениями в сторону контор, использующих роботы. Олицетворением зла стала Virtu Financial LLC, с которой давно уже бьётся Хунсадер, Nanex работает не покладая рук, выявляя всё новые проделки квантов. Многие всерьёз обеспокоены влиянием роботов на прибыльность торговли обычных трейдеров, многие, как zerohedge, троллят, в шутку обвиняя HFT в любом событии на рынке, сделав Virtu нарицательным. Тренд этого года у американцев, шутя всё списывать на роботов, как Хунсадер, и погоду, как Йеллен. Это уже даже тонким юмором не назовёшь, слишком он стал массовым...
Это, пожалуй, самый болезненный отчет об ошибке, который я когда-либо читал. Он красочно описывает шаги, которые привели к потере 465 миллионов долларов компанией Knight Capital в связи с ошибкой программного обеспечения, проявившейся в прошлом году и обанкротившей компанию.
В этом отчете есть все характеристики технического долга в огромной, лишенной поддержки и запущенной базе кода (ошибка произошла из-за исполнения кода, который не использовали почти 9 лет) и ужасная и грустная история взаимодействия между разработчиками ПО и ИТ-профессионалами.
Основные моменты:
Для обеспечения участия своих клиентов в Программе ликвидности (ПЛ) на Нью-Йоркской фондовой бирже, запуск которой планировался 1 августа 2012 года, Knight внес ряд изменений в свои системы и программный код, связанный с процессом обработки заказов. Эти изменения включали в себя разработку и развертывание нового программного кода в SMARS. SMARS представляет собой автоматизированный, высокоскоростной, алгоритмический маршрутизатор, который отправляет заказы на рынок. Одна из основных функций SMARS — это получение заказов от других компонентов торговой платформы Knight («родительских» заказов), и, по мере необходимости на основе имеющейся ликвидности, отправка одного или нескольких представительских (или «дочерних») заказов внешним службам на исполнение.
13. При развертывании новый ПЛ код в SMARS должен был заменить неиспользуемый код в соответствующей части маршрутизатора. Этот неиспользуемый код ранее был нужен для функции Power Peg, которую компания не применяла уже долгие годы. Несмотря на это, она оставалась рабочей и вызываемой во время развертывания ПЛ. Новый ПЛ код использовал флаг, который ранее был привязан к Power Peg. Knight хотела удалить код Power Peg, чтобы при активации этого флага использовалась новая функциональность ПЛ, а не Power Peg.
14. Ранее при использовании Power Peg суммирующая функция вычисляла количество акций в выполняемых дочерних заказах и сигнализировала о необходимости прекращения размещения дочерних заказов после того, как родительский заказ был выполнен. В 2003 году Knight прекратили использовать Power Peg. В 2005 Knight изменили код Power Peg, переместив функцию отслеживания выполнения родительского заказа на более раннюю стадию последовательности кода SMARS. Повторного тестирования кода Power Peg после изменения Knight не выполнили и в том, что процедура по-прежнему работает корректно, не убедились.
15. Начиная с 27 июля 2012, компания Knight развернула новый ПЛ код в SMARS, разместив его на ограниченном числе серверов. Во время развертывания нового кода один из техников не скопировал новый код на один из восьми серверов SMARS. В Knight не было второго техника, который бы проводил проверку развертывания, и никто не понял, что код Power Peg не был удален с восьмого сервера и новый ПЛ код не был добавлен. В Knight не было никаких письменных процедур, которые требовали бы такой проверки.
16. 1 августа Knight получала заказы от брокеров-дилеров, чьи клиенты могли участвовать в ПЛ. Семь серверов обрабатывали заказы правильно. Но заказы, отправленные на 8 сервер с установленным флагом запуска, запустили дефектный код Power Peg, который всё ещё присутствовал на этом сервере. В результате сервер воспринял заказы как родительские и начал отправлять дочерние заказы в трейдинговые центры. Вследствие того, что функция проверки выполнения родительского заказа была перемещена на другую стадию процесса, сервер продолжал размещать дочерние заказы безостановочно — не обращая внимания на то, что родительский заказ уже выполнен. Хотя некоторая часть системы обработки заказов определяла, что родительский заказ выполнен, в SMARS эта информация не попадала.
19. 1 августа Knight также получала заказы, которые относились к ПЛ, но предназначались для торговли до открытия рынка. 6 серверов SMARS обрабатывали эти заказы и, начиная примерно с 8:01 утра, внутренние системы генерировали автоматические сообщения (под названием «отказ BNET»), которые ссылались на SMARS и описывали ошибку как «Power Peg отключен». Система Knight отправила 97 таких сообщений до 9:30 утра, когда открылся рынок. Сообщения подобного типа не расценивались системой, как опасные, а персонал вообще не читал их.
Дальше еще веселее:
27. 1 августа в Knight не было никаких процедур, касающихся реагирования на инциденты. Иными словами, в компании не было контрольных процедур для руководства персоналом, когда происходили серьезные проблемы. 1 августа Knight пользовался услугами своей команды техников, чтобы выявить и устранить проблемы в SMARS в живой торговой среде. Система Knight продолжала посылать миллионы «дочерних» заказов, пока персонал пытался выявить источник проблемы. Компания даже удалила новый ПЛ код с семи серверов, на которых он был установлен правильно. Это усугубило ситуацию, ведь новые «родительские» заказы активировали код Power Peg, который присутствовал на этих серверах, подобно тому, что уже произошло на восьмом сервере.
Безусловно, стоит прочитать весь документ, в нем большое внимание уделяется новым процедурам проверки, выполняемым людьми, чтобы избежать подобной трагедии. Ошибки разработчиков, безусловно, были связаны с человеческим фактором, но такие последствия стали результатом плохого сценария развертывания и отвратительного мониторинга. Что это за контора, в которой даже не проверяют версию программного обеспечения кластера? Не говоря уже о сценарии развертывания, при котором проверяются коды возврата.
Мы можем только надеяться, что «письменные процедуры проверки» неиспользуемого кода подразумевали собой систематическим тесты, хотя Википедия говорит, что это не так.
И на сладкое: штраф составил еще 12 миллионов долларов, проведенный аудит показал, что система постоянно пыталась осуществить спекулятивные короткие продажи. Источник.
На рынке всегда много интересного, а лучшие мои посты, рецензии на книги, актуальные графики и сделки всегда найдёте в телеграм-канале: dmatradeTT Разберём всё по полочкам. Welcome!!!
__________________________________________________________________________________________________________________________________________________________________
High-frequency trading) с начала этой недели. Твиттеры американских трейдеров пестрят шутками и обвинениями в сторону контор, использующих роботы. Олицетворением зла стала Virtu Financial LLC, с которой давно уже бьётся Хунсадер, Nanex работает не покладая рук, выявляя всё новые проделки квантов. Многие всерьёз обеспокоены влиянием роботов на прибыльность торговли обычных трейдеров, многие, как zerohedge, троллят, в шутку обвиняя HFT в любом событии на рынке, сделав Virtu нарицательным. Тренд этого года у американцев, шутя всё списывать на роботов, как Хунсадер, и погоду, как Йеллен. Это уже даже тонким юмором не назовёшь, слишком он стал массовым...
Тем не менее, Хунсадер не шутит и привлекает всё больше сторонников, популярность растёт, а на этой неделе его твиттер получил дополнительную активность. Если раньше он раз пять в день выкладывал новые улики или напоминания о старых, взывая к SEC и обвиняя их в бездействии, то на этой неделе каждый час в ленте проскальзывает его сообщение. Дело в том, что теперь ФБР всерьёз взялось за HFT, федералы призвали трейдеров сообщать им об известных манипуляциях, попросту-стучать, и Хунсадер опять оказался на коне, ведь у него уже накопилось много подобного материала.
В общем, история развивается, вполне возможно, что скоро ФБР предъявит многим HFT обвинения и будет нешуточный скандал. Буду и дальше следить за этой темой, хотя мне в торговле роботы и не мешают (или просто так кажется, как говорит Хунсадер). Справедливости ради, нужно отметить, что, кроме "баснословных" прибылей, роботы частенько приносят своим создателям и огромные убытки за очень короткий период времени. Обожаю такие истории, и вот одна из них:
_________________________________________________________________________________
В этом отчете есть все характеристики технического долга в огромной, лишенной поддержки и запущенной базе кода (ошибка произошла из-за исполнения кода, который не использовали почти 9 лет) и ужасная и грустная история взаимодействия между разработчиками ПО и ИТ-профессионалами.
Основные моменты:
Для обеспечения участия своих клиентов в Программе ликвидности (ПЛ) на Нью-Йоркской фондовой бирже, запуск которой планировался 1 августа 2012 года, Knight внес ряд изменений в свои системы и программный код, связанный с процессом обработки заказов. Эти изменения включали в себя разработку и развертывание нового программного кода в SMARS. SMARS представляет собой автоматизированный, высокоскоростной, алгоритмический маршрутизатор, который отправляет заказы на рынок. Одна из основных функций SMARS — это получение заказов от других компонентов торговой платформы Knight («родительских» заказов), и, по мере необходимости на основе имеющейся ликвидности, отправка одного или нескольких представительских (или «дочерних») заказов внешним службам на исполнение.
13. При развертывании новый ПЛ код в SMARS должен был заменить неиспользуемый код в соответствующей части маршрутизатора. Этот неиспользуемый код ранее был нужен для функции Power Peg, которую компания не применяла уже долгие годы. Несмотря на это, она оставалась рабочей и вызываемой во время развертывания ПЛ. Новый ПЛ код использовал флаг, который ранее был привязан к Power Peg. Knight хотела удалить код Power Peg, чтобы при активации этого флага использовалась новая функциональность ПЛ, а не Power Peg.
14. Ранее при использовании Power Peg суммирующая функция вычисляла количество акций в выполняемых дочерних заказах и сигнализировала о необходимости прекращения размещения дочерних заказов после того, как родительский заказ был выполнен. В 2003 году Knight прекратили использовать Power Peg. В 2005 Knight изменили код Power Peg, переместив функцию отслеживания выполнения родительского заказа на более раннюю стадию последовательности кода SMARS. Повторного тестирования кода Power Peg после изменения Knight не выполнили и в том, что процедура по-прежнему работает корректно, не убедились.
15. Начиная с 27 июля 2012, компания Knight развернула новый ПЛ код в SMARS, разместив его на ограниченном числе серверов. Во время развертывания нового кода один из техников не скопировал новый код на один из восьми серверов SMARS. В Knight не было второго техника, который бы проводил проверку развертывания, и никто не понял, что код Power Peg не был удален с восьмого сервера и новый ПЛ код не был добавлен. В Knight не было никаких письменных процедур, которые требовали бы такой проверки.
16. 1 августа Knight получала заказы от брокеров-дилеров, чьи клиенты могли участвовать в ПЛ. Семь серверов обрабатывали заказы правильно. Но заказы, отправленные на 8 сервер с установленным флагом запуска, запустили дефектный код Power Peg, который всё ещё присутствовал на этом сервере. В результате сервер воспринял заказы как родительские и начал отправлять дочерние заказы в трейдинговые центры. Вследствие того, что функция проверки выполнения родительского заказа была перемещена на другую стадию процесса, сервер продолжал размещать дочерние заказы безостановочно — не обращая внимания на то, что родительский заказ уже выполнен. Хотя некоторая часть системы обработки заказов определяла, что родительский заказ выполнен, в SMARS эта информация не попадала.
19. 1 августа Knight также получала заказы, которые относились к ПЛ, но предназначались для торговли до открытия рынка. 6 серверов SMARS обрабатывали эти заказы и, начиная примерно с 8:01 утра, внутренние системы генерировали автоматические сообщения (под названием «отказ BNET»), которые ссылались на SMARS и описывали ошибку как «Power Peg отключен». Система Knight отправила 97 таких сообщений до 9:30 утра, когда открылся рынок. Сообщения подобного типа не расценивались системой, как опасные, а персонал вообще не читал их.
Дальше еще веселее:
27. 1 августа в Knight не было никаких процедур, касающихся реагирования на инциденты. Иными словами, в компании не было контрольных процедур для руководства персоналом, когда происходили серьезные проблемы. 1 августа Knight пользовался услугами своей команды техников, чтобы выявить и устранить проблемы в SMARS в живой торговой среде. Система Knight продолжала посылать миллионы «дочерних» заказов, пока персонал пытался выявить источник проблемы. Компания даже удалила новый ПЛ код с семи серверов, на которых он был установлен правильно. Это усугубило ситуацию, ведь новые «родительские» заказы активировали код Power Peg, который присутствовал на этих серверах, подобно тому, что уже произошло на восьмом сервере.
Безусловно, стоит прочитать весь документ, в нем большое внимание уделяется новым процедурам проверки, выполняемым людьми, чтобы избежать подобной трагедии. Ошибки разработчиков, безусловно, были связаны с человеческим фактором, но такие последствия стали результатом плохого сценария развертывания и отвратительного мониторинга. Что это за контора, в которой даже не проверяют версию программного обеспечения кластера? Не говоря уже о сценарии развертывания, при котором проверяются коды возврата.
Мы можем только надеяться, что «письменные процедуры проверки» неиспользуемого кода подразумевали собой систематическим тесты, хотя Википедия говорит, что это не так.
И на сладкое: штраф составил еще 12 миллионов долларов, проведенный аудит показал, что система постоянно пыталась осуществить спекулятивные короткие продажи. Источник.
На рынке всегда много интересного, а лучшие мои посты, рецензии на книги, актуальные графики и сделки всегда найдёте в телеграм-канале: dmatradeTT Разберём всё по полочкам. Welcome!!!
__________________________________________________________________________________________________________________________________________________________________
Комментариев нет:
Отправить комментарий