I decided to maybe dink around with the guidance data, inspired by the recent mini-contest. I put together the attached algo, and if one views EPS guidance as a company event within the period of the mini-contest (June 1, 2015 until Oct 1, 2018), there are relatively few companies participating, and the total grows rather slowly (roughly linearly from zero to 150 companies over the contest period).
It would seem that an event-based algo would be best-suited, where, for example, one detects a release of guidance from company XYZ, determines an alpha vector weight for XYZ, and holds for N days (e.g. N = 5 days), and then closes the position (i.e. sets the alpha vector weight for XYZ to zero).
Am I on the right track here? Or should I be thinking about the problem differently? It could be a bit of work to write an event-based algo framework, so before I try it, I thought I'd get some advice from the crowd.
Also, as an architectural change, I'm thinking of writing the factor outside of Pipeline--just export the data to before_trading_start and do the computation there using standard Pandas/numpy/libraries, versus the Q API. Any opinions?