Skip to content

Fractionnements d'actions : cours, volumes et dividendes ajustés à la lecture - #15

Merged
blakro merged 2 commits into
mainfrom
claude/happy-edison-d5k0g7
Nov 4, 2026
Merged

blakro merged 2 commits into
mainfrom
claude/happy-edison-d5k0g7

Conversation

@blakro

@blakro blakro commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Le problème

SNTS a été fractionnée le 26/10/2026 (1 action ancienne = 10 nouvelles, 43 850 → 4 700 FCFA). Lue brute, l'archive y voyait un krach de 89 % en une séance :

Fiche SNTS dans l'app Avant Après
Dividende 40,5 % par an 4,0 %
Pire chute (1 an) −90,8 % −11,7 %
Sur 1 an −82,8 % +72 %

Le classement et le modèle de prévision apprenaient aussi sur cette chute qui n'a pas eu lieu.

Ce qui change

  • L'archive data/cours.csv n'est pas réécrite. Le nouveau module src/brvm/fractionnement.py ajuste à la lecture, pour l'app comme pour la CLI : cours d'avant ÷ rapport, quantités échangées × rapport (capitaux en FCFA inchangés), dividendes ÷ rapport. La veille ajustée de SNTS retombe sur 4 385 FCFA, le prix de référence ajusté publié par la BRVM ; la séance du 26/10 redevient une hausse de +7,18 %.
  • Registre versionné data/fractionnements.csv (nouvelle table fractionnements), qui fait foi. Un rapport de 1 y fait taire une détection fausse.
  • Détection automatique pour les fractionnements à venir : sous la limite de ±7,5 % par séance, un cours divisé par 2 ou plus n'est pas un mouvement de marché. Le saut doit tomber sur un entier à 10 % près (le plus rond s'il y en a plusieurs), le nouveau niveau doit tenir et l'ancien avoir tenu. Les séances fantômes 2015-2017 et le gros détachement de FTSC en 2025 sont écartés. L'ajustement s'applique dès le soir du fractionnement et cesse de lui-même si le niveau ne tient pas.
  • Dividendes des fondamentaux (par exercice, sans date de versement) : le rendement publié sert de témoin pour choisir l'échelle, afin de ne pas diviser deux fois un tableau que la source aurait déjà republié ajusté.
  • brvm fractionnements [--enregistrer] ; la cause « fractionnement d'actions » dans brvm qualite ; un encart ✂️ et une ligne de légende sur la fiche d'une action fractionnée.

Registre initial

Valeur Date Rapport Statut
SNTS 26/10/2026 1 → 10 confirmé (AGE du 08/10/2026)
PALC 03/11/2017 1 → 2 confirmé
ONTBF 05/02/2018 1 → 2 confirmé

PALC et ONTBF n'avaient jamais été ajustés dans l'archive : la détection les a trouvés en cherchant SNTS. Ils modifient légèrement l'historique de ces deux valeurs ; les chiffres cités dans docs/technique.md (IC, backtests) dataient d'avant et n'ont pas été recalculés.

Tests

pytest : 370 passés (336 existants + 34 nouveaux, dont un test de l'app sur la fiche SNTS qui échoue sans l'ajustement).


Generated by Claude Code

… lecture

SNTS a été fractionnée le 26/10/2026 (1 action = 10, 43 850 → 4 700 FCFA).
Lue brute, l'archive y voyait un krach de 89 % : la fiche affichait une pire
chute de 90,8 %, -82,8 % sur un an et un dividende rapportant 40,5 % par an,
et le modèle apprenait sur une chute qui n'a pas eu lieu.

L'archive garde les cours tels que publiés ; le nouveau module
`fractionnement` les ajuste à la lecture (cours ÷ rapport, quantités
× rapport, dividendes ÷ rapport), pour la CLI comme pour l'app. Les
événements viennent :

- d'un registre versionné, data/fractionnements.csv (nouvelle table
  `fractionnements`), qui fait foi — un rapport de 1 y fait taire une
  détection fausse ;
- d'une détection automatique pour les fractionnements à venir : saut
  tombant sur un entier ≥ 2 à 10 % près (ou son inverse pour un
  regroupement), nouveau niveau qui tient, ancien qui tenait. Les séances
  fantômes et le gros détachement de FTSC en 2025 sont écartés.

Les dividendes par exercice des fondamentaux sont ramenés à l'action
d'aujourd'hui en s'aidant du rendement publié, pour ne pas ajuster deux
fois un tableau déjà republié par la source.

Registre initial : SNTS 26/10/2026 ×10, PALC 03/11/2017 ×2 (documentés),
ONTBF 05/02/2018 ×2 (détecté, sans avis retrouvé). La veille ajustée de
SNTS retombe sur 4 385, le prix de référence publié par la BRVM ; la fiche
affiche désormais 4,0 % de dividende et -11,7 % de pire chute.

Aussi : `brvm fractionnements [--enregistrer]`, la cause « fractionnement
d'actions » dans `brvm qualite`, un encart ✂️ sur la fiche d'une action
fractionnée, et 34 tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014G9XrQEMSrJM6BXHKtfken
La ligne du registre et la documentation ne disent plus « pas d'avis
retrouvé » : le fractionnement 2 pour 1 est confirmé.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014G9XrQEMSrJM6BXHKtfken
@blakro
blakro merged commit e05d327 into main Nov 4, 2026
2 checks passed
@blakro
blakro deleted the claude/happy-edison-d5k0g7 branch November 4, 2026 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants