Earnings journal

Discussion in 'Journals' started by TheBigShort, Jan 13, 2019.

  1. No, I don't know if either of them have a blog or social media feed.

    I would go directly to the one-hot encoding. The one-hot encoded columns are your dummies. The dummy col for AAPL, for example, has 1's in the AAPL data rows and 0's in all other tickers' rows. Each ticker has a dummy column. Then you are fitting on the interaction terms. Similar to how, if you want your GARCH model to treat downside rtn^2 differently from upside, you'd add a downmove-dummy that is one when rtn is negative and zero otherwise, then add the interaction downmoveDummy * rtn**2 when fitting the model (you could also add an upmoveDummy but that is usually considered redundant -- see my previous post concerning lda/cca for when it is not).


    No. If you want the vol partial fixed effect, [edit: this was a mistake, the interaction term produces the fixed coeffs, the dummy alone produces the fixed effect/intercept] you would substitute the five (assuming you are modeling the 5 FAANG tickers) ticker-specific dummies * vol (5 cols now) for the single vol col. However vol has common enough dynamics among the FAANG's that I would include it in the common effect RHS cols. Or do both -- have a common vol effect (intercept) plus the fixed effects; though this might be overfit and I also suspect, if you have normalized your inputs properly, that the vol partial common intercept will be arbitrarily close to zero.

    Edit: I should mention that the Diebold panel ridge regression suggestion for eliciting un-averaged-out fixed effects (as well as, potentially, ticker-specific coefficients) will produce penalized (shrunken) ticker-specific intercepts. This is important to keep in mind as usually, with ridge regression, the intercept is not penalized.

    Also, to clarify, the dummies alone produce the ticker specific effects (intercepts), the interaction terms with the dummies * predictors produce the ticker-specific coefficients, and the predictors alone produce the common coefficients. A column of ones added to the RHS produces the common interecept (effect).

    And you'll need a full dummy encoding even though the full set of dummies do not form a basis -- I believe glmnet will use ginv instead of solve so that shouln't be a problem.
     
    Last edited: Sep 30, 2019
    #721     Sep 30, 2019
    .sigma and Magic like this.
  2. This statement is correct as it stands. Sorry, I mis-remembered the Diebold blog post (it's been a few years since I last read it). The ticker-name col in your data frame would be encoded as Factor (1,2,3...etc) rather than String. Then one-hot encoded. Then run ridge regression. This will give you the regularized (shrunken) fixed effects (ticker-specific intercepts). That is the extent of Diebold's suggestion. If you want fixed (ticker-specific) coeffs, you'll need to add the interaction columns I mention in my post above. Somehow I remembered Diebold including interaction terms when, in truth, he did not. I also remember him discussing the ridge regression data-augmentation trick... but I can't find any mention of that on his site when I search for it now.
     
    #722     Sep 30, 2019
  3. Magic

    Magic

    Dense stuff guys!! Sounds like progress is being made :)

    Don’t have much to contribute via the modeling, but my first thought when you started discussing Hi-Lo ranges was that it might be an easy factor to pick up for the vol gauge. I try to think if a new metric would already be captured in the usual implied / avg move spread, and H-L might not be in there, at least depending on how much it expands from earning to earning. Seems feasible that if the range expands that would be better for short vol and vice-versa.

    Perhaps perhaps in addition to shrinkage; I wouldn’t be surprised if the width of the expected range has a slight correlation to the magnitude of the move regardless of its relation to the last quarter’s outcome. Also wonder if the distribution of the estimates compared to the bounds of the range has an effect on the direction or strength of the move. Like if most estimates are clustered near the low of the range with one topside estimate, might be different than a more normal distribution.
     
    #723     Sep 30, 2019
    Adam777 likes this.
  4. oldmonk

    oldmonk

    #724     Sep 30, 2019
    TheBigShort likes this.
  5. oldmonk

    oldmonk

    I think it's a good idea to look at these numbers, although I would approach it in a different way. On first glance, I agree with Magic that a wider range of the EPS/Rev Hi-Lo estimates could indicate more uncertainty priced into the earnings vol, which would make it a good short vol candidate. As a preliminary way to test this, I would regress the magnitude of the post earnings price reaction against the normalized width of the EPS/Rev Hi-Lo range and see if that has any significance. If the coefficient is significantly negative, this could be another weak predictor we could add to our existing models.
     
    #725     Sep 30, 2019
  6. oldmonk

    oldmonk

    upload_2019-10-1_1-29-59.png
    The graph shows what I mean. The Hi-Lo Range (normalized by dividing by the median EPS estimate) is a very weak predictor of the magnitude of the earnings jump. This graph only includes a few points (a few FAANG stocks since 2012), but I've run the regression over my entire database (~12,000 valid points). The coefficient is negative with a significant t-statistic (-3), but its magnitude is so small that it's not worth adding to my model. Still an interesting dataset though, and may be worth looking at in some other way.
     
    #726     Oct 1, 2019
    .sigma and TheBigShort like this.
  7. TheBigShort

    TheBigShort

    Thanks bro! Kev might find this interesting as well.
    It seems like Trevor is enjoying life right now LOL. I thought he was the Crocodile Hunter at first glance!
    trevor.PNG

    As usual thanks for all the insight Kev. The results turned out amazing! I am doing a video that I will post here. It's too dense to type all my questions and you might be able to help further if you see my step by step process. The video is 1 h, but I will edit it down to 30 min. Once I built the model the only 2 unknowns are rev surprise and earn surprise. So I simulated a multivariate distribution with random earnings surprises and revenue surprises combos. Formula is mvrnorm(1000, mu = c(mu1, mu2), Sigma = matrix(c(sd1^2, sd1*sd2*rho, sd1*sd2*rho, sd2^2), 2). After re reading what you said I got the model up to .483r^2. I built a forecast distribution for AAPL and the results look amazing. I think this is a big move forward for earnings forecasting! Here is my AAPL earnings distribution forecast given parameters: iv30, hv20, eventImpliedVol, rev surprise, earn surprise, px change 1 week, px change 1 day. However, I think I need to shift the plot to the right a few points due to the non 0 mean for surprises (still working on it).

    Screen Shot 2019-10-01 at 1.30.43 AM.png




    Definitely! I am also noticing that the change in event vol leading up into the event is an important factor. I am going to add the last 20 days of the implied move to the Equity Screen.
    However, what Kevin helped me on is actually pretty amazing. We simulate a bivariate distribution of Revenue and Earning Surprises and add them as inputs to the ridge regression. That way we are able to build a nice distribution of a companies moves after the event. I am doing a video for this and hopefully you guys can help me push it further.

    The earnings/guidance band will be my next project. However, I will need to find a way to get good historical data for this. Bloomberg does not have it.


    Definitely!As I mentioned to magic, its hard to find historical estimates. I would like to incorporate guidance band as well. Does your data provider have any of this?


    btw here is the data I used. I was not able to go to the terminal today so this is a smaller data set.

    px.db is price change the day before the event.
    px.wb is price change the week before the event.
    px.twb is price change two weeks before.
    beat is if it beat or missed earn.
    up down is direction of stock.
    eps.adj.surp is adjusted earnings surprise
    rev.surp is revenue surprise
    eps.gaap.surp is earnings GAAP surprise
    eventVol is the implied event volatility.
     
    Last edited: Oct 1, 2019
    #727     Oct 1, 2019
  8. TheBigShort

    TheBigShort

    OM where did you get this data? Any chance you can find historical guidance hi/lo band data as well?
     
    #728     Oct 1, 2019
  9. oldmonk

    oldmonk

    The consensus estimates are from Zacks in WRDS. They don't have guidance though.
     
    #729     Oct 1, 2019
  10. TheBigShort

    TheBigShort

    Hey guys I have 20% of my net liq in the Oct18/25 127 TEAM Calendars both put and calls avg of $1.61. Just thought, I would post it here so you guys can sweat it out with me :D. It looks like I am the only volume for the calendars. Wish me luck!
     
    #730     Oct 3, 2019