My broker, optionsXpress, shows the probability that the stock will touch a certain price (or end up above it) by a certain date. How do they calculate this?
This chart concerns an option contract, not a stock.
The method of analysis is to assume that the price of an option contract is normally distributed around some mean which is presumably the current price of the underlying asset. As the date of expiration of the contract gets closer the variation around the mean in the possible end price for the contract will decrease. Undoubtedly the publisher has measured typical deviations from the mean as a function of time until expiration from historical data. Based on this data, the program that computes the probability has the following inputs:
(1) the mean (current asset price)
(2) the time until expiration
(3) the expected standard deviation based on (2)
With this information the probability distribution that you see is generated (the green hump). This is a "normal" or Gaussian distribution. For a normal distribution the probability of a particular event is equal to the area under the curve to the right of the value line (in the example above the value chosen is 122.49). This area can be computed with the formula:
This formula is called the probability density for x, where x is the value (122.49 in the example above). Tau (T) is the reciprocal of the variance (which can be computed from the standard deviation). Mu (μ) is the mean.
The main assumption such a calculation makes is that the price of the asset will not change between now and the time of expiration. Obviously that is not true in most cases because the prices of stocks and bonds constantly fluctuate. A secondary assumption is that the distribution of the option price around the mean will a normal (or Gaussian) distribution. This is obviously a crude assumption and common sense would suggest it is not the most accurate distribution. In fact, various studies have shown that the Burr Distribution is actually a more accurate model for the distribution of option contract prices.
Their algorithm may be different (and proprietary), but how I would to it is to assume that daily changes in the stock are distributed normally (meaning the probability distribution is a "bell curve" - the green area in your chart). I would then calculate the average and standard deviation (volatility) of historical returns to determine the center and width of the bell curve (calibrating it to expected returns and implied volaility based on option prices), then use standard formulas for lognormal distributions to calculate the probability of the price exceeding the strike price.
So there are many assumptions involved, and in the end it's just a probability, so there's no way to know if it's right or wrong - either the stock will cross the strike or it won't.