Aller au contenu
← Tous les articles
Article

Suivre l’actualité financière avec AINewsTracker

PythonIAFinance
Dans cet article

AINewsTracker transforme les actualités financières en données consultables, analysables et comparables aux données de marché.

Le projet est un service FastAPI avec des routes distinctes pour les actualités, les articles, les entreprises, les utilisateurs, l’amorçage des données et les stratégies de négociation. Les routes reçoivent les requêtes HTTP; les services et les dépôts prennent en charge l’analyse et le stockage.

Du flux à l’article

Le parcours principal commence dans app/routers/news.py. Une route transmet le travail à app/core/services/news.py, qui récupère le contenu des flux et construit les articles. L’analyse de texte se trouve dans app/core/services/metrics.py; le dépôt d’articles enregistre ensuite le résultat dans MongoDB.

flowchart LR
  User["Client API"] --> API["FastAPI<br/>app/main.py"]
  API --> Routes["Routes d’actualités<br/>app/routers/news.py"]
  Routes --> Fetcher["Service d’actualités<br/>app/core/services/news.py"]
  Sources["Sources financières"] --> Fetcher
  Fetcher --> Metrics["Mesures de texte<br/>app/core/services/metrics.py"]
  Fetcher --> Repo["Dépôt d’articles<br/>app/core/repo/article.py"]
  Repo --> Mongo[("MongoDB")]

Les routes définissent l’interface HTTP, les modèles décrivent les données, les services traitent les actualités et les dépôts isolent l’accès à la base. app/main.py configure aussi le cache Redis.

Garder la source avec l’analyse

L’aperçu des données relie quatre objets : une source produit des articles, les commentaires appartiennent à un article et les entreprises identifient les sociétés mentionnées. La source porte notamment la langue et le pays. L’article conserve son URL, sa date et son texte avec les champs d’analyse.

Cette séparation facilite la vérification. On peut remonter d’un sentiment à l’article et à son éditeur. Le symbole boursier permet de rapprocher les mentions d’une entreprise sans traiter chaque variante de son nom comme une société différente.

Les résultats de l’analyse de texte

La documentation illustre un sentiment et son score, des symboles boursiers détectés, un résumé et des sujets. Ces champs répondent à des questions différentes : de quelle entreprise parle-t-on, que dit l’article et comment son texte est-il classé ? Les exemples expliquent le modèle, tandis que les classes Pydantic définissent les champs réels.

Je comparerais ces résultats au texte original avant de les utiliser dans une stratégie. Un résumé peut omettre une condition. La mention d’une entreprise ne suffit pas à établir un événement exploitable en bourse. L’URL et la date doivent donc rester accessibles pendant la vérification.

Analyse et backtesting

La documentation décrit l’analyse de sentiment, la classification par sujet, l’attribution de tickers et le résumé d’articles. La route de stratégie transmet les demandes de backtest à app/core/trading/strategy.py.

Ces étiquettes restent des données d’entrée pour une expérience. Elles ne prouvent pas qu’une actualité a causé un mouvement de marché, et un backtest historique ne garantit pas les résultats futurs.

Pour examiner une expérience, je distingue les étapes suivantes :

ÉtapeÉléments à vérifier
CollecteÉditeur, URL, date de publication et texte récupéré
Analyse du texteEntreprises détectées, étiquettes et résumé comparés à l’article
Entrée de stratégieObservations disponibles au moment testé
Résultat du backtestPériode, hypothèses et résultat annoncé par la stratégie

Cette grille décrit la façon dont j’évaluerais une expérience construite sur le service. Elle ne présente aucune mesure de précision prédictive ou de rendement.

Surface de l’API

La documentation publiée couvre l’ingestion depuis RSS, GNews et des flux nommés; le stockage des articles et la lecture des scores; les entreprises et la recherche par ticker; ainsi que les stratégies pour une ou plusieurs entreprises. FastAPI expose sa documentation interactive sous /api/v1/docs sur le port local documenté 8000.

Exécution locale

cp .env.example .env
pip install poetry
poetry shell
poetry install
poetry run pytest
poetry run uvicorn app.main:app --reload

Docker Compose fournit un autre point d’entrée :

docker-compose up --build

Lire l’architecture

Le GitDiagram complet montre l’enregistrement des routes, les modèles, les dépôts, les scripts d’amorçage, MongoDB, Redis et la branche de stratégie. Chaque nœud renvoie à son fichier source.

Le dépôt reste la référence pour la configuration, les routes actuelles et les prérequis d’installation.