Turn the world's news into a measurable trading signal — collected, understood by NLP, and delivered as a live terminal.
No desk can read every wire, RSS feed and report in time to act.
"War in Iran" reads negative — but it sends oil up. Naïve sentiment gets the direction wrong.
By the time a headline prints, the move is mostly done. The edge is in what it means next.
Each stage ships on its own — or as one product. Re-targets to any asset, sector or company by swapping keywords and tickers.
Industrial news ingestion — historical backfill and real article bodies, not just headlines.
| GDELT DOC 2.0 | Historical backfill over any period — thousands of global outlets, no key |
| RSS ×8 · Google News ×8 | Real-time stream from oilprice, Reuters, CNBC, Kitco, mining.com… |
| trafilatura + httpx | Extracts the full article text from each link — SOTA extractor, concurrent |
| yfinance | Prices: WTI, Brent, gold, silver, copper, gas, the dollar index |
| parquet store | De-dupe by URL, incremental — never re-fetches |
Not keyword sentiment — meaning, on neural models, over the full text.
| FinBERT | financial tone per article |
| Price-direction | orients tone to price: war = bullish oil |
| bge-base | 768-d embeddings · novelty |
| spaCy NER | entities + per-entity sentiment |
| Event detection | 10 types: sanctions, supply, rates… |
| BERTopic | 100+ auto-labelled themes |
| Log-odds keyphrases | bullish vs bearish language |
| Impact 0–100 | signal·novelty·event + relevance gate |
| NLP Microscope | token attribution · attention · softmax |
| Composite signal | 0–100 buy / sell index |
One interactive file — an institutional terminal anyone can read in five seconds.
Buy / sell gauge & market mood, Fear-&-Greed style.
Backtest the signal — capital, thresholds, day-by-day play, P&L, trade blotter. No lookahead.
Abnormal sentiment over price with event markers.
The whole news space, visualised.
Price-moving phrases highlighted, links to source.
See exactly why the model decided.
Green = mood stronger than its own baseline, red = weaker. Triangles flag market-moving events; bars below are daily news volume.
Screens from the working prototype · year-to-date sample data · live version updates minute-by-minute.
The signal isn't keyword counting — it's an engineered chain, each step inspectable and validated honestly.
A supply/demand layer maps FinBERT's tone onto the real price direction — so context, not mood, drives the read.
We track deviation from each asset's own rolling baseline — the shift in sentiment, not its raw level.
Every signal acts only on prior-day data and is replayed day-by-day — measured, never curve-fit.
A supply/demand layer flips FinBERT's tone into the real price direction — war & sanctions read bullish for oil.
A PR puff piece scored 61/100 on raw tone. Reading the full text + gating noise drops it to 46 — out of the top tier.
Token-level attribution, self-attention and softmax — every verdict is inspectable, word by word.