À propos du projet

Il s'agit d'une infrastructure de simulation et de recherche quantitative prioritaire locale conçue pour les règles de trading des actions A chinoises. Le projet ne se connecte à aucun courtier et ne manipule pas de fonds réels ; le dépôt public ne contient que le code source, les configurations de conteneurs et une documentation anonymisée. L'idée centrale est d'intégrer les règles des actions A directement dans le flux d'appariement et de validation des ordres, plutôt que d'effectuer des corrections approximatives après le backtesting. Le T+1, les lots de 100 actions, les limites de hausse/baisse, les suspensions, les commissions, les taxes sur les timbres et le glissement sont tous vérifiés avant l'exécution de l'ordre. Les données de marché fonctionnent par défaut en mode "fail-closed" : les prix obsolètes, manquants ou insuffisants ne sont pas transformés silencieusement en "prix en temps réel", et les transactions simulées sont refusées en cas de preuves insuffisantes. Côté données, le système utilise une capture multi-sources avec vérification indépendante. Les prix en temps réel comportent un horodatage et une source explicites, et des seuils de couverture sont définis pour les instantanés du marché. En cas de panne d'une source de données, le système dégrade la richesse du signal ou bloque le chemin correspondant. La gestion des risques est implémentée via une machine à états stratifiée. Chaque transaction passe par une couche de risque indépendante générant des résultats structurés (approved, rejected, deferred_capacity, downside_warning, etc.). Elle supporte le stop-loss strict, le stop-loss suiveur, le take-profit échelonné, la rotation de qualité, la compression de capacité et la garde de concentration. La protection à la baisse utilise une machine à états de réduction progressive des positions jusqu'à la liquidation totale, avec des marqueurs stables et un registre d'audit pour les motifs de risque. Côté fonds, un pool de fonds partagé effectue l'attribution budgétaire par stratégie, incluant des limites de siège, des budgets par titre, une protection d'équité et un plafond financier strict. La réservation des fonds et le débit effectif sont séparés, utilisant des points de sauvegarde SQLite pour éviter les doubles occupations lors de scans concurrents. L'ordonnancement supporte six types de slots : auction, open, risk, intraday, close et weekly-review. Un ordonnanceur intraday de 3 minutes est activé par défaut, mais peut être désactivé si un ordonnanceur externe est présent. Des baux d'exécution, des heartbeats et des fencing tokens sont utilisés pour prévenir les ordres doubles, les écrivains zombies et les écrasements concurrents. Au niveau des stratégies, cinq modèles sont conservés et intégrés au registre des stratégies, au replay historique et à l'audit : tq_breakout (percée forte), trend_pullback (retracement de tendance), sector_rotation (rotation sectorielle), reported_profit_breakout (percée de qualité) et main_force_top10 (flux de fonds principaux). Elles partagent l'infrastructure d'appariement, le pool de fonds, le risque et l'audit, mais possèdent leurs propres voies de candidature, sièges de position et règles de sortie. Le projet exclut explicitement le routage vers le marché réel, le levier, la vente à découvert et le T+0 pour les actions ordinaires. Les signaux, candidatures, décisions de risque, ordres, transactions, positions, NAV et résultats de scan sont traçables. Les modules de recherche comme adaptive_*, news_learning, neural_shadow et dual_ai_tuner conservent des observations "ombre" indépendantes sans contourner le flux d'appariement officiel. Les capacités LLM sont optionnelles ; la simulation de base n'en dépend pas. Le déploiement requiert Python 3.11+. Des scripts start.ps1/start.bat (Windows) et start.sh (Linux/macOS) sont fournis, permettant de choisir entre Docker ou le mode local, de spécifier le port, d'ouvrir le navigateur ou d'activer l'ordonnancement intégré. Docker Compose fournit les images et volumes nommés, mappant par défaut le port 8600. Le dépôt conseille de limiter l'écoute à 127.0.0.1 pour un usage personnel, car l'application ne possède pas encore d'authentification intégrale. Pour les utilisateurs ne souhaitant pas connecter de flux réels, le réglage ASTOCK_DEMO=1 injecte des données de démonstration synthétiques au premier démarrage, sans réseau ni clé API. Cela inclut 10 actifs synthétiques et un registre narratif complet couvrant des scénarios d'achat normal, refus de vente T+1 le jour même, refus pour prix obsolète, vente stop-loss et achat au prix plafond. Cette injection est idempotente et vérifiée par comparaison octet par octet (golden replay) dans la CI pour éviter toute dérive narrative. Le dépôt comprend le moteur principal (appariement/risque/audit), un modèle de lecture pour le tableau de bord, la capture de données, le moteur de décision, les définitions de stratégies, l'API HTTP avec FastAPI/Web et des tests de régression hors ligne. La CI exécute des régressions sur Python 3.11/3.12, des analyses statiques Ruff, des vérifications de cohérence des fichiers de verrouillage, pip-audit et des tests de fumée Docker. Le projet est sous licence MIT. Le README inclut un avertissement sur les risques, soulignant que la simulation, le backtesting et les résultats historiques ne constituent pas une garantie de gains futurs ni un conseil en investissement.