Aller au contenu principal

Systèmes de négociation

Concevoir les garde-fous d’une machine à états de négociation automatisée

Définissez les conditions qui autorisent le démarrage, la pause, la reprise, l’arrêt et la récupération d’un système de négociation automatisée.

Par Sunbot Labs

Mis à jour le

5 min de lecture

négociation logiciel se déplaçant à travers la course surveillée, pause, arrêté, échoué, et les états de récupération.

Comment le flux de travail s’articule

  1. 1Recevoir une demande de transition autorisée
  2. 2Charger l’état d’exécution persistant et l’état des connexions
  3. 3Évaluer les garde-fous propres à l'environnement
  4. 4Appliquer les effets associés et consigner la transition
  5. 5Confirmer les résultats du courtier et des tâches en arrière-plan

Les états en cours, en pause et arrêté sont faciles à afficher. Le travail d'ingénierie consiste à décider quand une transition est permise et ce qui doit se passer autour. Les garde-fous de transition empêchent une reprise avec des données périmées, un démarrage en direct accidentel ou une commande d'arrêt qui cache les ordres de courtiers non résolus.

Écrire chaque transition comme un contrat

Pour commencer, arrêtez, recommencez, arrêtez et récupérez, listez le rôle demandé, les états sources valides, la configuration requise, la connectivité, la fraîcheur des données, le travail en attente, l'état résultant, les effets secondaires et l'événement d'audit. Une demande peut entrer en démarrage ou s'arrêter pendant que le travail asynchrone s'achève.

Renforcer les garde-fous de l’exécution en direct

Sélection d'environnement séparée de l'état d'exécution. Un système peut être arrêté mais configuré pour une utilisation en direct. Commencer l'opération en direct peut nécessiter une activation explicite, une version de configuration approuvée, des identifiants disponibles, des connexions saines, aucun incident de blocage, et un résultat de rapprochement récent.

  • Environnement et pavillon habitable
  • Stratégie approuvée et configuration des risques
  • Données du marché et des comptes frais
  • Séance des courtiers santé
  • Aucun incident de blocage non résolu

Définir les conséquences d’une pause ou d’un arrêt

Pause peut empêcher de nouvelles décisions tout en laissant le suivi et commander des mises à jour actives. Arrêt peut mettre fin aux travailleurs après l'état persistant. Aucune action n'annule automatiquement les commandes ouvertes ou ferme les positions à moins que la politique d'exploitation définie par le client n'exige et n'autorise explicitement ces actions.

Récupérer par un chemin contrôlé

Un état défaillant devrait enregistrer la cause, les composants touchés, le dernier état de courtier connu et exiger des vérifications de récupération. Effacer la condition sous-jacente, réconcilier les ordres ou positions incertains, obtenir toute autorisation requise, et créer un nouvel événement de transition plutôt que de modifier l'échec hors de l'historique.

Définir les garde-fous à partir des preuves opérationnelles

Une transition de prêt à activer peut exiger une configuration valide, un environnement approuvé, une session de courtier saine, un nouveau compte instantané, une horloge synchronisée, une file d'attente de rapprochement vide et un opérateur ayant l'autorité requise. Chaque condition doit renvoyer un résultat nommé afin que l'interface puisse expliquer pourquoi l'activation est bloquée.

Ne comprimez pas chaque dépendance en bonne santé. Un flux de courtiers peut être connecté pendant que les données de compte sont inexistantes, et un processus de stratégie peut être exécuté pendant que la soumission en direct est désactivée. Les états des composantes et le mode d'exploitation global répondent à différentes questions et doivent rester visibles séparément.

Les transitions d'état ne sont permises qu'après le passage de la connexion, des données, de la configuration et des contrôles de fonctionnement.
Contrats de transition illustrés pour les états de contrôle logiciel, indépendants de la performance stratégique.
TransitionPreuves requisesRésultat bloqué
Idle → prêtConfiguration valide; dépendances initialesRester inactif avec des erreurs de validation
Prêt → activéMode autorisé; nouveau compte; connexion saineRestez prêt et identifiez les gardes échoués
Activer → pauseDemande de pause enregistréeArrêter les nouvelles requêtes; définir la politique d'ouverture d'ordre
En pause → activéLa cause de la rupture a été réglée; rapprochement terminéReste en suspens en attendant l’examen
Tout → arrêtéArrêter la raison et le flux de travail d'arrêtPréserver les preuves terminales et la porte de redémarrage

Traiter le redémarrage comme une récupération et non une initialisation

Après un crash ou une interruption de réseau, la mémoire locale ne peut pas établir l'état actuel du courtier. Récupérer la configuration et l'historique des événements durables, interroger le courtier pour les commandes et positions ouvertes pertinentes, les comparer avec les enregistrements locaux et placer les différences non résolues dans un état visible. La soumission automatique devrait rester désactivée jusqu'à ce que le contrat de récupération passe.

Tester les transitions invalides aussi délibérément que valides: reprendre pendant l'expiration des identificateurs, activer avec des données caduques, arrêter pendant une soumission incertaine, ou redémarrer avec un ordre ouvert non assorti. Le résultat attendu devrait être un état sûr avec des preuves utiles, et pas seulement une exception dans un journal.

Un redémarrage entrant des vérifications de rapprochement et de récupération avant que le système puisse retourner à l'exécution.

Repère visuel

États d'exploitation à mouvement surveillé

Les transitions dépendent de la preuve et de l'autorité; un processus ne peut pas se déplacer en toute sécurité parce qu'un minuteur s'est écoulé ou qu'un bouton a été cliqué.

  1. 1

    Idée

    La configuration peut être éditée; les dépendances d'exécution ne sont pas supposées prêtes.

  2. 2

    Prêt

    Validation passée, mais la soumission de l'ordre reste désactivée.

  3. 3

    Activé

    Les flux de travail définis peuvent être soumis sous les contrôles actuels.

  4. 4

    Paus

    Les nouvelles présentations s'arrêtent alors que la surveillance et le traitement défini par les politiques se poursuivent.

  5. 5

    Récupération

    L'état local et l'état de la plateforme sont comparés après interruption.

  6. 6

    Arrêts

    Le flux de travail est fermé avec une raison et une porte de redémarrage explicite.

Le vocabulaire exact de l'état dépend du système, mais chaque état doit définir le travail autorisé et les conséquences visibles.

Questions pratiques

Questions fréquentes sur le sujet

Est-ce que la pause est la même que déconnectée?

Non. En pause décrit la permission de lancer de nouvelles actions de flux de travail. Les connexions peuvent rester actives pour que les données, les mises à jour de commande et la surveillance se poursuivent.

Un système peut-il reprendre automatiquement après défaillance?

Seulement pour les cas récupérables explicitement approuvés avec des contrôles rigoureux. L'état d'ordre ou de compte incertain nécessite généralement la rapprochement et peut nécessiter une autorisation humaine.

Collaborer avec Sun Cluster

Vous planifiez un système semblable pour votre organisation?

Les ingénieurs Sun Cluster ont automatisé les systèmes de négociation avec des contrôles d'exécution persistants, des environnements explicites, la surveillance et des flux de travail de récupération.