Access to the Estimize dataset will temporarily be shut down starting July 18th, 2016. We've identified an issue with the manner in which we were processing the Estimize dataset that prevented updates to the data starting June, 2016. All subscribers have been notified and we are taking steps to implement a solution. The algorithm here has been updated to use analyst estimates from Zack's Earnings Surprises
This is similar to a post-earnings announcement drift strategy I’ve published a few months ago that attempts to profit off the difference between reported earnings and earnings estimates based off a white paper by Vinesh Jha. Similar to that algorithm, I use crowdsourced earnings estimates as opposed to the Street’s consensus. The one crucial difference between this strategy and my previous one is that here, I use news sentiment to determine my long/short positions.
The idea is that we only trade on securities with a news sentiment that matches the direction of the earnings surprise. For example, only hold positions in securities with both a positive earnings surprise and a positive news sentiment. This also means that there are two crucial factors influence a trading decision after an earnings announcement and in my opinion, the new method provides a much more clear trading signal than earnings surprises alone.
The inspiration for this algorithm came from Steven Hayes, one of our community members.
- Data set: Earnings calendar by EventVestor, crowdsourced earnings estimates by Estimize, and news sentiment by Accern
- Weights: The weight for each security is determined by the total number of longs and shorts we have in that current day. So if we have 2 longs and 2 shorts, the weight for each long will be 50% (1.0/number of securities) and the weight for each short will be -50%. This is a rolling rebalance at the beginning of each day according to the number of securities currently held and to order.
- Capital base: $1,000,000
- Profit and Loss limits are set to 6%
- Days held: Positions are currently held for 8 days but are easily changeable by modifying 'context.days_to_hold'
- Percent threshold: Only surprises between 0% and 6% in absolute magnitude will be considered as a trading signal. These are adjustable using the minimum and maximum threshold variables in context.
- Earnings dates: All trades are made 1 business day AFTER an earnings announcement regardless of whether it was a Before Market Open or After Market announcement
Notes Since Release
Also as an observation (as of June 21, 2016), I've been live trading
this example strategy for a few weeks now and it seems that in the
past 30~ days, it hasn't made any trades. From what I know it could be
for a few reasons:
- The trading signal triggers are not being triggered by the earnings
announcements (perhaps the percent limits are too strict)
- Estimize's data coverage as compared to someone like Zack's is a
lot smaller, so the mix of small coverage and the current time of year
contribute to the lack of triggered trades
Overall, the backtested strategy had relatively few trades and I would
suggest more work is needed to make it robust enough to be holding
positions consistently as opposed to all cash (similar to what Lyth
has worked on).
With analyst earnings surprises from Zacks available soon in pipeline
and estimates to follow, it'll be interesting to see how the two will
compare as the analyst surprises are more robust w/ much wider coverage