Thinking global, living local

How to use the news tracker: score headlines and check them against stock picks

October 18, 2026

Score market news with a plain finance word list and see whether the news agrees with what your stock screens picked.

Open-source tools · How-to · News sentiment

How to use the news tracker: score headlines and check them against stock picks

Skip to article content
Text Size

Revised · v1.0.0 · what changed

30filter picks checked in the saved convergence report
7 / 3 / 20convergent / neutral / no news
440rows in the India validation history (27 Aug to 17 Oct)
1news unit test passed

Code: github.com/herrrickshaw/global-market-data

Watch the walkthrough

Watch on YouTube: youtu.be/_WvtZtpm1zw

What it is for

There is no single repo called 'global news tracker'. The demo treats it as a set of files: pipeline_news.py in global-market-data (live news sentiment), news_sentiment.py in global-market-scanners (a finance word-list scorer), and several news_*.py scripts in the market-pipeline code.

The problem it addresses: general news feeds only match a ticker by name, so a quiet stock gets zero articles, and having no coverage looks the same as neutral sentiment. The tracker scores headlines and article bodies, then labels each screen pick as CONVERGENT (news agrees), DIVERGENT, NEUTRAL or NO_NEWS.

The pipeline has four stages: market mood, per-ticker scoring, a forward log of sentiment over time, and a join to realised price moves. Free sources are RSS feeds from Moneycontrol, Economic Times, BusinessLine and LiveMint.

Who it is for

  • People who want a transparent, keyless sentiment score to sit next to a stock screen
  • Engineers building a news-versus-price dataset over time
  • Researchers who want to see how coverage differs across screening strategies
Not for.
  • Predicting prices. The demo measures news attention, not returns
  • Anyone expecting a polished single product: this is a set of scripts across repos
  • Investment decisions. Not investment advice

What you need

RequirementWhyHow to get it
Python 3 and pipruns the scorer and testspython.org (the demo used Python 3.14.7 with pytest 9.1.1)
Packages from requirements.txtpandas, numpy, yfinance, requests and others in each repopip install -r requirements.txt in each repo
Network accesslive RSS feeds and yfinance headlines. The saved reports and tests work offlinenone needed for the tests
News API keys (optional)Marketaux, Alpha Vantage, Finnhub and NewsData.io add more sourcesset the keys as environment variables. The free RSS sources need no key
Not neededno GPU, no database, no language modelthe scorer is a word list, not an LLM

Get the code and an AI assistant

You do not have to be a programmer. Get the repository, give it to an AI assistant, and ask in plain language. Any of these routes works:

ToolWhat you needBest for
GitHubFree account to fork or star; git to clone, or the green Code button, then Download ZIP, or open in CodespacesGetting the code and keeping up with updates
Claude CodeClaude subscription or API key; run claude inside the cloned folderLetting the AI read and run the whole repo
Gemini CLIGoogle account; run gemini inside the cloned folderThe same hands-on workflow with Gemini
Claude.ai, Gemini or ChatGPT in the browserA chat account; upload README.md and the files you care about (or paste the output of git ls-files)Understanding the project and asking questions without installing anything
Other tools (Copilot Chat, Cursor, Codex CLI)Open the cloned folder in the tool and point it at README.md firstEditing and extending the code
git clone https://github.com/herrrickshaw/global-market-data.git
cd global-market-data
claude      # or: gemini

Install

  1. Clone the scanners repo, which holds the scorer and its test
    git clone https://github.com/herrrickshaw/global-market-scanners.git
    cd global-market-scanners
  2. Create a virtual environment and install requirements
    python3 -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
    pip install pytest
  3. Optional: clone the repo with the live pipeline
    git clone https://github.com/herrrickshaw/global-market-data.git

Quick start: commands and what you should see

Run the news scorer's unit test

pytest tests/test_core.py -k news -v

1 selected, 118 deselected, test_news_sentiment_lexicon_scoring PASSED in 1.92 seconds.

Look at the saved crawler sample, and the other saved reports in the market-pipeline reports folder

head news_crawl_sample.csv

10 saved rows: 7 scored from headlines and 3 from article bodies, for example RELIANCE and INFY, with scores between about -0.10 and +0.30. The same folder holds news_convergence.csv: of 30 filter passes, 7 CONVERGENT (for example ADANIPORTS, ADANIGREEN), 3 NEUTRAL, 20 NO_NEWS, no DIVERGENT. In strategy_news_validation_history.csv for India on 17 October 2026, Darvas picks were covered 7.7% of the time (26 of 339, lift 1.90) and Piotroski 1.2% (4 of 334, lift 0.30).

Ways to use it

MethodHow it works
Command linenews_sentiment.py (--tickers, --market, --top) and pipeline_news.py (--mood, --tickers, --monitor, --join, --watchlist) take these flags per their file headers. These live commands were not run in the demo.
Library importnews_sentiment.py exposes score_text and score_headlines, which are pure functions covered by a unit test.
Saved reportsRead the CSV outputs (convergence, strategy validation history, crawl sample) in any spreadsheet.
Via an AI assistantAsk the assistant to read the news_*.py files and explain or run them for your tickers.

Sample prompts for your AI assistant

Copy, paste and edit the parts in [brackets].

  • Read news_sentiment.py and explain how the finance word list turns a headline into a score between -1 and +1.
  • Run the news unit test in tests/test_core.py and tell me what it checks.
  • Read pipeline_news.py and explain the four stages. Which ones need a network and which need API keys?
  • Score these headlines with news_sentiment.py: [paste headlines]. Show the positive and negative hits for each.
  • In the convergence report, why would 20 of 30 picks have no news, and why is that not a good sign?
  • List the weak points in how tickers are matched to headlines. Two different tickers got the same Arvind Fashions headline.

Limits and honest caveats

  • The identification of 'global news tracker' with these files was an assumption. No repo has that name.
  • The news_pipeline_results folder was empty, so live runs were not performed in the demo. It used saved reports and offline tests.
  • In the convergence file, 20 of 30 picks had no news. Absence of coverage is not good news.
  • Some matches look loose: ARVINDFASN and AARNAV both received an Arvind Fashions headline.
  • The word list is compact and gives 0 to any headline without finance words.
  • Attention is not returns. The strategy validation report does not show whether any strategy is profitable.
  • News sentiment is noisy and may lead or lag price. Not investment advice.

Sources: pipeline_news.py header in github.com/herrrickshaw/global-market-data; news_sentiment.py and tests in github.com/herrrickshaw/global-market-scanners; saved reports from the market-pipeline code; demo run on 18 October 2026.

Revision history.
  • v1.0.0 — 18 October 2026 — first published.

About this article: Researched, written and edited by Umashankar Triplicane Dwarakanathan, with AI research assistance; every figure is meant to trace to the primary source cited. See the Editorial Policy for how sourcing, AI use and corrections work.

Umashankar Triplicane Dwarakanathan
Contact Us
Umashankar Triplicane Dwarakanathan
Investment Promotion & Energy-Sector Leader · Chennai, Tamil Nadu, India
LinkedIn → GitHub → Email +91 78273 81696
How this site works

Data-led analysis of India's trade, currency and industrial policy. Every article is built from primary official sources, and every figure links back to the release, table or filing it came from.

Sources. DGCI&S TradeStat (imports/exports, HSN-wise) · PIB (government press releases, January 2017 to today, refreshed daily) · RBI (circulars, balance of payments) · MoSPI (CPI/WPI, IIP) · PARIVESH (environmental clearances) · CCIL (bond yields) · BIS (policy rates) · SEBI, NSE/BSE and SEC filings for company data.

Interpretation. Figures carry their vintage and retrieval date; estimates and press-reported numbers are labelled as such; where sources disagree, both are shown. Corrections are made visibly, never silently. Articles are written with AI assistance from the cited sources — AI-generated text can misstate figures even when working from real material, so verify any number that matters to a decision against the linked primary source.

footer

Browse all articles by topic

Every piece on this blog, grouped. Or read the full index.

Agriculture & FertilisersAI ToolsChemicalsClimate & CarbonEnergy & FuelsGas & LNGImport SubstitutionIndustrial PolicyMarkets & FinanceMobility & EVPrices & InflationTextilesTrade & Tariffs

Each topic is a live archive page that updates itself as pieces are labelled. It replaces a hand-kept list that had fallen 18 articles behind.