Skip to content
← All articles
Project introduction

Following financial news through AINewsTracker

Listen to the audio story

From a news feed to a backtest · 2:20 · AI-written script, synthetic voices

Transcript

Ava: A headline says a company is doing great. Another says it's in trouble. How do you know which one actually moved the stock, or whether either mattered?

Andrew: That's a tough one. Is that what AINewsTracker is for?

Ava: Sort of. Antoine's write-up is about a FastAPI service that turns financial news into records you can search, analyse and compare with market data. It's not a magic predictor. It's plumbing that keeps things traceable.

Andrew: Okay, so how does a story travel through it?

Ava: A request starts a collection job. The news service pulls feed content and creates article records. A metrics service analyses the text, and the result is stored in MongoDB. Routes take the HTTP requests, services do the work, repositories hide the database. Redis handles caching.

Andrew: Neat separation. What does the analysis actually produce?

Ava: According to the documentation, a sentiment label and score, detected tickers, a summary and topic labels. And here's the part Antoine cares about: each article keeps its source, its URL, its publication date and its text next to those fields.

Andrew: So you can trace a sentiment label back to the publisher.

Ava: Exactly. And the ticker lets you connect mentions across articles without treating every spelling of a company name as a different business.

Andrew: Then there's the backtesting side. The strategy route sends requests to a trading module, so you can test strategies on history.

Ava: But he's careful there, isn't he?

Andrew: Very. He says he'd read the original text beside the outputs before using them. A summary can drop a condition, and a company mention doesn't mean there's a tradable event. Labels are inputs to an experiment. They don't prove a news item caused a market move, and a backtest doesn't guarantee future performance.

Ava: He even gives a checklist: collection, text analysis, strategy input, backtest output. For each one, what to inspect. Like whether the data was actually available at the moment being tested.

Andrew: And the article says plainly that it presents no measured accuracy or trading returns.

Ava: Good honesty. So the takeaway is keep the source attached to the analysis.

Andrew: Right. The full write-up has the architecture diagram, with every node linking to its source file.

AINewsTracker
Table of contents

AINewsTracker turns financial news into records that can be searched, analysed and compared with market data.

The project is a FastAPI service with separate routes for news, articles, companies, users, data seeding and trading strategies. Routes receive HTTP requests; services and repositories handle analysis and storage.

1. From a feed to an article

A news request starts a collection job. The news service retrieves feed content and creates article records. The metrics service analyses the text, and the article repository stores the result in MongoDB.

ResponsibilitySource file
Receive the requestapp/routers/news.py
Collect newsapp/core/services/news.py
Analyse the textapp/core/services/metrics.py
Store articlesapp/core/repo/article.py

Routes describe the API surface, models define stored data, services perform the news work, and repositories isolate database access. app/main.py also configures Redis caching.

AINewsTracker article processing flow

AlgoETS. (2026, November 5). Article processing flow. AINewsTracker repository, docs/diagrams/out/article_processing_flow.svg.

Original processing diagram[1].

2. Keep the source attached to the analysis

The documentation’s data overview[2] connects four records: a news source produces articles, comments belong to an article, and company records identify the businesses it mentions. Source metadata includes language and country. Articles retain their URL, publication date and text alongside analysis fields.

That separation makes a result easier to inspect. A sentiment label can be traced to an article and its publisher. A company’s ticker provides a way to connect mentions across articles without treating every spelling of its name as a different business.

3. What the text analysis produces

The documented NLP outputs include a sentiment label and score, ticker detections, a summary and topic labels. These fields answer different reading questions: which company is discussed, what the article says, and how its language is classified. The documentation’s sample records illustrate the model; the Pydantic classes define the actual fields.

I would inspect the original text beside those outputs before using them as strategy inputs. A summary can omit a condition, and a company mention does not establish that the article concerns a tradable event. The source URL and publication date therefore belong in the review path.

4. Analysis and backtesting

The project documentation describes sentiment analysis, topic classification, ticker allocation and article summarisation. The strategy route sends backtest requests to app/core/trading/strategy.py.

These labels are inputs to an experiment. They do not prove that a news item caused a market move, and a historical backtest does not guarantee future performance.

A useful review separates the data stages:

StageWhat to inspect
CollectionPublisher, source URL, publication time and retrieved text
Text analysisDetected companies, labels and summary against the original article
Strategy inputWhich observations were available at the point being tested
Backtest outputThe chosen period, assumptions and the strategy’s reported result

This review checks the data available to the strategy, its assumptions and its reported result. The article presents no measured prediction accuracy or trading returns.

5. Read the architecture

The complete GitDiagram includes route registrations, models, repositories, seeders, MongoDB, Redis and the trading branch. Each node links to its source file.

References

  1. AlgoETS. (). Original processing diagram. [Source file or documentation] github.com.
  2. documentation’s data overview. (). [Web page] algoets.github.io.
  3. Interactive GitDiagram. (). [Web page] gitdiagram.com.
  4. AlgoETS. (). AINewsTracker. [Software repository] github.com.
  5. Published documentation. (). [Web page] algoets.github.io.

References use this article’s publication date.