elizarov


Блог Романа Елизарова


Previous Entry Share Next Entry
Технические сбои в неподходящие моменты
elizarov

Вчера вечером услышал по радио комментарий трейдера Василия Олейника по поводу сбоя на бирже РТС-ММВБ: "Технические сбои бывают именно в те неподходящие моменты, когда очень сильно конъюнктура на внешних площадках меняется." Сразу оговорюсь. Несмотря на то, что и Фондовая Биржа РТС и ММВБ были нашими клиентами еще до объединения, и остаются таковыми после, мы (Devexperts) не имеем отношения к коду собственно их торговых систем, поэтому про технические подробности этого конкретного сбоя я ничего сказать не могу (но если бы мы и имели бы отношение к этому коду, то я бы тоже сказать ничего не мог бы из-за обычного в таких случаях NDA). А вот о технических сбоях вообще расскажу подробней.

Для торговых систем бирж, брокеров и трейдеров нагрузка максимальна именно в момент резких изменений на рынке. Люди подвержены панике, а автоматические системы запрограммированы реагировать на те или иные изменения, что вызывает ответную реакцию у других автоматических систем. Возникает лавинообразный эффект, который, даже не приводя к сбоям, может оказать весьма неочевидное воздействие на рынок. Широко известный инцидент под названием Flash Crash произошел 6 мая 2010 года. В нашей базе котировок можно посмотреть (логин demo, пароль demo) как, например, акции Accenture меньше чем за минуту подешевели с $38 за акцию до одного цента, а потом восстановились в цене. При этом, запросив данные по сделкам за этот интервал времени можно увидеть, что сделки по их купле-продаже за один цент реально происходили. Кстати, тот инцидент не был следствием и не привел к каким-либо сбоями на торговых площадках США, но часть сделок за этот интервал времени была отменена.

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

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

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


  • 1
Если целенаправлено вкладываться в создание всё более и более сложных систем, то сбои обязательно будут, в ассортименте. Надёжности легче добиться в простых системах, но простую систему труднее придумать.

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

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

Безусловно. Программное обеспечения так или иначе создается для целей того или иного бизнеса. И уровень качества того или иного ПО в первую очередь определяется требованиями бизнеса. У небольшого интернет-магазина одни требования к качеству, а у атомной электростанции — совсем другие. Если конкретному бизнесу выгодней иметь менее качественное ПО сегодня, чем более качественно позже (и дороже), то в эксплуатацию пойдет менее качественное. Те проекты, которые правильно находят свой уникальный баланс между функциональностью, качеством (надежностью и другими его аспектами), стоимостью, и временем выхода на рынок — процветают. А те, кто ошибается (тратя очень много денег на непозволимо высокий для себя уровень качества или выпускают непозволимо некачественные продукты) уходят в забытье.


Edited at 2012-04-25 09:12 am (UTC)

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

Что-то у меня не сложилось впечатление, что будет какое-то независимое расследование причин происшедшего, так что вряд ли мы узнаем, что же именно произошло и почему. Зато я где-то прочитал, что собираются уволить кого-то в ИТ-отделе. Этак получается в чистом виде зиц-председатель - в ИТ-отделе можно хоть раз в год кого-нибудь увольнять.

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

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

Edited at 2012-04-26 10:59 am (UTC)

Не путай общественную шерсть с личной.

Личная шерсть наемного менеджмента и шерсть компании - две очень разные шерсти.

В этом месяце этот банк закрывет период 30-м числом :)

Ты хочешь сказать, что за апрельские траты я могу расплатиться до 30 мая?

Так говорит банк в своем connect'e

"за период с 07.04.2012 - 09.05.2012
(погасить не позднее 30.05.2012)"

Надеюсь, не огорчил :)

Edited at 2012-05-16 06:48 am (UTC)

Похоже, условия изменились глобально: 20 дней со дня формирования ежемесячной выписки

Проблема в ответственности за ошибку. Пока на РТС и ММВБ после чудовищных ляпов говорят "извините, ребята, так получилось", и ребята помалкивают, смысла вкладывать в качество нет никакого, даже если этих самых денег завались.

А вы бы как поступили на месте РТС-ММВБ?

Там не дураки сидят. Для них стратегия оптимальная.

Наверное я неправильно задал вопрос. Я хотел спросить как бы вы хотели чтобы РТС-ММВБ поступило в таком случае? Не с точки зрения оптимальности для них, а с точки зрения того, что бы вам хотелось чтобы они сделали?

Мне, честно говоря, пофиг. Первым делом я бы заменил руководство ИТ.

А вот Совет директоров разобрался, на мой взгляд, более грамотно, обратив внимание "на неудовлетворительную работу менеджмента по управлению операционным риском". IT может делать что угодно и система может делать что угодно, но на то и есть RM, чтобы это отслеживать. (http://rts.micex.ru/n747/?nt=106)

На многих биржах встроенного RM почти нет (или даже совсем нет). А вот на этой есть и в полный рост. Куда он смотрел - загадка.

P.S. Как тут ссылки вставлять?

  • 1
?

Log in

No account? Create an account