Mariusz Prowaźnik

o programowaniu w Javie, Scali i Clojure.


460 mln dolarów strat z powodu błędu przy wdrożeniu. Przypadek Knight Capital

Rok 2012 był bardzo pechowy dla Knight Capital, amerykańskiej firmy robiącej algorytmiczny trading. Błędne wdrożenie nowej wersji jednego z ich systemów spowodowało 460 mln USD strat i zakończyło żywot firmy w dotychczasowej formie.

W Polsce może mało kto słyszał o Knight Capital, ale to nie była jakaś firma-krzak, bo w USA generowała 10% całego handlu na rynku akcji. To bardzo dużo, około 20 mld USD dziennie - ponad 100 razy więcej niż cały dzienny obrót na GPW...

No dobra, ale co tam właściwie się przydarzyło?

Wdrażali nową wersję systemu SMARS, czyli automatycznego rutera do zleceń. Jego przeznaczenie było podobne do tego, co opisałem w poprzednim poście. Wysyłane były do niego zlecenia od klientów, a system rozbijał je na mniejsze kawałki i wysyłał na różne giełdy, tak, żeby uzyskać jak najlepszą cenę.

Zawierał on stary i zapomniany kod, nie używaną od 8 lat funkcjonalność PowerPeg, która była wyłączona konfiguracyjnie. Oczywiście przez te 8 lat wiele w używanym kodzie się zmieniło, między innymi logika sprawdzająca, czy ruter wysłał na rynek wystarczająco dużo zleceń, żeby wykonać zlecenie od klienta. Nikt nie testował, czy stara nieużywana funkcjonalność działa dobrze po tych zmianach. Na krótko przed katastrofą, została wprowadzona nowa funkcjonalność RLP, starą wyrzucono, ale do włączenia nowej, użyto tej samej flagi w konfiguracji! System działał na ośmiu serwerach. Na siedem z nich nowa wersja została wdrożona poprawnie, ale na ósmym pozostał stary kod z nową konfiguracją, która włączyła PowerPeg. Ósmy serwer zaczął produkować ogromną ilość zleceń i wysyłać je na rynek. Gdy ktoś zorientował się, że coś jest nie tak, zrobiono rollback - przywrócono starą wersję kodu na wszystkich serwerach, ale z nową konfiguracją, co sprawiło, że niepotrzebne zlecenia szły na rynek 8 razy szybciej. Wszystko to trwało 45 minut.

Przez te 45 minut SMARS kupił akcje za 3,5 mld USD, oraz otworzył krótkie pozycje na kolejne 3,5 mld USD. Dla porównania przychody Polski z tytułu podatku od osób fizycznych w pierwszej połowie 2015 wyniosły ok 9 mld USD. Zmiany kursów akcji sprawiły, że Knight Capital stracił na tych pozycjach 460 mln USD. Potem jeszcze dostali 12 mln USD kary od SEC (amerykańska agencja rządowa nadzorująca rynki akcji), między innymi za to, że Knight Capital nie miał "bezpieczników", które automatycznie wyłączały systemy po osiągnięciu określonego limitu otwartych pozycji. To znaczy mieli, ale akurat nie w tym miejscu...

Źródło:


3 komentarze :

  1. Co się stało z programistami, którzy wdrożyli ten błąd? Zostali oni obarczeni odpowiedzialnością finansową czy coś w ten deseń?

    OdpowiedzUsuń
  2. Dobre pytanie, ale nie znalazłem póki co żadnych informacji na ten temat.

    OdpowiedzUsuń
    Odpowiedzi
    1. Pewnie zrobili coś takiego: http://s969.photobucket.com/user/freezeheart84/media/gifs/Gifs%202/36f_zps2c2ffdf5.gif.html

      i słuch po nich zaginął :)

      Usuń