You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# Free Attention Probe
|
|
|
|
Date: 2026-03-17
|
|
|
|
Goal:
|
|
- Verify that free historical attention/news proxies can be fetched for old events.
|
|
- Run a short-sample sanity check before building anything into Stock Oracle.
|
|
|
|
Sources tested:
|
|
- `Wikimedia pageviews` for historical attention spikes
|
|
- `GDELT Doc API` for spot-check historical news article counts
|
|
|
|
Method:
|
|
- Start from `data/datasets/snapshots/midcap-filtered/test.parquet`
|
|
- Restrict to `earnings_release`
|
|
- Join `ticker` / `issuer_name` from local Postgres
|
|
- Keep only names that are not obvious `{TICKER} Corporation` placeholders
|
|
- Resolve a Wikipedia article title from issuer name
|
|
- Compute `pageview_spike = event_day_views / median(last_10_pre_event_views)`
|
|
- Compare against signed continuation:
|
|
- `signed_cont_3d = sign(reaction_day_return) * fwd_return_3d`
|
|
- `signed_cont_5d = sign(reaction_day_return) * fwd_return_5d`
|
|
|
|
Probe run:
|
|
- command:
|
|
- `python -m apps.tools.free_attention_probe --limit 30 --gdelt-limit 5`
|
|
- output csv:
|
|
- `data/research/free_attention_probe_test_sample.csv`
|
|
|
|
Results:
|
|
- Sampled 30 non-generic test-split earnings events
|
|
- Resolved 22 rows with usable Wikipedia pageviews
|
|
- Raw sample:
|
|
- median pageview spike `1.226x`
|
|
- high-spike group signed 3D continuation mean `+0.0672`
|
|
- low-spike group signed 3D continuation mean `+0.0186`
|
|
- high-spike group signed 5D continuation mean `+0.0693`
|
|
- low-spike group signed 5D continuation mean `+0.0458`
|
|
- corr(pageview_spike, signed_cont_3d) `+0.2646`
|
|
- corr(pageview_spike, signed_cont_5d) `-0.1075`
|
|
- After filtering to higher-confidence mappings and excluding obviously bad article matches, the broad signal became inconclusive.
|
|
- Negative-reaction subset looked more promising than the full sample on 5D continuation, but sample size was too small to trust.
|
|
|
|
GDELT spot-check:
|
|
- Historical fetch works.
|
|
- Exact-phrase matching is fragile without a better company-name resolver.
|
|
- In the small spot-check, valid 3-day article counts were observed for some names, but coverage was too patchy for immediate use as-is.
|
|
|
|
Conclusion:
|
|
- Free historical attention/news data is usable for short-window research.
|
|
- `Wikimedia pageviews` is immediately practical.
|
|
- `GDELT` is viable, but only after better issuer-name normalization and article/entity resolution.
|
|
- Current evidence does not justify adding raw pageview spike directly to strategy scoring yet.
|
|
- The most promising next test is a conditional filter on downside earnings reactions, not a global attention overlay.
|