Modèle mixte d'un cours en bourse
Ce modèle utilise le modèle de calcul DE (Discrete Events) selon lequel les acteurs créent des événements (valeur + date) à destination des ports d'autres acteurs. L'acteur "Stock Exchange" produit des événements qui correspondent aux cotations d'une action en bourse. L'acteur "Averages" calcule la moyenne de ce cours dans deux fenêtres glissantes, l'une de largeur 'Short_term_width' qui donne une moyenne à court terme, l'autre de largeur 'Long_term_width' qui donne une moyenne à long terme. L'acteur "Buy/Sell" est un automate qui produit la valeur 1 (acheter) quand la moyenne à cours terme est plus base que la moyenne à long terme, et la valeur -1 (vendre) quand la moyenne à cours terme est plus élevée que la moyenne à long terme.
Les acteurs qui ont un contour rouge sont des acteurs composites, c'est-à-dire que leur comportement est décrit par un modèle Ptolemy II. Le modèle qui génère le cours de l'action est :

Dans ce modèle, une horloge crée des événements selon une loi de Poisson. Chacun de ces événements produit un événement à la même date mais avec une valeur obéissant à une loi Gaussienne de moyenne nulle et d'écart-type 1. La valeur de ces événements est considérée comme une suite de variations du cours qui sont accumulées pour calculer le cours de l'action.
Les deux moyennes sont calculées par :

Ce modèle utilise le modèle de calcul SDF car on ne considère pas la date des cotations, mais uniquement leur nombre pour la largeur des fenêtres glissantes. Ainsi, une largeur de 20 correspond à une moyenne calculée sur les 20 dernières cotations, quelle que soit leur date.
Enfin, l'automate qui détermine l'indication d'achat ou de vente est le suivant :

Dans l'état initial "init", aucune indication n'est donnée et la sortie "do" est nulle (valeur déterminée par le raffinement de cet état). Ensuite, lorsque la moyenne à court terme passe en dessous de la moyenne à long terme, une transition mène à l'état "buy" dont le raffinement produit la valeur 1. Lorsque la moyenne à court terme devient supérieure à la moyenne à long terme, une transition mène à l'état "sell" dont le raffinement produit la valeur -1. Les transitions sont préemptives : dès que la condition est réalisée, l'état de départ perd le contrôle du système et la sortie est imposée par la transition (actions "do = 1" et "do = -1").
Cliquez sur le bouton "Go" pour execéuter le modèle suivant. Les paramètres peuvent être modifiés en double-cliquant sur leur nom dans la partie supérieure du modèle. Le cours de l'action apparaît en rouge, la moyenne à court terme en bleu et la moyenne à long terme en vert. L'indicateur d'achat/vente apparaît en noir.
AppletMarkup(PSS( width="600" height="700" code="ptolemy.vergil.MoMLViewerApplet.class" archive="ptII.jar, supelec.jar" codebase="/uploads/ModSys/" modelURL="../pmwiki/uploads/ModSys/bourse.xml" NAME="Bourse" controls="buttons" includeRunPanel="true" background="#faf0e6"))