F. HEKİMOĞLU
← cd ~/work/quant
// QUANT · NLP SIGNAL, HONEST TEST

Does r/wallstreetbets predict tomorrow? Mostly no

Turn WSB chatter into a daily per-ticker sentiment signal and test it against next-day returns on a point-in-time S&P 500 universe. Out-of-sample Sharpe is 0.29 against buy-and-hold's 0.94, and it fails the Deflated-Sharpe hurdle.

00Overview

Social-media sentiment signals are easy to make look profitable and hard to make honest. The difference is point-in-time data and multiple-testing correction. This project does both: a per-ticker WSB sentiment signal, tested against next-day returns on a survivor-bias-free S&P 500 universe.

Out-of-sample Sharpe

OUT-OF-SAMPLE SHARPE (2021 to 2022, 5 tickers)
0.94
Buy & hold
0.29
WSB signal

01Method

  • Reddit ingest via Pushshift / PRAW (offline), scored with a finance-augmented VADER lexicon (no transformers).
  • A point-in-time S&P 500 constituent set, so there is no future-survivor selection.
  • An as-of prior-close cutoff and signal.shift(1), with a train-only scaler and a walk-forward purge and embargo.
  • Deflated Sharpe, Probabilistic Sharpe, PBO via CSCV, and HAC (Newey-West) t-stats.

02The honest finding

After a grid search, the in-sample edge largely decays out of sample after costs and the model returns signal_has_edge = False. The Deflated Sharpe (0.26) and the HAC p-value (0.79) both fail their hurdles. What survives is contemporaneous attention-return feedback, not forecasting power.

OOS Sharpe0.29
Deflated Sharpe0.26
HAC p-value0.79no edge

03Stack & links

pythonvaderpoint-in-timedeflated-sharpenlp
SEC 00 · INDEXENDARK--:--:--⌘K / ? help