Physis Advisory — OMS
Un cycle client, de la signature au rapport
Sept étapes du pipeline rejouées avec un client fictif et des conditions de marché simulées — exécutées contre le code réel du dépôt, du mandat signé jusqu'au rapport mensuel envoyé.
État des 11 modules
Tels que définis dans la spécification fonctionnelle (§4.1). Dix modules ont une implémentation testée (160 tests) ; seul M1 reste un POC, faute de connexion IB réelle.
| Module | Rôle | Statut |
|---|---|---|
| M1 Intégration IB | Comptes, marge, ordres bloc, market data | Partiel |
| M2 Mandats & clients | Config du mandat, liste de sélection, statut | Construit |
| M3 Interface stratégie | Réception des cibles ; brouillon IA bloqué tant qu'un conseiller ne le valide pas | Construit |
| M4 Sizing par client | Cible → ordre borné par capital et risque | Construit |
| M5 Pipeline d'ordres | Brouillon → revue → placement → allocation | Construit |
| M6 Risque temps réel | Marge, close-out, dépassements, alertes | Construit |
| M7 Notifications | Toujours informatives ; escalade humaine séparée sur événement extrême | Construit |
| M8 Reporting | Rapports mensuel/trimestriel/annuel | Construit |
| M9 Honoraires | Commission de performance, high-water mark | Construit |
| M10 Portail client | Vue agrégée lecture seule ; backend testé, pas d'UI déployée dessus | Construit |
| M11 Admin & audit | Rôles + contrôle d'accès câblés dans M5/M7/M8/M10 ; journal d'audit pas encore appelé | Construit |
Le scénario
Client fictif « Client Démo — 001 », capital de départ 250 000 €, mandat discrétionnaire sur trois valeurs CFD (ASML, LVMH, MSFT), levier max 3×, concentration max 25 % par ligne.
Signature électronique du mandat
Le mandat est envoyé à la signature avant toute activation — sans elle, aucune version de mandat ne peut être enregistrée.
da34b3dc…ad09453c…Mandat activé
La signature complétée débloque l'enregistrement de la version 1 du mandat — ses règles bornent tout ce qui suit.
Cible reçue & dimensionnée
Une cible stratégie arrive exprimée en % du capital ; le moteur de sizing la traduit en ordre pour ce compte précis, borné par le mandat. Deux exemples pour montrer le garde-fou de concentration en action.
Ordre : brouillon → conseiller → placé
L'ordre dimensionné (45 000 €, achat ASML) passe la porte de conformité au mandat, puis attend la revue humaine avant tout placement.
Un ordre hors liste de sélection, ou sur un mandat suspendu, s'arrête à la porte de conformité — avant même d'atteindre le conseiller. Ici, approuvé par advisor-1.
Risque surveillé en continu
Même position, deux scénarios de marché — pour montrer que l'escalade se déclenche sur l'événement, pas sur un seuil de perte.
Conditions normales
Volatilité extrême
Fin de période : honoraires calculés
Le marché a progressé sur le mois. Commission de performance uniquement — jamais de frais fixe — et le plus-haut ne recule jamais.
Rapport mensuel
Assemblé à partir du calcul d'honoraires et du compte de fin de mois, revu par un conseiller, puis envoyé.
advisor-1« Rotation partielle envisagée vers LVMH si la tendance se confirme. Aucun retrait de la liste de sélection ce mois-ci. »
Ce qui reste ouvert
Quatre catégories : ce qui manque encore côté build, des interfaces pas branchées sur le backend, des approximations à valider, et une dépendance réglementaire qui n'a pas besoin d'être tranchée pour continuer à construire.
- M1 reste un POC d'authentification, non branché sur des données live — en attente des identifiants IBKR réels (le compte appartient à un tiers, pas encore transmis).
- M10 (portail) et M11 (audit) sont construits côté backend mais pas entièrement branchés : M10 n'a pas d'interface déployée dessus (Physis Desk, ci-contre, est une maquette front indépendante) ; le journal d'audit de M11 existe et fonctionne mais aucun module ne l'appelle encore — seul le contrôle d'accès (rôles + portée client) est réellement câblé dans M5/M7/M8/M10.
- Seuil d'alerte de proximité au close-out fixé à 10 % (module risque) — un défaut prudent choisi arbitrairement, à confirmer.
- Marge disponible approximée par le levier du mandat (module sizing) — en l'absence de la marge initiale réelle par instrument, qui viendra de M1 une fois connecté en direct.
- R-1 (arbitrage réglementaire sur le modèle discrétionnaire) reste ouvert — sans bloquer le build : la porte de revue du pipeline d'ordres est conçue comme un point d'extension unique, prêt à recevoir une étape d'approbation client si nécessaire.