Mercados Financieros

El yuyuplot en perspectiva

R

El yuyuplot al que me refiero es

scary_plot_dj

un gráfico ha circulado por internet y que ha causado cierto pánico, se ve (y de ahí el nombre). En algunos sitios —véase este como ejemplo de los menos acertados— se ha intentado de explicar al público sus deméritos.

El mundo de las finanzas debiera ser la envidia de otros ámbitos por el volumen, variedad y velocidad de los datos disponibles en él. Además, desde tiempo atrás, mucho antes de que el siglo nos trajese el big data, la transparencia, el opendetodo y otras concomitancias. A la vez, sin embargo, es inagotable fuente de ejemplos de uso pueril de esos datos. El que nos ocupa es uno de ellos.

Cómo apostar si tienes que

Hace unos días recibí esto,

que es la rentabilidad de carteras de inversión (sospecho que no necesariamente reales) de usuarios de cierto portal que compiten por ver quién tiene más ojo en bolsa.

¿No os llama la atención esa rentabilidad >600%? ¿Cómo se puede alcanzar? ¿Es ese señor —a quien no conozco— un hacha de las inversiones?

Dos ideas me vienen a la cabeza. Una es esta que, pienso, no aplica. Y no lo hace porque, en particular, y como ya escribí, la apuesta de Kelly maximiza la mediana de las ganancias, pero ignora su varianza. Que, por lo que veremos luego, es el quid de la cuestión.

Addenda: ¿qué ha pasado en el Ibex durante el último mes?

Abundando en el tema de ayer, ahora, los mismos datos representados con mapas de calor:

Para obtenerlo, a lo que ya teníamos basta añadirle:

library(gplots)
heatmap.2(
    as.matrix(ibex.scaled),
    Rowv=F, Colv=T, key=F, trace="none",
    col=redgreen, xlab="valor", ylab="",
    margins=c(5,10))

¿Qué ha pasado en el Ibex durante el último mes?

Pues esencialmente esto:

Es decir, un grupo numeroso de valores ha bajado de precio mientras que otros dos grupos han tenido una evolución en U y ha recuperado, con creces incluso, el valor que tenían hace un mes.

Y, como siempre, el código:

library(tseries)
library(zoo)
library(XML)
library(reshape)
library(ggplot2)

foo  <- function(simbolo, final = Sys.time(), profundidad = 30 * 24 * 3600 ){
  precios <- get.hist.quote(
    instrument= simbolo, start = final - profundidad,
    end = final, quote=c("AdjClose"),
    provider="yahoo", origin="1970-01-01",
    compression="d", retclass="zoo")
  colnames(precios) <- simbolo
  return(precios)
}

# lista de símbolos del ibex

tmp <- readHTMLTable("http://finance.yahoo.com/q/cp?s=%5EIBEX+Components")[[5]]
tmp <- as.character(tmp$V1[-(1:6)])
tmp <- gsub("-P", "", tmp)
simbolos <- tmp[tmp != "ABG.MC"]

ibex <- do.call(merge, sapply(simbolos, foo, simplify = F))

ibex.scaled <- scale(ibex)

ibex.df <- data.frame(ibex.scaled, fecha = index(ibex.scaled))
ibex.df <- melt(ibex.df, id.vars = "fecha")
ibex.df <- ibex.df[ order(ibex.df$fecha, ibex.df$variable), ]
ibex.df$cluster <- kmeans(data.frame(t(ibex.scaled)), 4)$cluster

ggplot(ibex.df, aes(x=fecha, y=value, group=variable)) +
        geom_line() + facet_wrap(~cluster)

El Ibex 35 al estilo GapMinder

Quiero representar hoy la evolución del Ibex 35 a lo largo del año pasado al estilo GapMinder. En concreto, usando un MotionChart de Google.

Primero, bajo los símbolos de los activos del Ibex de Yahoo! Finance:

library(XML)
simbolos <- readHTMLTable(htmlParse("http://finance.yahoo.com/q/cp?s=%5EIBEX+Components"))
simbolos <- as.character(simbolos[[9]]$Symbol)
simbolos <- gsub("-P", "", simbolos)

Luego, creo una pequeña función y se la aplico a cada símbolo:

library(tseries)

foo  <- function( simbolo, final = Sys.time(), profundidad = 365 * 24 * 3600 ){

    tmp <- get.hist.quote(
        instrument= simbolo, start = final - profundidad,
        end= final, quote="AdjClose",
        provider="yahoo", origin="1970-01-01",
        compression="d", retclass="zoo")

    precios <- as.data.frame(tmp)
    precios$fecha <- index(tmp)
    rownames(precios) <- NULL
    precios$simbolo <- simbolo

    precios$AdjClose <- 100 * precios$AdjClose / precios$AdjClose[1]
    precios$x <- as.numeric(precios$fecha)
    precios$x <- 1 + precios$x - precios$x[1]
    colnames(precios) <- c("precio", "fecha", "simbolo", "dias")

    precios
}

res <- sapply(simbolos, foo, simplify = F)
res <- do.call(rbind, res)

Finalmente, creo el gráfico:

Sólo el 5% ganan dinero con el "análisis técnico"

Hojeando la prensa francesa di con este pequeño artículo en Les Echos, Pourquoi les particuliers sont perdants sur les devises. Remite a un artículo reciente, Is Technical Analysis Profitable for Individual Currency Traders? inasequible para quienes creemos que los 45 dólares que cuesta descargarlo tienen mejor empleo en otra parte (es curioso: en muchos otros ámbitos académicos es fácil conseguir los artículos gratis; en finanzas, casi imposible).

¿El resumen? Que prácticamente nadie gana dinero usando el llamado análisis técnico. E incluso podría argumentarse que ese 5% podrían no ser sino el sesgo de supervivencia.

PER y EV/EBITDA

Muchos portales financieros incluyen información sobre uno de los llamados múltiplos (asociados a empresas que cotizan en bolsa), el PER. Es fácil de calcular a partir de información pública más o menos fiable y se usa en la práctica para estimar muy a groso modo si determinadas empresas (o mercados) están o no sobrepreciadas.

El PER es el cociente entre la capitalización bursátil de una empresa (que es público y se actualiza segundo a segundo) y su beneficio, que se conoce con cierta regularidad. Tiene sus ventajas —como la señalada más arriba— y desventajas —por ejemplo, que está influido por el desempeño pasado, los beneficios de ejercicios anteriores, cuando a un inversor le interesa más el desempeño futuro—.

Un manifiesto (y juramento "hipocrático") para los modelizadores

Es algo viejo, pero vale la pena traerlo a estas páginas. Se trata de un manifiesto que comienza parejo a aquel otro ahora arrumbado: Un espectro recorre los mercados — el espectro de la falta de liquidez, la congelación del crédito y el fracaso de los modelos financieros.

Habla, sí, principalmente, de finanzas. Pero en gran medida desde la óptica de la modelización y de su responsabilidad en el caos que vivimos ahora. Y, aunque no tiene desperdicio, su colofón de es de universal aplicación y provecho para los modelizadores todos, incluidos los ajenos al mundo de las finanzas. Es una suerte de juramento hipocrático para modelizadores con las siguientes cinco promesas:

Numerismo "interruptus" en el FT

Cuando era menos pobre, antes de la crisis, me desayunaba todos los días con el Financial Times. Me lo daban gratis en el hotel. Al cabo de un año leyéndome cada letra de cada edición, los principales columnistas acabaron siendo como de la familia.

Un tipo al que tengo insana envidia es John Authers. Estése o no de acuerdo con su punto de vista, el hecho de que cada mañana sea capaz de poner en negro sobre sepia una columna increíblemente inteligente es motivo sobrado para sentirse internamente reconcomido. Otra periodista de asombroso insight (odio no saber traducir el término al español) es Gillian Tett.

La escuela de Chicago se defiende

El vídeo de Taleb que publiqué la semana pasada recoge un ataque frontal a un presunto vicio del entramado económico-financiero actual: su excesiva dependencia en la teoría y la matematización de los mercados financieros. Hasta tal punto se ha cuestionado el papel de las matemáticas (y su responsabilidad en la reciente crisis financiera y bancaria) que la llamada Escuela de Chicago, cuna de toda esta arquitectura, está a la defensiva.

Publico aquí el enlace a una entrevista del Financial Times con el decano de la Escuela de Negocios de la Universidad de Chicago, que da su visión sobre el fenómeno (pulsar en la imagen para ver el vídeo):

Paella sin arroz con sabor a judías enlatadas

El otro día leí el artículo A Prototype Model of Stock Exchangede G. Caldarelli, M. Marsili y Y.C. Zhang. La promesa que me ofrecía era la de la creación de un sistema relativamente realista de los agentes que operan en los mercados financieros que diese lugar a una evolución de precios con propiedades similares a las observadas.

Sin embargo, el planteamiento, interesante en un principio, se deshinchó enseguida:

  • El modelo planteado por los autores ni siquiera aspira a representar los aspectos más distintivos del mercado: en lugar de agentes tremendamente desiguales en tamaño y entrelazados en una maraña de dependencias e influencias mutuas, los agentes son todos equivalentes en tamaño (si bien es cierto que en el estado estacionario de la simulación los ingresos adquieren una distribución dada por una ley de potencias) y que actúan de manera independiente entre sí una vez observados los precios en el mercado.
  • Los resultados, una serie temporal de precios, es calificada por los autores como muy rica, aunque enseguida pasan, en un dechado de honradez, a apuntar diferencias más o menos manifiestas entre sus características estadísticas y las observadas en mercados reales.

Entiendo y aplaudo el virtuosismo técnico empleado por los autores del artículo y la implementación de los algoritmos involucrados. No obstante, tras leerlo, me embriaga una extraña sensación que no debe de ser muy distinta de aquellos comensales a los que se les anunció paella, se les advirtió que no traía arroz ni gambas y comprobaron después que sabía a judías de lata.