Agentic Trading Lab
Talk to agents, and test trading ideas. Try AI trading agents on real market data with no code required.
AI translation
Un résumé clair des signaux financiers des entreprises américaines, fondé sur leurs dépôts publics.
Translation pending
FinancePython · TypeScriptGitHub @Arnold-KaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Alerte précoce sur les sociétés cotées américaines, construite uniquement à partir de leurs dépôts publics (SEC EDGAR) et de leurs cours de bourse : 12 signaux financiers + un modèle d'apprentissage profond, fusionnés en un niveau de risque par exercice (faible → modéré → élevé → critique), chaque score remontant au dépôt exact qui l'a produit.
En ligne : https://risk-detector-two.vercel.app · résultats et méthode : https://risk-detector-two.vercel.app/methodology
Avertissement — outil informatif à vocation pédagogique. Il ne constitue ni un conseil en investissement, ni une recommandation d'achat ou de vente. Les scores sont des indicateurs de qualité d'information, pas des prévisions de faillite.
| Signal | Ce qu'il mesure | Seuil d'alerte |
|---|---|---|
altman | Score Z d'Altman (solvabilité globale) | < 2,99 vigilance · < 1,81 défaillance |
piotroski | Score F sur 9 critères de amélioration comptable | F < 3 défaillance · F < 7 vigilance |
beneish | Score M de manipulation de résultats | M > −2,27 vigilance · M > −1,78 défaillance |
divergence | Bénéfice net en hausse + cash-flow en baisse, 2 années de suite | streak ≥ 2 défaillance |
runway | Trésorerie / brûlage mensuel de trésorerie | < 24 mois vigilance · < 12 mois défaillance |
late_filing | Rapports annuels déposés en retard (NT 10-K/10-Q) | 1 NT vigilance · ≥ 2 défaillance |
critical_8k | 8-K urgences : faillite (1.03), défaut (2.04), non-fiabilité (4.02)… | selon l'item, vigilance ou défaillance |
insider_sales | Ventes de dirigeants ouvertes (Form 4) rapportées à la capitalisation | ≥ 0,25 % vigilance · ≥ 1 % défaillance |
net_debt_ebitda | Dette nette / EBITDA | > 4× et en hausse défaillance |
dilution | Croissance annuelle des actions en circulation | > 5 % vigilance · > 10 % défaillance |
composite | Fusion pondérée des signaux disponibles | paliers 0,5 / 1,0 / 1,5 |
lstm | Probabilité de détresse sur séries d'indicateurs (PyTorch) | affiché à côté du score classique |
Deux principes guident l'implémentation : « donnée manquante » vaut mieux
qu'un faux score (un signal non calculable est absent, jamais noté 0), et
chaque score pointe son dépôt source (filings.url).
Cohorte de 547 faillites (premier 8-K « Item 1.03 » entre 2015 et 2025, collecté par recherche EDGAR) contre 328 témoins sains (S&P 500 jamais concernés), toujours en ne regardant que l'information disponible au moment de l'alerte :
| Règle d'alerte | Détection à 6 mois | à 12 mois | Faux positifs / an |
|---|---|---|---|
| Niveau ≥ modéré (règle retenue) | 64,9 % | 56,7 % | 9,3 % |
| Niveau ≥ modéré + une composante en défaillance | 63,8 % | 55,2 % | 8,5 % |
Cible de la feuille de route : 60–70 % de détection à 6 mois — atteinte.
Les poids des signaux ont été calibrés sur cette cohorte
(scripts/tune_weights.py), les métriques du modèle de deep learning sont
mesurées séparément (scripts/train_lstm.py) : sur ces données, les deux
approches se complètent, le classique garde la meilleure détection à 6 mois.
Le site publie ces résultats sur la page /methodology, avec des exemples de
faillites signalées à temps, signalées tard et manquées. Ses chiffres sont
figés dans frontend/app/methodology/page.tsx : les régénérer après tout
retune du composite.
Contrôle hors échantillon (uv run python -m scripts.validate_oos) : des
poids réglés uniquement sur les faillites 2015-2020, puis mesurés sur les 199
faillites 2021-2025, obtiennent le même écart détection − fausses alertes que
les poids de production (68,0 contre 68,0 ; 80,9 % / 12,9 % contre 74,9 % /
6,9 %). Le réglage ne montre pas de surapprentissage ; les poids individuels,
eux, sont instables d'une période à l'autre et ne mesurent pas
l'« importance » d'un indicateur.
app/jobs/nightly.py) ; les routes privées de liste de suivi ne modifient
que les données utilisateur et exigent une session Clerk vérifiée côté Next.Prérequis : Docker, uv,
Node ≥ 20 avec pnpm (corepack enable pnpm).
# 1. Configuration — SEC_USER_AGENT exige un nom + e-mail réels (règle SEC)
cp .env.example .env # PowerShell : Copy-Item .env.example .env
# 2. Base de données (PostgreSQL 17, port 5435)
docker compose up -d --wait
# 3. Dépendances Python
uv sync
# 4. Données de démonstration : le trio Apple / AMC / Bed Bath & Beyond
# (~10 min, réseau : premier accès SEC + Yahoo, ensuite mis en cache)
uv run python -m scripts.fetch_phase0
uv run python -m scripts.fetch_prices
uv run python -m scripts.fetch_submissions
uv run python -m scripts.load_postgres
uv run python -m app.jobs.nightly --no-refresh
# 5. API + site
uv run uvicorn app.api.main:app --reload --port 8011 # → http://localhost:8011/health
pnpm --dir frontend install
pnpm --dir frontend dev # → http://localhost:3000
La recherche et les fiches publiques fonctionnent sans compte. Pour activer
les comptes et la liste de suivi en local, copier frontend/.env.example vers
frontend/.env.local, configurer les clés Clerk et partager la même valeur de
WATCHLIST_API_SECRET entre ce fichier et le .env racine.
Tests : uv run pytest (209 tests collectés).
Mise en production (GitHub Actions + Render + Vercel + Neon + Clerk) : voir docs/DEPLOY.md.
Pour charger la cohorte complète du backtest (875 entreprises, ~1 h, réseau) :
uv run python -m scripts.build_cohort
uv run python -m scripts.fetch_phase0 --manifest data/backtest/companies.json
uv run python -m scripts.fetch_prices --manifest data/backtest/companies.json
uv run python -m scripts.fetch_submissions --manifest data/backtest/companies.json
uv run python -m scripts.load_postgres --manifest data/backtest/companies.json
uv run python -m app.jobs.nightly # ~1 h la première fois (cache EDGAR)
uv run python -m scripts.backtest # rejoue les métriques ci-dessus
app/ API FastAPI + moteurs (normalize, signals, edgar, dl, ingest,
backtest, jobs) — signaux purs et testables
scripts/ commandes batch : collecte SEC, ingestion, backtest, entraînement
tests/ suite pytest (209)
frontend/ application Next.js 16
data/ manifest de cohorte (versionné) + caches (gitignorés)
docker-compose.yml
Code sous licence MIT — voir CONTRIBUTING.md pour les conventions (identifiants et commits en anglais, commentaires et textes en français).