Warren Buffet hará saltar el Nasdaq

No. No soy adivino.

Ni necesariamente significa que Warren Buffet sea un gran genio. Aunque probablemente sí lo es.

Al menos cuando alguien quiere poner un ejemplo de un gran inversor al seleccionar carteras y acciones siempre sale el nombre de Warren Buffet.

La cuestión es mucho más terrenal.

La noticia empieza así:

Berkshire Hathaway, el grupo inversor dirigido por Warren Buffett, cerró su cotización el martes a un precio de 421.420 dólares por acción con tendencia al alza.

Hasta aquí bien, sobre todo si tienes acciones de este grupo. A mí me bastaría con un cacho de una acción para alegrarme el día.

Y sigue así:

Ocurre que los ordenadores de Nasdaq y otros operadores del mercado almacenan el precio de las acciones como un número de 32 bits. El número más alto posible en este formato compacto es 2^32 -1, o 4.294.967.295. Sin embargo, Nasdaq registra el precio de las acciones con cuatro decimales (hasta la centésima parte de un centavo), de manera que el número más grande que puede almacenar no es ese, sino 429.496,7296. (2^32 – 1) / 10000.

¡Aaaah! El efecto año 2000 contraataca

¿Recuerdan el problema del efecto 2000?

Los programas de ordenador de los 70 y 80 representaban el año con 2 dígitos.

Más o menos lo que hacemos ahora cuando para escribir el día de hoy ponemos 07/05/21. No hace falta decir 2021. Ya lo sobreentendemos.

La cuestión es que, siguiendo esa lógica, tras el 31/12/99 vendría el 01/01/00. Y claro, para un programa que compara fechas pues el 00 es menor que el 99.

Podía pasar cualquier cosa.

Cualquiera.

Informes desordenados donde aparecieran primero las operaciones del 2000 antes que las de 1999.

Cálculos de edades de personas que empezasen a fallar: 00-64 significa que tienes -36 años.

Aviones que aterrizarían antes de despegar.

En sistemas críticos podría ser un cataclismo.

Y claro, cuando se crearon esos programas nadie pensaba que esos programas iban a ver el cambio de siglo.

Pero muchos de ellos duraron más de lo que se esperaba de ellos.

Así que, durante los 90, lo nuevo que se desarrollaba ya no tenía ese problema.

Pero surgió una floreciente industria de consultores que analizaban, corregían o reescribían los sistemas para que siguieran funcionando más allá del año 2000.

Volvamos a nuestro amigo el Sr. Buffet

Warren para los amigos.

¿Qué ha hecho Warren mal?

Nada. Al contrario. Lo está haciendo demasiado bien.

No tiene nada que ver el problema con el valor total de Berkshire Hathaway. De hecho seguro que hay otras empresas cuyo valor total es mucho mayor.

Tiene que ver con el valor de cada una de las acciones.

Está a punto de no poder ser representado dentro del sistema informático de Nasdaq.

Lo primero es que este sistema debe llevar sus años en funcionamiento.

Desde hace bastantes años es normal usar 64 bits para representar números lo cual significa 2^64-1 posibles valores que serían como unos 4.300 millones de 4.300 millones de valores. Vaya, una burrada.

Pero en los 80 y 90 no era tan normal. Los ordenadores eran menos potentes, con menos memoria y había que economizar el uso que se hacía de ella. Así que si podías representar un número con la mitad de memoria entonces tenía sentido ahorrarla.

Y quienes desarrollaron este sistema debieron ver impensable una única acción de 430.000 dólares.

Así que adelante con esta decisión.

Pero entonces el problema debe ser sencillo de resolver ¿no? Basta cambiar todos los campos que representan el valor de una acción de 32 a 64 bits e instalar la nueva versión en el Nasdaq y problema resuelto.

Problema resuelto para el Nasdaq.

Pero la explicación dice “los ordenadores de Nasdaq y otros operadores del mercado”.

¿Quiénes son los “otros operadores de mercado”?

Cualquier sistema que utilice esta información para sus procesos. Desde los que leen la cotización de las acciones para mostrarla a los operadores de bolsa o a las webs como finance.yahoo.com hasta los programas que lanzan operaciones de compra y venta, a veces con un operador persona y a veces con un sistema automático de reglas.

Cualquiera de ellos potencialmente podría tener también esta limitación.

Y si mañana Nasdaq instala una nueva versión de su software que resuelve el problema y pasa un número mayor que los 429.000$ a otro sistema conectado que no está preparado puede pasar cualquier cosa.

Muy probablemente que el otro sistema ignore los bits mayores que el 32 y se quede sólo con el valor que excede de los 429.000$ como si fuera el valor de la acción.

Ahora imagina que uno de estos programas tiene una orden de venta si el valor de la acción baja de 400.000$ y de pronto lo que llega a ese ordenador es un valor de 160$. Entonces el sistema quizá tendría una regla de ordenaría la venta inmediata de la acción por 160$ para evitar que pueda llegar a valer 0.

Vaya negocio.

Es un ejemplo, no tiene que ser necesariamente así.

La cuestión es ¿cómo estás seguro de que este cambio no afectará a sistemas externos que no dependen de tí?

Porque, muy probablemente, los programas de Nasdaq ya se hayan modificado para usar internamente números de 64 bits.

Es más, probablemente los programas de cualquier operador de bolsa también estén preparados para trabajar con números de 64 bits. Sobre todo si esos operadores también trabajan con otras bolsas que no tienen esa restricción.

Pero lo que no se puede cambiar sin muchas pruebas y verificaciones es el formato con el que se intercambian esos números entre los distintos sistemas.

¿Cómo hacer el cambio?

Una posible idea es crear un nuevo formato de intercambio de datos con números de, al menos, 64 bits. Desarrollar operaciones tanto de consulta como de actualización usando este nuevo formato pero dejando el formato anterior disponible para quien no se haya adaptado. Esperar a que todo el mundo utilice el nuevo formato para apagar el antiguo.

Es una opción.

Pero cualquier cambio que implica múltiples sistemas debe gestionarse con mucho cuidado. Se tiene que buscar siempre compatibilidad hacia versiones anteriores y, cuando esto no es posible, generar una nueva versión y dar un tiempo para que los usuarios de la versión antigua se pasen al nuevo.

y ¿ahora qué?

De hecho, según finance.yahoo.com, el valor actual es de 430.483,00$ por acción. Es decir: ya deben haber fallado los sistemas de Nasdaq.

Esten atentos a las noticias.

Más importante que el diseño interno de un sistema informático es su diseño externo: los interfaces que ofrece para interactuar con otros.

Cambiar tu diseño interno siempre está en tu mano. Puede ser más o menos complicado y más o menos costoso, pero depende totalmente de tí.

Pero cambiar un interface es mucho más complicado. Porque puede hipotecarte a largo plazo.

Cuanto más éxito tenga tu negocio más complicado será realizar cualquier cambio.

Si estás diseñando un interface que vas a ofrecer a terceros hablemos.

Si eres Nasdaq pásame los datos y te envío la factura.