A stock chart is a common tool for displaying financial data or other time-series related data where the data can be streaming by the minute or even by the second, and you also may have historical data that can go back hours, days, months, or even years.
Here are three examples from different vendors: google, yahoo, and morningstar looking at a sample stock, in this case the Toro Company.
Google and Morningstar both use a draggable slider, while Yahoo does not.
On the face of it, this all seems relatively straightforward. In actuality, I think the UX decisions get complicated here rather fast once you start interacting with the zooming tools and/or slider, if present.
The TORO stock has data going back prior to 1980, but that is not what the range slider on Google and Morningstar indicate at first. Then once you start dragging the range slider, the values beneath the range slider itself start switching on you in a surprising (not in a good sense) fashion.
Perhaps the problem the ux designer faces here is the end-user has two ways he/she could simultaneously zoom in on the data. One zoom could be considered a "meta-level" zoom: e.g., I want to look at data for the past 15 days in a stock that has 45 years worth of data. Fine. Zoom into that range. But next, within those 15 days, maybe I want to zoom at a daily level or an hourly level. Should the same range slider handle be performing both of these functions? That's what Google and Morningstar try to do, and this is what yields funky behavior in the range slider from the end-user's perspective.
Yahoo dodges this issue by allowing the user to pan the data, and once you select a zoom level, you are locked into that zoom level. You can still adjust the zoom (within a selected zoom) by using the "plus" and "minus" buttons they give you, and I think this still avoids the surprises you get from the Google and Yahoo sliders.
I would love to know if there have ever been usability studies or guidelines issued on this subject. And maybe there is another approach to stock charts that gives a simpler user experience?
I have seen one case where a person made two range sliders: one for the meta-range, and the other for the range within that meta-range. Maybe this is a valid solution, but it seems too complicated to me; it's too much work for the end-user.