尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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).