Malomaren test algoritma povzročil pol milijarde dolarjev škode na borzi
Matej Huš
6. avg 2012 ob 10:19:48
O visokofrekvenčnem trgovanju smo že obsežno pisali in ugotovili, da večino prometa na resnih borzah (kamor se ljubljanska nikakor ne šteje) tako ali tako opravijo računalniki po prednastavljenih trgovalnih algoritmih. Povprečni čas držanja delnice je nekaj deset sekund, vsako sekundo pa se izvede na milijone algoritemskih transakcij, v katerih algoritmi posamezne borzne hiše ali investicijske banke poizkušajo premagati algoritme konkurentov. Poleg kakovosti algoritmov na uspeh vpliva tudi latenca, zato podjetja plačujejo velike vsote za kolokacije čim bliže borzi, po možnosti v isti stavbi.
Neskončno lovljenje vedno boljših odzivnih časov bi lahko preprečili z uvedbo zrnatega trgovalnega časa (sklepanje poslov oziroma miniavkcije vsako polno sekundo), a pojavljajo se ideje za prav nasprotni razvoj z drobljenjem intervala na pikosekunde. Kako zelo je odzivni čas pomemben, priča polaganje številnih novih podmorskih internetnih kablov, ki jih financirajo finančne inštitucije izključen s temi nameni. Po eni strani visokofrekvenčno trgovanje male navadne vlagatelje odganja, ker so popolnoma nekonkurenčni, a to ni edina past. Programerski hrošči v algoritmih imajo lahko hude posledice. Lani so odkrili napako, ki jo bilo podjetje Axa Group spoznalo že prej, a so jo svojim strankam prikrili, zaradi česar so napravili 217 milijonov dolarjev škode. Pretekli teden se je v ZDA zgodil še bolj bizaren incident, ki je podjetju Knight Capital v eni uri povzročil skoraj pol milijarde dolarjev škode in ga pognal na rob bankrota. Razlog je hroščata programska oprema in njen malomaren test kar v resničnem okolju.
V sredo takoj po odprtju borze v New Yorku (NYSE) so številne delnice začele divjati navzgor, promet pa je nezadržno rasel. Preden so ugotovili, kaj je narobe in začeli zavračati naročila, je na primer CO zrasel za več kot 100 odstotkov, WZE.A pa je pridobil več kot štirikratnik vrednosti. Podobnih primerov je bilo še več, vsem pa je bilo skupno divje nihanje tako navzgor kakor navzdol. Skupno je bilo prizadetih več kot 150 delnic, Forbes pa je incident označil kot mini flash crash po incidentu iz leta 2010, ko je Dow Jones 6. maja za nekaj minut izgubil več kot devet odstotkov, začasno anihiliral več kot 1000 milijard dolarjev premoženja in jih še bolj skrivnostno pridobil nazaj v naslednjih minutah.
V sredo se je dogajalo nekaj podobnega. Krivca za nestabilnost na trgu so kmalu našli, in sicer je šlo za podjetje Knight Capital, ki ima funkcijo zagotavljanja likvidnosti na trgu (market maker). To pomeni, da podjetje kupuje delnice po ceni povpraševanja in jih prodaja po ceni ponudbe, s čimer vnaša dodatno likvidnost. Analiza dogodkov s 1. avgusta pa kaže, da je šlo v sredo nekaj hudo narobe. Knight Capital je delnice kupoval po ceni ponudbe in prodajal po ceni povpraševanja - efektivno je vnašal sama tržna naročila namesto limitiranih. Z drugimi besedami to pomeni, da so ustvarjali negativno arbitražo (namesto da bi izkoriščali pozitivno arbitražo) in pri vsakem poslu izgubili okrog 15 centov, hkrati pa so rezali likvidnost. To se ne sliši veliko, a algoritmsko trgovanje vsako sekundo izvede na tisoče poslov, na tovrstne napake pa prežijo algoritmi konkurence.
Razlog za tako hudo napako je malomarno testiranje površne kode. Tistega dne je Knight Capital začel testirati nov program za algoritemsko trgovanje. To so storili kar v realnem okolju, rezultat pa je bila katastrofa. Vsega je bilo konec 45 minut po odprtju borze, ko jim je uspelo izključiti program in borzi umiriti delnice, ki so vmes zaletavale v 10-odstotno omejitev nihanja tečaja in se divje premetavale gor in dol. Po tri četrt ure je Knight Capital izgubil 440 milijonov dolarjev. Kapital celotnega podjetja znaša 600 milijonov dolarjev, zato so se že pojavile govorice, da bo podjetje zaprosilo za prisilno poravnavo ali celo stečajni postopek. NYSE je sicer dejal, da bodo razveljavili posle, ki so od zaključnega tečaja prejšnjega dne odstopali za več kot 30 odstotkov, a to še vedno pusti ogromno izgubaških poslov, ki jih bo moral Knight Capital požreti.
Ogromna izguba, ki jo je v 45 minutah ustvaril Knight Capital, daje misliti. To pot ni šlo za klasičen sindrom debelih prstov ali enkratno napako v poslu, ampak konstantno polzenje denarja z vsakim poslom zaradi trivialne napake v algoritmu. Nekdo je namreč napačno obrnil en stavek IF. Z visokofrekvenčnim trgovanjem in nerazumnim drobljenjem intervala v trgovalnem času borza postaja igrišče bogatih investicijskih bank, ki na njej merijo sposobnost svojih programerjev, moč računalnikov in hitrost svojih internetnih povezav. Regulatorji za zdaj ne kažejo nobenih namenov tovrstno špekuliranje omejiti, čeprav bi že samo uvedba sekundnega koraka precej izničila prednosti algoritemskega trgovanja. Hkrati to ni prva tovrstna katastrofa - poleg flash crasha iz leta 2010 je tu še letošnji začetek kotacije Facebooka, ki je povzročil cel kup tožb zaradi težav z vnosom naročil na prvi dan.