While helping one of my students, Oleg Karapaev, in his struggle with a paper on determinants of divergence between “fair” and observed prices in stocks (written as a part of his bachelor research project), I’ve made some observations perhaps worth sharing with blogosphere. I used some R code and ggplot2 + ggthemes by Jeffrey Arnolds to represent findings visually (important: to replicate code in full you should have an access to Bloomberg and Rbbg package to download data).
Bloomberg collects target prices for equities from sell-side research analysts. They claim to have around 1500 contributors around the world. Generally speaking, sell-side analysts are not directly interested in quality of their research, at least not as interested as buy-sides are (see how Investopedia explains it.) Usually, when you plot blended forward 12-month target price (consensual between several analysts, covering stock), you expect to see something like the plot in the beginning of the post (shaded zone is last crisis, below – the code to generate it).
library(ggthemes) library(xts) ## Here and below, prices and targets are matrices with historical ## and target prices, downloaded from Bloomberg with rBbg package. ## Tickers are in columns, dates in rows. See full code below ticker <- 'MSFT' range <- '2005-01-01::' crisis <- = '2007-11-30', end = '2009-05-29') dtf <- xts( ( historical = as.numeric(prices[12:nrow(targets),ticker]), predicted = as.numeric(targets[1:(nrow(prices)-11),ticker])), = time(prices[12:nrow(targets),ticker]))[range] dtf <- ) dtf$Date <- )) ggplot(data = dtf) + geom_line(aes(x = Date, y = historical, col='Historical')) + geom_line(aes(x = Date, y = predicted, col='Predicted')) + theme_economist() + scale_colour_economist() + theme( ()) + geom_rect(data=crisis, aes(xmin= ), xmax= ), ymin=-Inf, ymax=+Inf), fill='blue', alpha=0.2) + xlab("Date") + ylab("Price") + ggtitle("Historical vs. Predicted Price: MSFT")