Como Knight Capital perdía 10 millones de dólares cada minuto debido a un fallo software

Por una actualización que no llegó a todos los sistemas Knight Capital perdió 460 millones de dólares en cuestión de minutos.

Doloroso. No se me ocurre otra forma de describir la sensación que tuvieron que experimentar los técnicos, directivos y demás personas involucradas directa o indirectamente cuando se enteraron de que Knight Capital había perdido 460 millones de dólares en cuestión de minutos debido a un problema software, hecho que casi llevó a la bancarrota a la compañía.

¿Y cómo fue posible semejante despropósito? Pues por una actualización que no llegó a todos los sistemas informáticos, dejando algunos sistemas funcionando con código antiguo. Pero empecemos por el principio.

Para permitir la participación de sus compradores en la Retail Liquidity Program (RLP) de la bolsa de Nueva York, Knight Capital hizo numerosos cambios en sus sistemas informáticos. Entre estos cambios se incluyó el desarrollo de código nuevo para SMARS, un enrutador algorítmico de alta velocidad que enviaba las órdenes al mercado. Una de las principales funciones de SMARS era recibir las órdenes de otros componentes de la plataforma de negociación de Knight (órdenes “padre”) y, en función de la liquidez disponible, enviar una o más órdenes representativas (o “hijas”) a sitios externos para su ejecución.

El nuevo código RLP para SMARS pretendía reemplazar una funcionalidad conocida como Power Peg, diseñada para aumentar o disminuir el precio de las acciones de tal forma que se verificara correctamente el comportamiento de los algoritmos en entornos controlados.

A pesar de que no volvería a usarse más tras la actualización, la funcionalidad Power Peg tenía que seguir presente ya que podía ser necesitada en el despliegue. Por ello se recodificó un selector ya existente (flag) para permitir activarla. Como esta funcionalidad iba a quedar obsoleta, Knight la eliminaría en su momento poniendo este selector con el valor adecuado.

A finales de Julio del 2012, Knight desplegó su nuevo código RLP progresivamente en un número limitado de servidores SMARS durante varios días. Sin embargo, durante este despliegue uno de los técnicos de Knight olvidó copiar el código nuevo en uno de los servidores SMARS. Knight no tenía procesos de revisión para estos despliegues, así que nadie se percató de que uno de los servidores no estaba actualizado como debía.

El 1 de Agosto del mismo año, Knight recibió órdenes de sus brokers para empezar a participar en el RLP. Los siete servidores con el código nuevo procesaban la órdenes correctamente, pero había uno que aún mantenía el código antiguo. Como resultado, el servidor no actualizado comenzaba a enviar sin parar órdenes hijo por cada orden padre recibida a ciertos centros de trading para su ejecución sin tener en cuenta el número de ejecuciones ya realizadas (la funcionalidad Power Peg ya no existía en el sistema SMARS).

Pérdidas de Knight Capital debido al fallo software (Fox Business)
Pérdidas de Knight Capital debido al fallo software (Fox Business)

Como el sistema SMARS no era consciente de las órdenes ya ejecutadas por ese servidor con código antiguo, Knight ejecutó 4 millones de operaciones en 154 stocks por más de 397 millones de acciones en aproximadamente 45 minutos (la continua compra/venta devaluó las acciones), lo que conllevó unas pérdidas estimadas en 460 millones de dólares.

Cuando los técnicos se dieron cuenta del error, ya era demasiado tarde. Pese a ello, Knight Capital consiguió levantar una inversión de 400 millones de dólares (entre ellos del Grupo Jefferies) para poder hacer frente al batacazo monetario.

Un error garrafal, debido a malos procedimientos de revisión y despliegue de actualizaciones en los sistemas informáticos.

Se puede leer más información al respecto en los siguientes enlaces:

test