A recent paper by Robert Novy-Marx discusses problems with multi-factor investment research. The author highlights how biases enter the research process by not accounting for the number of variations that were considered before arriving at a final model.
The key to eliminate this bias is to avoid incorporating future information. This is basic statistics 101. It’s easy to say go long Apple in 2006 with 10 years’ hindsight, less so with only the information at hand, at the time. Signals are similar: the question is whether you would put weight on a signal only with the information available at the time.
This requires a move away from the usual static weight approach to a more honest weights algorithm. As it’s almost impossible to go back in time and ignore all subsequent information to arrive at a gut-derived answer (the way it usually is arrived at) it must be quantified. Many algorithms are available (examples here), but the majority of them will probably rely on a combination of performance and risk to date, with either performance or risk getting greater emphasis depending on the algorithm. While some algorithms may be found that explicitly forecast factor reversal, the design of most factor investing is to be permanently on one side of the trade, which makes this a trend-following style, just on a different level of abstraction.
This offers a better solution than the main remedy in the paper. While increasing thresholds for t-statistics is one solution to go by, avoiding any peek-ahead in the selection and weight setting process in the first place is probably much better. Using ever evolving weights, the in and out of sample are always separated. However many versions of a signal you construct, you are free to select the best one and optimize the weight in the past, the true evaluation always happens out of sample with previously unseen data. Machine learning in time series analysis should follow a similar pattern.
Multi-factor investing is a positive thing. After decades of academic studies proclaiming that markets are efficient after taking (ever decreasing) transaction costs into account, you can avoid a big chunk of these by netting trades between strategies. At the same time, you can boost risk adjusted returns. You can dial up and down what you care about more (diversification or return) based on the weights algorithm you choose. You’ll likely end up in a better place than just using a single factor.