Skip to content

Major modularization update

Choose a tag to compare
@OpenSourceAP OpenSourceAP released this 19 Mar 15:10
· 228 commits to master since this release
  • Code is entirely rewritten
    • Now each data download is in its own file, and each signal construction is in its own file.
    • Most of the signal files can be run in parallel.
    • If signal file errors out, main program moves on to the next file (try-catch)
    • Huge improvement to usability
      • Easy to find which signal file you’re looking for
      • Easy to improve any individual signal file due to lack of dependencies
  • Modular signals data structure
    • Each signal has its own firm-month csv (E.g. STreversal.csv has a short-term reversal signal for each permno-month in CRSP)
    • Some improvement to usability:
      • Allows for modular updates to the full dataset
      • Also allows users interested in specific signals to simply retrieve the signal
  • Simplified portfolio code
    • Replaced complicated balanced matrix portfolio tracking with simple conditional weighted mean construction
    • Inputs are now just individual single signal csvs instead of the full dataset
    • Constructs all quantile-portfolios and long-shorts together
    • Accommodates daily portfolios (though signals must still be monthly)
    • Accommodates discrete signals as a generalization of binary
  • Some improvement in transparency and error checking
    • Ensures consistency between all-quantile portfolios and long-shorts
  • Improved classification and documentation of signals in SignalDocumentation.xlsx
    • For each signal, we hand collect the number of the table with predictability evidence, test in the table (port sort, regression), sign, t-stat, mean monthly return, quantile, portfolio assignment period, and filters.
    • We use the above to categorize signals by predictability in the original paper and signal replication quality. As a result, these categories are more true to the original papers.
  • Improved signals and new signals
    • Improved/Fixed:
      • EarningsStreak (Loh and Warachka, formerly EarnIncrease)
      • DivSeason (Hartzmark and Salomon, formerly DivInd)
      • UpRecomm / DownRecomm (Barber et al, formerly UpForecast / DownForecast)
      • MomSeason* and MomOffSeason* (Heston and Sadka, formerly MomSeas*)
      • DivYieldST (Litzenberger and Ramaswamy, formerly DivYield_q)
      • Coskewness (Harvey and Siddique)
      • EquityDuraion (Dechow, Sloan, and Soliman)
      • Governance (Gompers, Ishii, Metrick)
      • DivInit and DivOmit (Michaely, Thaler, and Womack)
      • MS (Mohanoram)
      • ZScore, OScore (Dichev)
    • New signals
      • CoskewACX (Ang, Chen, and Xing)
      • AnalystRevision (Hawkins, Chamberlain, and Daniel)
      • FEPS (Cen, Wei, and Zhang)
      • OrderBacklogChg (Baik and Ahn)
    • Removed a couple of redundant signals