Why Sentiment Moves Markets
Prices are set by human decisions, and human decisions are influenced by narratives, emotions, and information asymmetry. A company can have identical fundamentals on Monday and Tuesday, but if a major analyst upgrades the stock on Tuesday morning, the narrative shifts and the price responds.
Sentiment analysis quantifies this narrative layer using natural language processing. Instead of reading 10,000 news articles and 500,000 social media posts per day — which no human can do — NLP models process them in real-time and output structured sentiment scores.
The academic evidence for sentiment as a predictive signal is robust. Tetlock (2007) demonstrated that the pessimism level in Wall Street Journal columns predicted next-day market returns. Baker and Wurgler (2006) showed that aggregate investor sentiment predicted cross-sectional stock returns over months. The signal is real — the challenge is measuring it accurately and acting on it correctly.
NLP for Financial Text — From Keywords to Embeddings
First-generation sentiment analysis used keyword dictionaries: count positive words, count negative words, compute a ratio. The Loughran-McDonald financial dictionary (2011) improved on generic dictionaries by recognising that words like 'liability' and 'risk' have neutral or positive connotations in financial contexts despite being negative in general language.
Modern approaches use transformer-based language models fine-tuned on financial text. These models capture context, negation, sarcasm, and domain-specific meaning that dictionaries miss. 'Revenue missed expectations by a narrow margin' and 'revenue catastrophically collapsed' both contain the word 'revenue' and negative sentiment — but the magnitude is radically different.
The Trading Copilot's sentiment check is deliberately simple: it counts positive and negative keywords in recent headlines from news feeds (Reuters, CNBC, AP, MarketWatch and Tiingo, among others) and turns the balance into a long, short or no-edge vote. It does not use a language model, social media, filings or earnings call transcripts.
Financial-specific language models were built because general-purpose ones can misread financial jargon; compare both on your own data.
Source Credibility Weighting
Not all sources are equal. A Reuters report carries different informational weight than an anonymous Reddit post. The system assigns credibility scores based on source type, historical accuracy, and potential conflicts of interest.
Institutional research from major banks and independent research firms receives the highest credibility weight. Major news wires (Reuters, Bloomberg, AP) receive high weight. Financial media (CNBC, FT) receives moderate weight. Social media receives low base weight, but this is adjusted upward for accounts with proven track records — a well-known sector analyst on X/Twitter may have higher credibility than a generic news outlet.
The weighting prevents the system from being overwhelmed by high-volume, low-quality social media noise. A thousand bearish Reddit posts cannot outweigh a single credible earnings report — because the credibility-weighted aggregate sentiment correctly reflects the informational landscape.
Contrarian Signals: When Extreme Sentiment Reverses
The most valuable sentiment signals are often contrarian. When sentiment reaches extreme bullish readings — universal optimism, no bears remaining, 'this time is different' narratives — the probability of a reversal increases sharply. The same applies at extreme bearish readings.
This is not mere contrarianism. It reflects a market microstructure reality: when everyone is already bullish and positioned long, there are no remaining buyers to push prices higher. Any negative surprise triggers a crowded exit. The sentiment extreme itself doesn't cause the reversal — it creates the conditions where a catalyst has outsized impact.
A common way to use this is to track sentiment z-scores - the current reading's deviation from its rolling mean - and to treat readings beyond +2 or -2 standard deviations as contrarian inputs. The Trading Copilot's sentiment check does not do this today; it votes with the direction of the headlines.
Real-Time Processing Architecture
Production sentiment systems often combine several streams - news APIs, social media, regulatory filings and earnings call transcripts - and weight recent items more than old ones, for example with an exponential decay of a few hours for news. Each stream adds cost and noise, so the useful question is whether a stream improves measured outcomes, not how many streams there are.
The Trading Copilot uses news headlines only, scored by keywords as described above.
Sentiment as One Vote in a Consensus
In the Trading Copilot, the sentiment check is one of nine rule-based checks that vote on each signal. Its vote counts like the others; the Consensus Score is the share of votes that agree, not a probability.
Disagreement between checks is information in itself. A strong technical breakout while headlines are euphoric is a different situation from a breakout with neutral news, because crowded positioning makes a reversal more fragile. The reasons behind each vote are shown on the signal, so you can judge such conflicts yourself.
Watch for narrative shifts - a market moving from 'inflation fear' to 'growth concern', for example. These transitions often precede significant directional moves, and no keyword count captures them.