to your HTML
Add class="sortable" to any table you'd like to make sortable
Click on the headers to sort
Thanks to many, many people for contributions and suggestions.
Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
This basically means: do what you want with it.
*/
var stIsIE = /*@cc_on!@*/false;
sorttable = {
init: function() {
// quit if this function has already been called
if (arguments.callee.done) return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// kill the timer
if (_timer) clearInterval(_timer);
if (!document.createElement || !document.getElementsByTagName) return;
sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
forEach(document.getElementsByTagName('table'), function(table) {
if (table.className.search(/\bsortable\b/) != -1) {
sorttable.makeSortable(table);
}
});
},
makeSortable: function(table) {
if (table.getElementsByTagName('thead').length == 0) {
// table doesn't have a tHead. Since it should have, create one and
// put the first table row in it.
the = document.createElement('thead');
the.appendChild(table.rows[0]);
table.insertBefore(the,table.firstChild);
}
// Safari doesn't support table.tHead, sigh
if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
if (table.tHead.rows.length != 1) return; // can't cope with two header rows
// Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
// "total" rows, for example). This is B&R, since what you're supposed
// to do is put them in a tfoot. So, if there are sortbottom rows,
// for backwards compatibility, move them to tfoot (creating it if needed).
sortbottomrows = [];
for (var i=0; i

Really. We hated it. The only reason we put up with it for so long was because of the early success we had in applying it.

But fortunately, it finally turned out to be a dead end, which means that we can now uncomplicate our math and pursue other means of dealing with the echo effect.

To briefly recap the situation for those who have only recently discovered our brand of analysis, our model of how stock prices work use historic stock price and dividend data as the base reference points from which we project current and future stock prices. Since we first discovered the fundamental relationships behind our model in December 2009, we've been fairly successful in anticipating the future trajectories that stock prices might follow.

But not perfect. Half of the issue we have is attributable to what we've described as noise events - the random onset of non-fundamental factors that cause stock prices to temporarily deviate away from the main trajectories they might otherwise follow.

We're okay with that kind of noise event. We know enough about them now to be able to extract some interesting insights into what drives stock prices while they endure.

The other half of that issue is attributable to the effects of the noise events of the past, which we refer to as echoes. Because our math incorporates historic stock price data, a portion of the alternative trajectories it projects is driven by the path that stock prices took in the past. And that's where the echo filtering technique we've been testing out since November 2013 is now coming up short, because it's falling well short of compensating for the biggest noise event of 2013: The Bernanke Noise Event, the first and most significant noise event that drove volatility in stock prices in 2013.

For clarity - the shaded gray region on the chart represents the trajectory our model predicted stock prices would follow in 2013. The major deviations from that general trajectory are noise events, where we've also identified their specific causes.

Now, let's look at our alternative futures chart for the second quarter of 2014, where we're showing what our non-filtered method predicts, since that is running closer to the actual path that stock prices are taking than our echo-filtered forecast. Note especially the difference between what our model forecasts and the actual trajectory that stock prices have taken in the last week, as we've run into the anniversary of the Bernanke Noise Event:

Our model's forecast during this period is echoing the trajectory that stock prices followed during the Bernanke Noise Event - but clearly, that event from the past is not affecting today's stock prices.

Nor should it. If we've learned anything, it's that stock prices are primarily driven by future expectations - the main challenge in forecasting them is identifying which expectations of the future are driving them. That's also not to say that the events of the past cannot influence today's stock prices, but the way in which they might is not what you might expect, which is something that we'll need to explore separately.

As best as we can tell, there is no new positive noise event currently acting in the stock market, so the deviation between our model's projected values and the actual value of the S&P 500 is fully attributable to the echo effect from the Bernanke Noise Event - an event that ran from 19 June 2013 through 19 July 2013, which marks the point in time at which stock prices resumed following their fundamental-driven trajectory after their major deviation from it.

If we sneak a look at what our model would forecast at the one-year anniversary of the end of the Bernanke Noise Event, if investors continue to focus on the expectations associated with 2014-Q4 in setting today's stock prices, we would reasonably expect to see the S&P 500 reach values near 2100.

But then, that would require no new noise events to send stock prices off to some other level. In the meantime, as the future plays out, we'll be playing with other methods for dealing with the echo effect from past events in our model.

Welcome to the blogosphere's toolchest! Here, unlike other blogs dedicated to analyzing current events, we create easy-to-use, simple tools to do the math related to them so you can get in on the action too! If you would like to learn more about these tools, or if you would like to contribute ideas to develop for this blog, please e-mail us at:

Materials on this website are published by Political Calculations to provide visitors with free information and insights regarding the incentives created by the laws and policies described. However, this website is not designed for the purpose of providing legal, medical or financial advice to individuals. Visitors should not rely upon information on this website as a substitute for personal legal, medical or financial advice. While we make every effort to provide accurate website information, laws can change and inaccuracies happen despite our best efforts. If you have an individual problem, you should seek advice from a licensed professional in your state, i.e., by a competent authority with specialized knowledge who can apply it to the particular circumstances of your case.