Like many of us here, I have done a lot of experimentation, both in Q and elsewhere, in search of innovative sources of alpha. As Max and Delaney have suggested, hinted, advised, informed, and told us on numerous occasions, with regard to algos for Q and the quest for allocation, we should not only consider price data; we should think about non-price data, about alternative data, and we should consider factors other than price. OK, thanks, got the hint. Non-price data is worth looking at. Anyone hoping to win the daily contest using only moving average crossovers is probably not really in the running. However fortunately, in addition to sentiment and other non-price, non-fundamental data, we do also have some very nice fundamental data, originally with Morningstar, and now with the new addition FactSet.
First of all, let's just review what we are trying to do. Assuming we are using an Equity Long Short (EqLS) strategy as the basis for our algo, what we want is to identify and separate the set of stocks going up or likely to imminently go up in price (for our Long side candidates) and stocks going down in price or about to do so (for our Short-side candidates), and preferably we also want to identify those moving most strongly either up or down. Now we know that some of the price movement will be related to momentum and other "technically" (as in Technical Analysis, TA)-driven factors, often but not necessarily over a relatively short-period timeframes, while other aspects of the price movements will be due to "fundamental" factors, which generally manifest themselves over a longer timeframes (except for sometimes just after earnings reports or the release of other corporate info). As Warren Buffett famously said, in the short-term the market is like a voting machine, while in the longer term it is like a weighing machine. i.e. irrespective of short-term price movements, in the longer term stock prices do tend to align themselves with the underlying fundamental factors.
As traders and/or algo writers, we might as well try and get as many factors (technical, fundamental, anything else) stacked up on our side as we can. So, in an EqLS portfolio setting as we have here at Q, what we would like to do is use fundamentals, i.e. all the stuff from corporate financial statements, and anything else we can think of, to estimate what i will here refer to as "stock quality" in the sense that "good quality stocks tend to rise in price" ( sooner or later), while "poor quality stocks tend to fall in price". My contention, and that of fundamental analysts in general, is that almost everything in corporate financial statements can give us clues as to "stock quality" with, in general, the relationship that "good quality --> rising price" and "poor quality --> falling price".
So now what constitutes "stock quality"? Well obviously poorly managed stocks, stocks that are financially unsound, are unprofitable, etc these are NOT "quality" stocks. There is a lot of info, both explicit and also more subtle, contained boldly or perhaps hidden cunningly in the corporate financial statements to help us. One of the problems however is that many of these pieces of info, which are potential "factors" for us to find, are inter-related in some ways. What we would like is an input data set of not-too-many factors, which are not only new but also potentially as independent of (i.e. orthogonal to) each other as possible. The problem is that when we input something into our pipeline as a factor, it interacts with other factors, sometimes in subtle or unexpected ways.
Remember that each of the "fundamentals" items (potential new factors or inputs to factors) is available to us on a stock-by-stock basis. Sometimes some data is late or missing and, because of the presence of NaNs in the database(s) there can sometimes be very significant differences in results between an algo with a fundamental item omitted altogether, or the same algo with the item multiplied by zero to "comment it out", and those are definitely NOT the same. I spent a long time investigating this (with the help of the friendly Q Help staff) in the case of the effect of dividends. If dividends are not paid then is the div data 0 or na?, and if we decide that dividends are not important , then do we give this item weight 0 or do we omit reference to it altogether? The results will be different and may lead to some stocks being excluded from further consideration in other parts of our algo.
But now let's assume we have got over these sorts of problems. Because of complicated interrelationships between different data fields in the funda DB, sometimes a piece of funda data on its own may not appear to be very important, but it then becomes important when viewed in the context of other pieces of data. In other words, the impact of different pieces of funda data (for example hypothetical items A, B & C) are not necessarily seen simply as linear combinations of the form: Result = a1* A + b1* B, but rather more like: If A and B but not C then Result = a1* A + b1* B, else if C is present then Result = a2*A + b2*B + c13*A*C, for example. So, even given a set of N (however many you may want to try) different fundamental inputs as potential factors or contributors to new factors, even the order in which we add or remove them to/from our existing set of candidates while testing our algo may be important.
This starts to look like a problem in Experimental Design. It's not just: "WHAT are the best fundamental items to use as inputs for new factors?" but the deeper question of: "HOW can we most effectively go about our search for good combinations of factor candidates?"
Issues around what are the "Common" factors, use of Alphalens, and so on, these are already well addressed in other threads here in Q. However my intention here is to raise a different aspect of the search for alpha, specifically among Fundamentals, and hopefully to elicit a discussion on the importance of exactly HOW we go about our search, considering the inter-relationships of potential Fundamental input data.
Would any experts in Experimental Design procedures care to address this topic? If so, then thanks in advance for your ideas :-)