Agent-Based Financial Economics


Agent-based financial economics is an interdisciplinary master-level course for economists and computer scientists offered by the department of Banking & Finance of University of Zurich. It is worth 3.0 ECTS credits and counts as BF4, ECON2, or more generally as OEC/WWF course for University of Zurich students, and as elective course for computer scientists from ETH.

Agent-based financial economics is a controversial but also promising modeling methodology that thrives best when combining economics knowledge with sound software engineering. Step by step, we create a large-scale economic simulation by introducing new and increasingly sophisticated agents (consumers, firms, funds, etc.), comparing the simulated outcomes with the equilibria known from classic economic theory. These agents are implemented by interdisciplinary teams with students from economics, finance, and computer science. The fitness of the economic agents is tested in a competitive setting. Due to the complexity of the simulation, agents will likely have to resort to behavioral heuristics. The interesting question is: will the invisible hand succeed in guiding them towards the efficient outcome anyway?

As a computer science student, you will get to learn the basic mechanisms of our economy and the financial markets, while applying your software engineering skills. As a economics or finance student, you will get a new, constructive perspective on economics and learn how to structure large-scale simulations in object-oriented programming.

Lesson 1: The Hermit

Here are the slides of the first lesson. Please follow these instruction on how to install the required software on you computer in order to solve the first exercise.

Lesson 2: The Farmer

Here are the slides of the second lesson, as well as exercise 2. This time, we will try to find out whether the agents can do better by teaming up and coordinating their efforts through an open market.

Lesson 3: Money

Here are the slides of the third lesson, as well as exercise 3. This time, we will experiment with money supply and see what effect printing and distributing money has on the simulation.

Lesson 4: Growth

In lesson 4, the model will be extended to growth by introducing births and a maximum age. Besides the standard slides, we will discuss the role of agile software development in agent-based modelling. Exercise 4 can be found here.

Lesson 5: Stocks

To depart from the feudalistic world of the previous exercise, we introduce a stock market, allowing everyone to become a capitalist, resulting in a much more equal distribution of wealth and to invest retirement savings actively. To have a functioning stock market, a new firm type market maker is introduced, which acts as a counterparty when consumers buy or sell stocks. Besides the lesson 5 slides, I have uploaded a proof behind the bancor formular for your reference. Exercise 5 can be found here.

Lesson 6: Flows

In lesson 6, we take a deeper look at how capital flows influence stock prices. Here are the slides, as well as a link to exercise 6.

Lesson 7: Equality

Lesson 7 is on measuring equality and discusses the World3 model by the Club of Rome. Here are the slides and the exercise.

Lesson 8: Market Making

Lesson 8 goes deeper into the market microstructure and how prices are formed. For that, we are having a look at Cars Hommes' experiments with real humans as agents. Also, we'll have a deeper look at the problem of market making. Here are the slides and the accompanying exercise.

Lesson 9: Investment Funds

In this lesson, investment funds are introduced and the effects of leverage discussed. Here are the slides and the accompanying exercise. The competitive simulation can be viewed here.

Lesson 10: Learning

In lesson 11, we discuss different learning methods as well as the Santa Fe artifical stock market (slides). Furthermore, we look at the state of the competitive simulation.

Recurring Themes

Emergence: how do the micro-properties of a system shape its macro-characteristics? When is the whole more than the sum of its parts? Evolutionary finance: what strategies do survive in the long run and how do evolutionary dynamics impact the macro outcome? Heuristics: Are there simple heuristics based on local information that allow agents to perform similarly well as agents with rational expectations and perfect information? Chaos: even simple system can exhibit chaotic behavior. Complexity: how can software engineering help in managing the complexity?


Farmer and Foley published a nice motivational article on why we need agent-based modeling in the well-known journal Nature. A list with some classics from the literature on agent-based economics can be found on Leigh Testfatsion's site. Another early and notable economic model is MOSES by Gunnar Eliassion, which served as a basis for various Swedisch economic policy decisions. The biggest effort so far to build a large-scale agent-based economic models is the European Crisis Economics project. Generally, literature will be provided during the course as needed. We will stick closer to classic general equilibrium models than other contemporary agent-based models, similar to like I previously did in this publication. Some fundamental thoughts on the role of computational complexity in social sciences can be found in the excellent article Why Philosophers Should Care About Computational Complexity by Scott Aaronson. A more hands-on article by myself is The Code is the Model, in which I apply the insights of agile software development to agent-based modeling.


There is no exam. Grades are based on exercises as well as a short presentation in the end. Computer scientists present the economic aspects of their findings, whereas economists will present the software engineering view.


If you want to attend this course, please fill in this form before September 21st. Do not forget to also register in the UZH module booking system before October 12th, whereas ETH students first need to register here following the instructions for module mobility before September 15th like this (warning, the level of beraucracy that needs to be overcome here is not for the faint-hearted and seems to increase every year). For ETH students, credits will automatically be transferred to the ETH booking system once the semester is over.

Teams will be formed during the first lecture on September 21nd. The course takes place on Fridays from 14:15 to 15:45 at KOL-F-123, in the main building of University of Zurich. In case you have questions, feel free to get in touch with me by writing to .

Register Now

“What I cannot create, I do not understand.”
Richard Feynman