// QUANT · FILINGS NLP
10-K tone as a signal: statistically zero
SEC EDGAR ingest, MD&A and Risk-Factors extraction, Loughran-McDonald tone and hand-rolled readability, then an honest point-in-time test. The tone spread does not survive Deflated-Sharpe deflation.
00Overview
The idea that pessimistic 10-K language predicts returns is a classic finance-NLP result, and a classic place to fool yourself with look-ahead. This project does the pipeline properly, then runs the point-in-time tone-spread test with multiple-testing deflation, and reports the null.
01Method
- SEC EDGAR ingest behind a <= 10 req/s token bucket.
- Anchored header parsing of the MD&A (Item 7) and Risk Factors (Item 1A).
- Loughran-McDonald fixed dictionary (negative, positive, uncertainty, litigious, constraining fractions).
- Hand-rolled Gunning-Fog, Flesch-Kincaid and SMOG readability.
- A point-in-time panel join with purged and embargoed walk-forward, then Deflated Sharpe.
02The honest finding
The out-of-sample tone-spread Sharpe is -22.51 net of cost; the Deflated Sharpe over 36 trials is 0.0006, and the HAC p-value is 0.00 in the wrong direction. The pure verdict reads False: tone does not survive multiple-testing deflation as a tradable signal.
Deflated Sharpe0.0006
OOS spread Sharpe-22.5
Verdictnot tradable
03Stack & links
SEC 00 · INDEXENDARK⌘K / ? help