Section 13.6: Dynamiques des marchés financiers Up Chapitre 13: Dynamique des industries et des marchés Chapitre 14: Dynamique macroéconomique 

13.7figure logo-cle—mollette.png Application : Un marché financier simpliste avec des agents à intelligence zéro

Vous êtes invités à développer un modèle de NetLogo qui reproduit le fonctionnement d’un marché financier très simple décrit ci-dessous.

Description des éléments du modèle

Le marché d’un titre financier contient agents à intelligence zéro (zero-intelligence agents). A chaque période, agents, choisis aléatoirement parmi les , participent au marché. Chacun de ces agents décide de manière équiprobable entre faire de proposition de transaction ) ou non . De manière équiprobable, chaque agent qui décide de parler peut se placer du coté offre (ask) du marché ou du coté demande (bid) et proposer un volume de titres sur le marché, tiré de manière uniforme dans l’intervalle . Le prix de marché évolue alors en fonction du déséquilibre du marché :
représente la rugosité du marché en termes d’ajustement du prix. Le prix initial du titre est .
L’objectif du modèle est d’observer la dynamique du prix de marché dans ce contexte extrêmement simple, en fonction des paramètres du modèle.

Programme NetLogo

L’interface visuelle doit contenir :
Le code doit contenir :

Expériences

Le modèle étant très simple, il ne laisse pas beaucoup de place à la discussion. On peut néanmoins faire des expériences en modifiant les différents paramètres du modèle et observer ensuite la dynamique et la distribution des rentabilités, en faisant des simulations assez longues (jusqu’à 15000 ticks).
  1. Fixez pour commencer. Faites plusieurs runs. Que pensez-vous de la dynamique des prix et de leur volatilité? Est-ce que vous observez une convergence vers une valeur d’équilibre?
  2. Même question avec des valeurs différentes de . Quelle influence a cette variable sur la dynamique des prix et sur la distribution des rentabilités?
  3. Même question pour .
  4. Même question pour .

Extension 1 : prise en compte de la richesse et de la contrainte de revenu des agents

Les demandes et offres des agents vont tenir compte maintenant de leur contrainte de budget imposée par le niveau de leur richesse. Les transactions sur les marchés vont tenir compte du rationnement potentiel d’un coté ou de l’autre du marché. Ces éléments étaient complètement absents de la version de ce modèle.
  1. Les transactions effectives sur le marché auront lieu à chaque période en tenant compte d’un rationnement proportionnel. Par exemple, si la demande est supérieure à l’offre à une période donnée, chacun des demandeurs ne pourra effectivement acheter que titres ( étant la demande initiale de ).
  2. Chaque agent aura maintenant deux variables supplémentaires : qui représente sa richesse et qui correspond au nombre de titres détenus par lui.
  3. Nous allons introduire un curseur richesseInitiale dans l’interface avec . Dans setup chaque agent verra sa fixée à ce niveau initial de richesse.
  4. Cette richesse conditionnera par la suite la quantité de titres que peut demander l’agent (il va supposer que le prix sera le même que celui de la période précédente pour tenir compte de sa contrainte de budget), ainsi que la quantité effective qu’il pourra acheter une fois que le prix de la période est fixé définitivement. L’agent ne pourra ni emprunter, ni prêter de l’argent dans le modèle. La richesse évoluera ensuite en fonction des quantités effectivement achetées/vendues et le prix de marché.
  5. Notre modèle contiendra maintenant un histogramme représentant la distribution des richesses à chaque période entre les agents et un autre qui représente celle des portfolios.
  6. Les autres éléments du modèle seront identiques à ceux du modèle de base.
  7. Créez un nouveau modèle NetLogo appelé application-sfmzit-ext-1.nlogo et commentez de manière détaillée les modifications introduites dans ce programme.

Extension 2 : apprentissage social simple dans le modèle complété

A partir de l’extension 1, nous introduisons dans le modèle un apprentissage social simplifié.
  1. La stratégie de chaque agent est maintenant caractérisée par un triplet , avec ( : parler; : ne pas parler), ( : bid, : ask), Donc le nombre d’agents qui choisiront de parler à chaque période et le coté du marché où ils choisiront de se placer deviennent endogènes dans cette version du modèle.
  2. Apprentissage : Les stratégies des agents évoluent, à la fin de chaque période, selon un schéma d’apprentissage social basé sur deux mécanismes simples :
    1. L’imitation qui se base sur la performance moyenne passée de chaque agent. L’horizon passé qui sera considéré pour cette évaluation est commandé par la variable qui détermine le nombre de périodes passées qui sont considérées. et sa valeur doit être fixée dans l’interface graphique grâce à un curseur. Etant donné la mémoire, la performance de chaque agent sera calculée, à la fin de la période , comme une moyenne mobile : Chaque agent peut chercher à imiter la stratégie utilisée par un autre agent avec une probabilité (appelé probImit dans le code). En cas d’imitation, l’agent tire aléatoirement l’agent à imiter, et la probabilité d’être tiré pour chaque agent est proportionnelle à sa richesse moyenne relative pendant les périodes passées (roulette wheel) : De plus, n’imitera effectivement l’agent tiré que si et seulement si (rationalité individuelle). En cas d’imitation, adopte telle qu’elle la stratégie utilisée par .
    2. L’expérimentation aléatoire qui peut avoir lieu ensuite, de manière indépendante, avec une probabilité (appelé probMut dans le code) et qui mute aléatoirement l’une des trois composantes de la stratégie en modifiant aléatoirement sa valeur dans son domaine de définition : mutation entre et pour et entre et pour et un tirage uniforme dans pour . Les valeurs de et de doivent être fixées dans l’interface grâce à deux curseurs dédiés.
  3. Un graphique intégré dans l’interface doit montrer l’évolution dans le temps de la moyenne des offres de chaque coté du marché.
  4. Un autre graphique similaire doit montrer l’écart-type de ces offres.
  5. Créez un nouveau modèle NetLogo appelé application-sfmzit-ext-2.nlogo et commentez de manière détaillée les modifications introduites dans ce programme.

 Section 13.6: Dynamiques des marchés financiers Up Chapitre 13: Dynamique des industries et des marchés Chapitre 14: Dynamique macroéconomique 
Sommaire
(c) Murat Yildizoglu, 2021-