четверг, 25 сентября 2014 г.

Простой как три копейки


Почему так часто происходят сбои на Московской бирже и как с этим бороться.

В мае 2012 года на бирже NASDAQ начали продаваться акции Facebook. Первичное размещение социальной сети вызвало небывалый ажиотаж, а ее капитализация взлетела в первый день торгов до $100 млрд. Для самой биржи долгожданное событие обернулось кошмаром: из-за сбоя в системе брокеры полчаса не могли купить и продать акции компании. День был испорчен, NASDAQ получила $10 млн штрафов и несколько исков, а конкуренты из NYSE - отличный козырь в борьбе за технологические IPO.

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


ТОРГОВЫЕ РОБОТЫ

Поляков, успевший поработать в Bell Labs, Morgan Stanley и Deutsche Bank, пришел на Московскую биржу в 2012 году, после объединения ММВБ и РТС. Вместе с командой из 300 человек он отвечает за создание и развитие единой технологической платформы для всех рынков биржи. Его команда вводит в эксплуатацию по три больших обновления в год на каждом из трех рынков. «Этот график почти в 2 раза интенсивнее, чем на устоявшихся западных биржах», - подчеркивает он.

В конце августа первый зампред ЦБ РФ Сергей Швецов сказал, что регулятор обсуждает, стоит ли и дальше платить сбоями за прогресс или лучше притормозить. Полякову эта идея не нравится: если биржа будет слишком осторожна, ее упрекнут в отсутствии новых продуктов. «Мы, безусловно, стремимся к максимальной надежности наших систем, - говорит он. - В нашем бизнесе это чрезвычайно важно, хотя, может быть, в меньшей степени, чем у авиакомпаний или производителей медицинской электроники, где минимальная ошибка может иметь катастрофические последствия». От «аварий» на бирже еще никто не умер.

Компромисс между надежностью и развитием имеет числовое выражение: в этом году биржа не функционировала из-за сбоев в общей сложности 4 часа 25 минут. Это 0,06% времени ее работы с начала года при нормативном показателе в 1,5 раза меньше. Время работы считается совокупно для всех трех торговых площадок, существующих внутри биржи. Вдень набегает 37 часов: 9 часов работает фондовый рынок, по 14 часов - валютный и срочный.

В функционировании современной торговой площадки главное - скорость, которая измеряется тысячами операций в секунду. Московская биржа обрабатывает до 15-20 тыс. транзакций в секунду на каждой из трех систем. Программы для высокочастотного трейдинга, в просторечии роботы, борются за каждую микросекунду: чем раньше получена информация, тем больше прибыли. Даже стойки брокеров соединены с ядром биржи оптоволоконными проводами одинаковой длины: если провод будет короче хотя бы на несколько сантиметров, у кого-то будет постоянное преимущество. На роботов приходится около 50% оборота.

ПРОБЛЕМА СКОРОСТИ

Московская биржа не самая быстрая в мире: скорость обработки заявки составляет 400 микросекунд. То есть через 400 миллионных долей секунды после того, как на биржу прислали заявку, она уже попадает в систему и может участвовать в торгах. Для сравнения, Лондонской бирже на это требуется примерно 150 микросекунд. Сергей Поляков называет скорость Московской биржи средней: у Франкфуртской биржи, к примеру, на обработку заявки уходит 700-800 микросекунд. Скорость и приводит к ошибкам.

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

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

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

«Такие ошибки очень сложны для обнаружения. На обычном тестировании они не выявляются, потому что вероятность столкновения крайне низкая. Их ловят на специально подготовленных компьютерах, которые работают очень медленно. При искусственном замедлении процессов вероятность столкновения, а значит, и локализации ошибки повышается», - говорит Сергей Поляков. Тестирование такого типа Московская биржа собирается сделать стандартным.

Еще один действенный метод предотвращения сбоев - простое чтение кодов, самый давний и проверенный способ проверки программ. «Во-первых, выявляется значительное число ошибок, во-вторых, люди начинают лучше писать, если знают, что их код потом будут читать», - рассказывает Поляков. Проблема только в том, что процесс это долгий: скорость обработки - примерно 400 строк в день, а в торгово-клиринговой платформе ASTS (фондовый и валютный рынки) около 150 тыс. строк кода. «Можно даже назвать этот процесс бесконечным, - говорит Поляков. - Мы смотрим самые критичные места и постепенно совершенствуем систему».

Если сбои на бирже - плата за быструю разработку, то это ощутимая плата, подчеркивает директор по развитию информационных технологий и поддержке бизнеса ИК «Атон» Кристина Коваленко. «Новые продукты, оплаченные таким способом, должны быть достаточно привлекательными для рынка, чтобы перевесить негативное впечатление», -добавляет она. Нельзя жертвовать надежностью ради внедрения новых продуктов, уверен руководитель направления по работе с механическими торговыми системами ФГ «БКС» Алексей Кирков. «Сбои отпугивают участников торгов и снижают конкурентную способность в сравнении с западными площадками», - считает он. На Западе, поданным Коваленко, сбои происходят реже - в среднем раз в год.

Впрочем, деваться с Московской биржи некуда, говорит Максим Орловский, директор в глобальном управлении по работе на рынке акций «Ренессанс Капитал»: локальные акции и фьючерсы на них больше нигде не торгуются. Поэтому сбои - это в первую очередь удар по имиджу.

(c) Екатерина Метелица