Thursday, December 9, 2010

Who, what for and a little how

Active investing is all about finding stocks that will outperform the market (index). Passive investing is basically investing in the total market or some approximation of it such as SP500, DJIA, Russell etc via an index fund. Investment advisors get paid to do active investing and they better beat the market (at least more often than not). Otherwise why pay them 1-?% to get 8% return when you can get that from an index fund which charges you 0.25-0.75%? So money managers are constantly looking for the best (relative to country, market or industry) stocks to add to their portfolios given their investment style or guidelines. Paranumeral is designed to be a tool to aid money managers, and anyone else really, in evaluating potential stocks. It does not limit the money manager to a top X list but instead allows him or her to get another opinion on whichever stock they care for. It also does not broad brush and bucket into buy, hold or sell.

Each query, currently one ticker at a time, produces one number. The closer to zero that number, the closer that stock is predicted to perform relative to the market basket of stocks in the system at the time (~6K for this quarter). The more positive/negative the number the better/worse that stock will perform relative to the market. The prediction time frame depends on the arrival of new information. In essence it outputs a prediction given the latest, and all previous, financial statements for the company and all other companies in the system. The prediction will change as soon as new statements for this company, or any other companies, deemed relevant are loaded in the system. Prices, for given company, market overall or relevant companies, after latest financial statement dates currently do not affect the prediction but may do so in the future.

Saturday, December 4, 2010

Is it any good?

I added the Vs Market link to the Yahoo Finance chart so one can get a feel for how the model performs. The symbol entered and predicted is charted against the three main market indexes. Compare against the appropriate index (e.g. tech stocks are best compared with Nasdaq). The chart is for the latest 3 months. The model currently does not use any data (especially prices) past statement (quarter end) dates. Therefore one can see in those charts whether the company trailed or beat the market (on average over all days since and not necessarily the end date = today) since its most recent quarter end.

Friday, December 3, 2010

Frequently/only asked questions

Q: Several stock I input don't return anything...like biib aapl goog

A: It now responds with bad ticker or missing latest statements. It does not mean it does not have previous quarter/annual filings. Even having those it does not make sense to predict when lacking info from current income, balance sheet and cash flow statements. There are roughly 5.5k tickers with Q3 info but as noticed it does not have a few popular ones. Seems they filed a little earlier than expected (late October) so will have to look at the master listings and add now. The design is so the system gets each company's statements the day they're published.

Q: I don't know if I just pick crappy symbols, all the ones I did came back negative too

A: The way the production code was implemented (to respond quickly) produced differences from the way the model was built so it is not as accurate as it was in test. That said, it is hard to beat the market so do expect negatives though if sampled randomly and many, many, many times then negatives should come up only half of the time.

Q: Have you done any backtesting?

A: Yes, a random portion of companies (along with all their financial statements going back at least as far as 2005) were preselected for training and another for testing. Several models were built/trained on the training set of companies and then tested on the test set of companies. The model which did the best on the test set is the one in "production" now. There are some differences in how the data was put together for model building purposes and how it is being put together in production (optimized for fastest response time). I hope to get rid of any differences and recalibrate the model soon. I also hope to assemble new data (since the model was trained/tested initially) for additional testing at a scale larger than one company at a time (which is currently done via Yahoo charts showing company price vs market indexes over last 3 month period).