library(httr)
library(plyr)
base.url <- "http://www.infobolsa.es/1/wtdb/ChartIntraday"
res <- POST(base.url,
body = list(mv = "M SAN",
date = "20160518",
compressionMult = 1,
isSession = 1))
dat <- content(res, as = "parsed",
type = "application/json")
dat <- dat$answer$LST$TV$T09
dat <- ldply(dat, unlist)
Por su interés y oportunidad, reproduzco aquí y en su idioma original (la parque que nos es más relevante de) un breve editorial de Simon Baptist, economista jefe de The Economist Intelligence Unit.
Así reza:
This week we had some apparent good news with [Indian] GDP growth at the end of 2014 revised upward to 7.5% but, looking closer, a large part of the good performance is due to changes in the way that GDP is calculated. These changes are welcome, as they better reflect the structure of the current Indian economy, but remind me that the mind-numbingly boring issues of price deflators and sectoral weights are actually much more important to economic statistics than issues of reform or central bank behaviour. Although it is less exciting, we economic commentators really should spend more time focusing on where our numbers come from rather than breathlessly extolling changes that are smaller than the likely measurement error. Either way, really understanding the context of data and forecasts is critical to making good business decisions.
El otro día hablaba con una colega sobre una charla a la que habíamos asistido. Yo le decía que sí, que estaba bien, pero que todo lo que habían contado era mentira. Debí haber sido más preciso y decir que no era verdad, que es distinto. Pero las canapescas circunstancias no eran propicias para el distingo. Mi interlocutora me escuchaba, pienso, entre sorprendida e incrédula. Todavía está en la edad en la que hay que creérselo todo —sí, esa edad y esa obligación existe— y tiempo tendrá de dejarse envenenar por el nihilismo. Es lo suficientemente lista como para eso.
¿Será necesario un doctorado en econometría para poner una lavadora? Con eso ironiza el autor de El nuevo sistema de precios para la electricidad (I): Entre la tarifa gusiluz y la tarifa batamanta.
Os cuento el contexto.
Al parecer, a partir de cierta fecha no muy remota, el precio de la electricidad en España variará de acuerdo con el precio en el mercado de generación y, por lo tanto, según la hora. Las variaciones podrán ser importantes según el día, el tiempo, etc. De manera que los consumidores no sabrán —salvo que malgasten mucho tiempo consultando algún tipo de servicio de cotizaciones en tiempo real— cuánto les costará poner una lavadora. Y, por lo tanto, tampoco podrán ajustar su consumo al precio. Etc.
El IBEX 35 abre todas las mañanas a un precio y cierra a otro. El precio de apertura de un día no es necesariamente igual al del cierre del siguiente. Por lo tanto, la variación del índice en una jornada completa de 24 horas es igual a la suma de las variaciones dentro y fuera del horario de cotización.
Dicho lo cual:
- Juan compra el IBEX todos los días a primera hora y lo vende en el último minuto.
- Del otro lado, Pedro lo compra en el último minuto y se lo vende (¡a Juan!) justo al abrir la bolsa al día siguiente.
Juan y Pedro llevan operando así desde el 1 de enero de 2000. ¿Cuál de los dos se ha llevado el gato al agua? Veámoslo:
Estos catorce mitos son, en realidad, siete y siete. Los primeros, de FEDEA:
- El déficit de tarifa es consecuencia de una sobre retribución de la generación o del exceso de renovables del sistema y su generosa retribución o de las subvenciones soportadas
- El impacto en los hogares (o en las empresas) de eliminar el déficit de tarifa incrementando los precios es inasumible
- La retribución de todos los “fabricantes” de energía al precio que marca el fabricante más caro es una característica ESPECÍFICA de la generación eléctrica y enriquece a los productores
- Los precios de la generación en España son de los más elevados de Europa
- La causa del coste de la energía es el carácter oligopolístico del mercado de generación
- Los “excesivos” e “injustos” beneficios de las eléctricas españolas son una prueba del abuso al que someten al mercado
- Las subastas CESUR encarecen el precio de la energía
Los otros siete, del Observatorio Crítico de la Energía:
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.
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))
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)